Microsoft
Software
Hardware
Network
Question : Add WMI Query to Existing VBscript
We have an existing logon Vbscript that writes information to each computer's and user's description field in Active Directory and so far it works great. We have found the need to add a wmi query of each computer's serial number to the script's output as well.
Here is the current code that we are using:
''POPULATES AD WITH USER LOGON INFO IN DESCRIPTION FIELD
Set objSysInfo = CreateObject("ADSystemInfo
")
unEscapedUserName = Replace(objSysInfo.UserNam
e, "/", "\/")
Set objUser = GetObject("LDAP://" & unEscapedUserName)
Set objUser = GetObject("LDAP://" & Replace(objSysInfo.UserNam
e, "/", "\/"))
Set objComputer = GetObject("LDAP://" & objSysInfo.ComputerName)
strMessage1 = " Authenticated on: " & objComputer.CN & " at " & Now & ". MAC: " & MACAddresses(".")
strMessage2 = " MAC: " & MACAddresses(".") & "." & " Authenticated by: " & objUser.CN & " at " & Now & "."
objUser.Description = strMessage1
objUser.SetInfo
objComputer.Description = strMessage2
objComputer.SetInfo
function MACAddresses(strComputer)
dim objWMI, colItems, objItem
dim strMac
strMac=""
Set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMI.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfig
uration where IPEnabled=TRUE",,48)
For Each objItem in colItems
if objItem.MACAddress<>"" then strMac=strMac & objItem.MACAddress & vbCrLf
Next
MACAddresses = strMac
end function
I found the following snippet that queries and returns what we need to add; however it obviously just returns screen output.
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("S
elect * from Win32_BaseBoard")
For Each objItem in colItems
For Each strOption in objItem.ConfigOptions
Next
Wscript.Echo "Serial Number: " & objItem.SerialNumber
Next
How can we add the above wmi query to write the Serial Number to both of the following output lines (in our working logon script)?
strMessage1 = " Authenticated on: " & objComputer.CN & " at " & Now & ". MAC: " & MACAddresses(".")
strMessage2 = " MAC: " & MACAddresses(".") & "." & " Authenticated by: " & objUser.CN & " at " & Now & "."
I'd like the Serial Number query to be at the end of the strMessage1 line and at the beginning of the strMessage2 line.
Is this possible?
Related Solutions:
VBscript Logon Error
Answer : Add WMI Query to Existing VBscript
I am sorry but it is seems to me that you have already written the solution.
Do you want to know how to modify your original script?
Try this:
''POPULATES AD WITH USER LOGON INFO IN DESCRIPTION FIELD
Set objSysInfo = CreateObject("ADSystemInfo
")
unEscapedUserName = Replace(objSysInfo.UserNam
e, "/", "\/")
Set objUser = GetObject("LDAP://" & unEscapedUserName)
Set objUser = GetObject("LDAP://" & Replace(objSysInfo.UserNam
e, "/", "\/"))
Set objComputer = GetObject("LDAP://" & objSysInfo.ComputerName)
strSerial= SerialNumber
strMessage1 = " Authenticated on: " & objComputer.CN & " at " & Now & ". MAC: " & MACAddresses(".") & strSerial
strMessage2 = strSerial & " MAC: " & MACAddresses(".") & "." & " Authenticated by: " & objUser.CN & " at " & Now & "."
objUser.Description = strMessage1
objUser.SetInfo
objComputer.Description = strMessage2
objComputer.SetInfo
function MACAddresses(strComputer)
dim objWMI, colItems, objItem
dim strMac
strMac=""
Set objWMI = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMI.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfig
uration where IPEnabled=TRUE",,48)
For Each objItem in colItems
if objItem.MACAddress<>"" then strMac=strMac & objItem.MACAddress & vbCrLf
Next
MACAddresses = strMac
end function
function SerialNumber
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("S
elect * from Win32_BaseBoard")
For Each objItem in colItems
For Each strOption in objItem.ConfigOptions
Next
SerialNumber = "Serial Number: " & objItem.SerialNumber
Next
end function
I hope I have understood your question
kemi67
Random Solutions
Brother Printer shows paper jam when there is none.
How to store a path in EditBox1.Text via DialogBox control?
How can I determine from an Office 2010 Volume License key (or product activation key) exactly which version of Office 2010 to download & install from MSDN (msdn.microsoft.com)?
OWA failing externally
Unattended Windows 7 Installation answer file not working
Wireless Projector Adapter
DNS over a VPN-Tunnel
ZyXel GS-1548 switch
Erratic Cursor behavior on Word 2007
Power Point files won't open from samba share