Jump to content
Sign in to follow this  
Elvereth

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

Recommended Posts

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

Share this post


Link to post

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

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...