Elvereth 10 Geschrieben 5. November 2010 Melden Teilen Geschrieben 5. November 2010 Hallo Leute, ich möchte abhängig von der OU, in der sich das Computerkonto des Clients befindet, einen Drucker mounten. D.h. wir haben 2 Computerräume mit je einem Lehrerplatz und einem freigegebenen Drucker. Die Konten der Computerräume sind jeweils in einer OU zusammengefasst, eine OU heisst z.B. "Computerraum1" und die andere "Computerraum2". Hier das Script, welches in einer GPO "drucker-pc-raeume" verteilt wird (in Computer- und Benutzereinstellungen festgelegt). Dim wshNet, ADSysInfo, CurrentUser, CurrentComputer, strGroups Set WshNet = CreateObject("WScript.Network") Set ADSysInfo = CreateObject("ADSystemInfo") Set CurrentComputer = GetObject("LDAP://" & ADSysInfo.ComputerName) strComputerName = ADSysInfo.ComputerName on error resume next If InStr(strComputerName, "OU=Computerraum1") Then WshNet.AddWindowsPrinterConnection "\\lehrerpc1.meine.domäne\PRINTER1" WshNet.SetDefaultPrinter "\\lehrerpc1.meine.domäne\PRINTER1" End If If InStr(strComputerName, "OU=Computerraum2") Then WshNet.AddWindowsPrinterConnection "\\lehrerpc2.meine.domäne\PRINTER2" WshNet.SetDefaultPrinter "\\lehrerpc2.meine.domäne\PRINTER2" End If Auf meinem Test-PC, den ich in die OU eines Computerraums gesetzt habe, lief das. Ich hab mir anstelle der If-Anweisungen über Echo testweise den String strComputerName anzeigen lassen, der korrekterweise den kompletten FQDN-Pfad des PCs enthielt. Habe nun aber beim Anmelden auf den Clients im Computerraum2 bemerkt, dass beim Anmelden eine Laufzeitfehlermeldung aufploppt: \\meine.domäne\SYSVOL\......\druckerdran.vbs Zeile: 4 Zeichen: 1 Fehler: 0xC0000005 Code: C0000005 Quelle: (null) und der Drucker wird nicht verbunden. Mit einem anderen Testscript lokal auf diesem PC im Computerraum habe ich das darauf eingrenzen können: DN_Name = CreateObject("ADSystemInfo").ComputerName Wscript.Echo DN_Name Das Script liefert den gleichen Fehler 0xC000005 an Zeile 1. Scheinbar kann er aus irgendeinem Grund nicht auf die Property "ComputerName" der Objektinstanz "ADSysInfo" zugreifen. Das Objekt scheint leer zu sein (Quelle: (null)). Das Betriebssystem des Clients ist Windows XP ServicePack 2 (ja ich weiss das wird demnächst auf 3 aktualisiert), Domäne ist z.Zt Windows 2003 gemischt. Ein anderer Client hat Service Pack 3 und da gibts den Fehler auch. Ich denke da klemmts woanders. Ich meldete mich auch als Administrator der Domäne dort an um das Script zu testen. An der Berechtigung sollte es auch nicht liegen - abgesehen davon sollte die LDAP-Abfrage über Scripte doch zumindest mit Auth Benutzer funktionieren, oder? :confused: Also mal kurz: Testcomputer in OU des Computerraum1 --> Testscript zeigt FQDN des PCs. 1. physischer PC im Computerraum1 (SP2) --> Laufzeitfehler C0000005 2. physischer PC im Computerraum1 (SP3) --> Laufzeitfehler C0000005 ich habe Testscript und Drucker-Script mehrmals getestet und bin sozusagen zum Schluss gekommen, dass es PCs gibt, wo das Objekt ADSystemInfo nicht ausgelesen werden kann. Kennt sich damit jemand aus bzw. hat ähnliche Erfahrungen? :confused: Gruß Elvereth Zitieren Link zu diesem Kommentar
Elvereth 10 Geschrieben 8. November 2010 Autor Melden Teilen Geschrieben 8. November 2010 Anscheinen hat niemand eine Idee, warum ich mit VBS die Computerinfos aus dem AD nicht auslesen kann... :-/ Zitieren Link zu diesem Kommentar
Sigma 10 Geschrieben 10. November 2010 Melden Teilen Geschrieben 10. November 2010 Hallo, der von Dir verwendete Code verursacht wohl nur selten Fehler. Lass Dir nach dem Erstellen des ADSystemInfo-Objektes mal das Fehlerobjekt ausgeben. Vielleicht ist die Fehlerbeschreibung hilfreich. Beispielcode: On Error Resume Next Set adinfo = CreateObject("ADSystemInfo") DN_Name = adinfo.ComputerName Wscript.Echo DN_Name If Err.Number<>0 Then MsgBox ("Error # " & CStr(Err.Number) & " " & Err.Description) Err.Clear End If Ansonsten gibt es die Möglichkeit, den Computernamen anderweitig zu erfahren, so z. B. Set wshNetwork = WScript.CreateObject( "WScript.Network" ) strComputerName = wshNetwork.ComputerName WScript.Echo "Computer Name: " & strComputerName Grüße, Sigma Quellen MSDN - Err MSDN - WshNetwork Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.