'****************************************************************
' Filename..: enum_ad_host_files.vbs
' Author....: David M. Stein
' Date......: 04/15/2012
' Purpose...: search for hosts files with custom entries
'****************************************************************
dns_netbios = "short_name_of_your_active_directory_domain"
Const ForReading = 1
Const ForWriting = 2
wscript.echo "info: scanning domain = " & dns_netbios
Set objDom = GetObject( "WinNT://" & dns_netbios )
Set objFSO = CreateObject("Scripting.FileSystemObject")
tcount = 0
For each obj in objDom
If Lcase(obj.Class) = "computer" Then
computerName = obj.Name
wscript.echo "info: " & computerName
tcount = tcount + 1
CheckHosts computerName
End If
Next
Sub CheckHosts(cn)
Dim filename, objFile, strLine, found
filename = "\\" & cn & "\admin$\system32\drivers\etc\hosts"
wscript.echo "info: searching for: " & filename
If objFSO.FileExists(filename) Then
On Error Resume Next
Set objFile = objFSO.OpenTextFile(filename, ForReading)
If err.Number = 0 Then
Do Until objFile.AtEndOfStream
strLine = Trim(objFile.Readline)
If Left(strLine,1) <> "#" And strLine <> "" Then
found = True
End If
Loop
objFile.Close
If found = True Then
wscript.echo "info: custom entry found!"
Else
wscript.echo "info: no custom entries found."
End If
Else
wscript.echo "fail: error (" & err.Number & ") = " & err.Description
End If
Else
wscript.echo "fail: unable to locate hosts file on " & cn
End If
End Sub
wscript.echo "info: " & tcount & " account objects found"
Showing posts with label adsi. Show all posts
Showing posts with label adsi. Show all posts
Sunday, April 15, 2012
Query AD Computers with Custom HOSTS File Entries
Labels:
active directory,
adsi,
files,
inventory,
networking,
vbscript,
windows
Sunday, October 11, 2009
Reboot Computers by Operating System
What if you wanted to reboot every computer in your Active Directory domain that has a specific version of Windows installed? One example is requesting every Windows 7 Ultimate computer to reboot (see below). Just replace the “YOUR-DOMAIN” with your actual NetBIOS domain name and change the operating system string to whatever you prefer. Remember to test in an isolated environment.
Set objDomain = GetObject("WinNT://YOUR-DOMAIN")
For each objX in objDomain
If Lcase(objX.Class) = "computer" Then
n = objX.Name
wscript.echo n
End If
Next
Sub Reboot(strComputer)
Dim objWMIService, colOS, objShare, objRetval, cap
On Error Resume Next
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
If err.Number <> 0 Then
wscript.echo "unavailable: " & strComputer
Else
Set colOS = objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem",,48)
For each objItem in colOS
cap = objItem.Caption
If cap = "Microsoft Windows 7 Ultimate" Then
Set objShare = objWMIService.Get("Win32_OperatingSystem.ReplaceKeyProperty=ReplacePropertyValue")
Set objRetval = objWMIService.ExecMethod("Win32_OperatingSystem.ReplaceKeyProperty=ReplacePropertyValue", "Reboot")
End If
Next
End If
End Sub
Subscribe to:
Posts (Atom)