Jump to content

Computer Beschreibung aus ADS auslesen (vbs)


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

ich möchte gerne folgendes bewerkstelligen. Die Computer.Description eines bestimmten PCs (unabhängig von der OU) auslesen und in die lokale Computer Beschreibung wieder eintragen.

 

 

Für den zweiten Teil bin ich hier fündig geworden, nur beim auslesen der Beschreibung aus der ADS happert es massivs

 

 

Hey, Scripting Guy! How Can I Change the Description for a Computer?

 

Hoffe mir kann da bitte einer weiterhelfen

Link zu diesem Kommentar

Also ich kann jetzt die Beschreibung auslesen, nur leider muss ich den Containernamen angeben:

 

On Error Resume Next

 

Dim WshShell, Hostname

 

Set wshShell = Wscript.CreateObject("WScript.Shell")

'hostname = wshShell.ExpandEnvironmentStrings("%ComputerName%")

hostname = "test123"

 

 

Set objComputer = GetObject _

("LDAP://CN=" & hostname & ",CN=test,DC=test,DC=domain")

 

objProperty = objComputer.Get("Description")

If IsNull(objProperty) Then

Wscript.Echo "The description has not been set."

Else

Wscript.Echo "Description: " & objProperty

objProperty = Null

End If

 

 

Gibt es da vielleicht noch einen Trick?

Link zu diesem Kommentar

Hi,

Ich habe momentan kein AD zum Testen zur Verfuegung. Daher musst du wahrscheinlich noch selbst etwas experimentieren. Die Funktion unten sollte dir prinzipiell aus einem SAMComputernamen den DN zurueckliefern, den du dann weiterverwenden kannst.

Alternativ kannst du einen normalen LDAP-Search verwenden (execquery etc.). Das dauert aber deutlich laenger und ist auch mehr Code

 

----

function ComputerDN(SAMcomputername)

'Bestimmen des DNs

'dsquery und dsget muessen installiert sein

 

 

Set objShell = WScript.CreateObject("WScript.Shell")

Set objExecObject = objShell.Exec("%comspec% /c dsquery computer -samid " & SAMcomputername & "| dsget computer -dn")

 

Do Until objExecObject.StdOut.AtEndOfStream

strLine = objExecObject.StdOut.ReadLine()

strCN = Instr(strLine,"CN=")

If strCN <> 0 Then

ComputerDN=strLine 'Rueckgabewert

End If

Loop

 

end function

-----------------------------------

 

cu

blub

Link zu diesem Kommentar

Hallo mac-duff,

 

On Error Resume Next

strCN = "test123"

Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = _
  "SELECT ADsPath FROM 'LDAP://DC=test,DC=domain' WHERE objectCategory='computer' AND Name='" & strCN & "'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
strADsPath = objRecordSet.Fields("ADsPath").Value

 

und den Rest hattest du ja schon oben geschrieben.

 

Set objComputer = GetObject (strADsPath)

....

 

thorgood

Link zu diesem Kommentar

Ein kleines Prog (freeware) kann ich an dieser Stellen evtl. noch empfehlen: ARI - AdvancedRemoteInfo (★★★★★ Home@MasterBootRecord.de — MasterBootRecord.de - Matthias Zirngibl - Home@MasterBootRecord.de Remote Control Inventarisierung Hardware dokumentenmanagement system dokumenten-management-system dokumentenverwal. Ein nettes kleines PRogramm um die Daten eines oder mehrer Rechner aus dem Netz auszulesen... :top:

Link zu diesem Kommentar

Hi,

Wenn der LDAP-Search von thorgood deine Wuensche erfuellt, dann wunderbar! Trotzdem zwei Anmerkungen zu meiner Funktion:

-dsget, dsquery muessen nur auf der Maschine installiert sein, auf der das Skript laeuft. Ich nehme an, dass du die PCs remote abfragen willst.

-LDAP-Searches von der Root weg, koennen dir im Eventlog des DCs je nach Logging Einstellungen und Groesse deines ADs, Warnungen ueber uneffektive LDAP-Searches bringen.

 

cu

blub

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...