Download presentation
Presentation is loading. Please wait.
Published byElinor Park Modified over 9 years ago
1
Scripting 101 for Network Administrators Jim Kent, Network Administrator Ave Maria Law School
2
What is scripting ? Autoexec.bat, batch file scripts. Network login scripts. A script is a set of commands aimed at automating a process. Scripts are usually setup to solve a problem.
3
How to turn off the computers in the lab at the end of the day? shutdown -s -m \\hflyb01 -t 05 -f shutdown -s -m \\805x20b -t 05 -f shutdown -s -m \\535x20b -t 05 -f shutdown -s -m \\705x20b -t 05 –f Shutdown.exe is an add on from the resource kit.
4
What are we going to cover: WSH (Windows Script Host) VBScript (Visual Basic Scripting) WMI (Windows Management Instrumentation) ADSI (Active Directory Service Interfaces)
5
Simple Script Set objWMIService = GetObject("winmgmts:") Set objLogicalDisk = objWMIService.Get ("Win32_LogicalDisk.DeviceID='c:'") Wscript.Echo objLogicalDisk.Freespace
6
Free space on the local C: drive
7
Display Memory Script strComputer = "." Set objSWBemServices = GetObject ("winmgmts:\\" & strComputer) Set colSWbemObjectSet = objSWbemServices. InstancesOf("Win32_LogicalMemoryConfiguration") For Each objSWBemObject in colSWbemObjectSet Wscript.Echo "Total Physical Memory (kb): " & objSWbemObject.TotalPhysicalMemory next
8
Output from Memory Script
9
Output window Set ie = WScript.CreateObject("InternetExplorer.Applicati on", "IE_") ie.Navigate "about:blank" ie.ToolBar = 0 ie.StatusBar = 0 ie.Width = 600 ie.Height = 500 ie.Left = 0 ie.top = 0 ie.Visible = 1
10
Empty IE Window
11
Display Services Use WMI to output all the services on the computer. Also show the status of each service.
12
Do While (ie.Busy) Loop Set objDoc = ie.Document objdoc.Open objdoc.Writeln " Service Status " objdoc.Writeln " " objdoc.Writeln “ Service " objdoc.Writeln " State "
13
strComputer = "." Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer& "\root\cimv2") Set colServices=objWMIService.ExecQuery ("Select * from Win32_Service") For Each objService in colServices objdoc.Writeln “ " & objService.DisplayName & " " objdoc.Writeln " " & objService.State & " " objdoc.Writeln " " Next objdoc.Writeln “ " objdoc.Write()objdoc.Close
15
Display Info from a computer Use WMI to display the following stats. Display Computer Name Display the total physical ram in computer Display the time zone.
16
strComputer = "." Set objWMIService= GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colSettings = objWMIService.ExecQuery ("Select * From Win32_ComputerSystem") For Each objComputer in colSettings objdoc.Writeln " Computger Name: " objdoc.Writeln " " & objComputer.Name & " " objdoc.Writeln " Total Memory: " objdoc.Writeln " " & int((objComputer.TotalPhysicalMemory)/1048576) & " " Next Set colSettings = objWMIService.ExecQuery ("Select * From Win32_TimeZone") For Each objComputer in colSettings objdoc.Writeln " Timezone: " objdoc.Writeln " " & objComputer.DayLightName & " " Next
18
Display same info on multiple computers Add the ability to read a text file of computer names. Use IE window to output the data for each computer.
19
Const ForReading = 1 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("c:\cpu.txt", ForReading) Do While objFile.AtEndOfStream = false strComputer = objFile.ReadLine LoopobjFile.Close
21
Local logged on user Use WMI to display the logged on user. Setup script to show the user on all lab computers. Use a text file list of computers to check.
22
Do While objFile.AtEndOfStream = false strComputer = objFile.ReadLine Set objWMIService= GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colSettings = objWMIService.ExecQuery ("Select * From Win32_ComputerSystem") For Each objComputer in colSettings objdoc.Writeln " " & strComputer & " " objdoc.Writeln " " & objComputer.username & " " Next
23
Users logged into lab computers
24
WMI WMI comes standard preloaded and setup on Windows 2000/XP computers. Make sure the WMI service is running. Key to WMI is finding the class you want to query. Must have admin rights on local PC or networked pc to get any info back.
25
Download Scriptomatic
26
ADSI Released in 1997 as a set of generic interfaces that access and manipulate different directory services. Admins and Developers can use ADSI to enumerate and managed resources in a directory service. Can Read, Modify, Create and Delete domain objects.
27
All Users Script Set Computer = GetObject("WinNT://avemaria") Computer.Filter = Array("User") For Each User in Computer objdoc.Writeln " " objdoc.Writeln " UserName: " objdoc.Writeln " " & User.Name & " " objdoc.Writeln " " Next
28
All Users
29
Display all Domain Groups Set Computer = GetObject("WinNT://avemaria") Computer.Filter = Array("Group") For Each Group in Computer objdoc.Writeln " GroupName: " objdoc.Writeln " " & Group.Name & " " objdoc.Writeln " " Next
31
Display members of Student Group Set Group = GetObject("WinNT://avemaria/students, group") For Each User in Group.Members objdoc.Writeln “ UserName: " objdoc.Writeln " " & User.Name & " " objdoc.Writeln " " count = count + 1 Next
33
Display all groups of each student Set Group = GetObject("WinNT://avemaria/students, group") For Each User in Group.Members objdoc.Writeln " " & User.FullName &" " objdoc.Writeln " " objdoc.Writeln " " & User.Name &" " objdoc.Writeln " " Set User = GetObject("WinNT://avemaria/" & User.Name & ",user") For Each Group in User.Group For Each Group in User.Group objdoc.Writeln " " objdoc.Writeln " " objdoc.Writeln " " & Group.Name & " “ objdoc.Writeln " " & Group.Name & " “ Next NextNext
35
User Properties
36
Password Never Expires Flag? Set Group = GetObject("WinNT://avemaria/students, group") For Each User in Group.Members objdoc.Writeln " " & User.Name & " " Set User = GetObject("WinNT://avemaria/" & User.Name & ",user") flags = User.Get("UserFlags") If (Flags And &H10000) = 0 then objdoc.Writeln " Password will expire " objdoc.Writeln " Password will expire "Else objdoc.Writeln " Password does not expire " objdoc.Writeln " Password does not expire " End If objdoc.Writeln " " Next
38
Force Password change flag Force user to change password on next logon flag
39
Set Group = GetObject("WinNT://avemaria/students, group") For Each User in Group.Members objdoc.Writeln " " & User.Name & " " Set User = GetObject("WinNT://avemaria/" & User.Name & ",user") if User.passwordexpired = 0 then if User.passwordexpired = 0 then objdoc.Writeln " Password safe " objdoc.Writeln " Password safe " else else objdoc.Writeln " Force change set " objdoc.Writeln " Force change set " End If End If objdoc.Writeln " " Next
40
Modify User Flags
41
Create User Accounts Use text file for data source. Source reads one line of text at a time. Use ~ character to separate fields Username~password~fullname~ Description~loginscript kent1~password1234~kent, test1~Test Account~ student.bat
42
Do While objFile.AtEndOfStream = false strdataline = objFile.ReadLine myuser = Split(strdataline,"~") Set Computer = GetObject("WinNT://avemaria") Set User = computer.create("User",myuser(0)) call User.SetPassword(myuser(1)) user.fullname = myuser(2) user.Description=myuser(3)user.loginscript=myuser(4)user.setinfo Wscript.echo "Created user: " & myuser(0) Loop
43
Resources Microsoft Scripting Guide Microsoft Scripting Guide Microsoft Scripting Guide
44
Resources http://www.microsoft.com/technet/community/ scriptcenter/default.mspx http://www.microsoft.com/technet/community/ scriptcenter/default.mspx http://www.winscripter.com http://www.adsi4nt.com http://www.15seconds.com/focus/ADSI.htm
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.