WMIC Abfrage im Netzwerk erstellen via .VBS
Hallo Zusammen,
könnt Ihr mir bei einer Abfrage im Netzwerk helfen?
Ich möchte eine .VBS erstellen und eine Msg box erstellen die nach dem Hostname fragt und im Netzwerk sucht.
Bekomme es nicht mit der Msg Box hin
den Hostname bekomme ich via:
angezeigt aber ich möchte den im Netzwerk suchen lassen, ich bin etwas Ratlos
Einen User im Netzwerk kann ich zurück setzten mit folgendem Script:
Viele Dank im Vorraus für jeden Tipp.
lieben Gruß
könnt Ihr mir bei einer Abfrage im Netzwerk helfen?
Ich möchte eine .VBS erstellen und eine Msg box erstellen die nach dem Hostname fragt und im Netzwerk sucht.
Bekomme es nicht mit der Msg Box hin
wmic /node:"hostname" qfe list full
den Hostname bekomme ich via:
Set wshShell = CreateObject( "WScript.Shell" )
strComputerName = wshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%" )
WScript.Echo "Computer Name: " & strComputerName
angezeigt aber ich möchte den im Netzwerk suchen lassen, ich bin etwas Ratlos
Einen User im Netzwerk kann ich zurück setzten mit folgendem Script:
GLID = InputBox("User ID??", "GL-ID")
If GLID = "" Then
WScript.Quit
End If
Set searchKonto = FindAccount(GLID)
On Error Resume Next
Userexist = searchKonto.SamAccountName
If Err.number > 0 Then
MsgBox "NOPE" & Userexist & " gibt es nicht, bitte nochmal GLID prüfen",16,"HEY AUFGEPASST =)"
WScript.Quit
End If
On Error Goto 0
'Function: FindAccount
'Description: Exits user at the AD
Function FindAccount(ByVal strGLID)
Container = "OU=Anwender,OU=DE"
Set RootDSE = GetObject("LDAP://RootDSE")
path = "LDAP://" & Container & "," & RootDSE.get("DefaultNamingContext")
sql = "SELECT ADsPath FROM '" & path & "' WHERE objectClass='User' and name ='" & strGLID & "'"
Set objconn = CreateObject("ADODB.Connection")
Set objcomm = CreateObject("ADODB.Command")
objconn.Provider = "ADsDSOObject"
objconn.open "Active Directory Provider"
Set objcomm.ActiveConnection = objconn
objcomm.CommandText = sql
objcomm.Properties("Page Size")=50
objcomm.Properties("Searchscope") = 2
Set rs = objcomm.Execute
If rs.eof Then
Set FindAccount = Nothing
Else
Set FindAccount = GetObject(rs("ADsPath"))
End If
End Function
Public Function SearchDistinguishedName(ByVal GLID)
' Function: SearchDistinguishedName
' Description: Searches the DistinguishedName for a given SamAccountName
' Parameters: ByVal GLID - The Global Link ID to search
' Returns: The DistinguishedName Name
Dim oRootDSE, oConnection, oCommand, oRecordSet
Set oRootDSE = GetObject("LDAP://rootDSE")
Set oConnection = CreateObject("ADODB.Connection")
oConnection.Open "Provider=ADsDSOObject;"
Set oCommand = CreateObject("ADODB.Command")
oCommand.ActiveConnection = oConnection
oCommand.CommandText = "<LDAP://" & oRootDSE.get("defaultNamingContext") & _
">;(&(objectCategory=User)(samAccountName="& GLID &"));distinguishedName;subtree"
Set oRecordSet = oCommand.Execute
On Error Resume Next
SearchDistinguishedName = oRecordSet.Fields("DistinguishedName")
On Error Goto 0
oConnection.Close
Set oRecordSet = Nothing
Set oCommand = Nothing
Set oConnection = Nothing
Set oRootDSE = Nothing
End Function
Result = SearchDistinguishedName(GLID)
Set objKonto = GetObject ("LDAP://" & Result & "")
On Error Resume Next
objKonto.SetPassword "Urlaub24"
If Err.number > 0 Then
MsgBox " Die Global Link ID " & Userexist & " konnte nicht zurückgesetzt werden",16,"ACHTUNG keine Berechtigung!"
WScript.Quit
End If
On Error Goto 0
With objKonto
.Put "userAccountControl", 512
.Put "pwdLastSet",0
.SetInfo
End With
MsgBox " Das Paßwort der Global Link ID " & Userexist & " wurde auf ""Urlaub24"" zurückgesetzt",,"ACHTUNG"
Viele Dank im Vorraus für jeden Tipp.
lieben Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 448179
Url: https://administrator.de/forum/wmic-abfrage-im-netzwerk-erstellen-via-vbs-448179.html
Ausgedruckt am: 23.04.2025 um 22:04 Uhr
4 Kommentare
Neuester Kommentar
Hi,
kann es sein, dass Du mit "im Netzwerk suchen" eigentlich meinst "im Active Directory suchen"?
Falls ja, dann geht das genauso wie beim Benutzer. objectClass='computer' und die OU anpassen und gut. Oder statt in einer OU zu suchen besser in der ganzen Domäne. Die Computernamen müssen je Domäne eh eindeutig sein.
E.
kann es sein, dass Du mit "im Netzwerk suchen" eigentlich meinst "im Active Directory suchen"?
Falls ja, dann geht das genauso wie beim Benutzer. objectClass='computer' und die OU anpassen und gut. Oder statt in einer OU zu suchen besser in der ganzen Domäne. Die Computernamen müssen je Domäne eh eindeutig sein.
E.