Jump to content

WScript: CreateObject("ADSystemInfo").ComputerName bringt Fehler 0xC0000005


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

Empfohlene Beiträge

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

Link zu diesem Kommentar

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

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...