Presentation is loading. Please wait.

Presentation is loading. Please wait.

Scripting 101 for Network Administrators Jim Kent, Network Administrator Ave Maria Law School.

Similar presentations


Presentation on theme: "Scripting 101 for Network Administrators Jim Kent, Network Administrator Ave Maria Law School."— Presentation transcript:

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

14

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

17

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

20

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

30

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

32

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

34

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

37

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


Download ppt "Scripting 101 for Network Administrators Jim Kent, Network Administrator Ave Maria Law School."

Similar presentations


Ads by Google