Jump to content

LDAP Fehlermeldung bei VBS Script


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

Empfohlene Beiträge

Geschrieben

Hallo Leute

 

Folgendes VBS Script führe ich aus um bei allen Usern auf einem Terminalserver die Benutzerinformationen in Office zu setzen:

 

Set objSysInfo = CreateObject("ADSystemInfo")

 

strUser = objSysInfo.UserName

Set objUser = GetObject("LDAP://" & strUser)

 

Set objWord = CreateObject("Word.Application")

objWord.UserName = objUser.givenName & " " & objUser.SN

objWord.Quit

 

Nun ist es so, dass es genau bei einem User Probleme macht und nicht funktioniert, dann kommt nämlich beim ausführen folgende Fehlermeldung:

 

skript:

\\domäne\netlogon\wordscript.vbs

Zeile: 4

Zeichen: 1

Fehler: 0x80005000

Code: 80005000

Quelle: null

 

Hab bereits gegoogelt, werde aber nicht schlau aus den Resultaten... :(

 

Bin dankbar für jeden Tipp...!

Geschrieben

Moin,

 

wenn ich nicht ganz falsch liege, ist der Fehler 80005000 "An invalid ADSI pathname was passed". Vermutlich sind Sonderzeichen im Namen des Users, die dein Skript nicht maskiert.

 

Lass dir nach der Zeile "strUser = objSysInfo.UserName" mal den Inhalt von strUser ausgeben, das sollte dich auf die Spur bringen.

 

Gruß, Nils

Geschrieben

Da werf ich doch gleich mal das Script rein, das bei uns dafür im Einsatz ist:

 

' Teilweise von http://www.administrator.de/index.php?content=85204#414686 ausgeliehen.
' Dieses Script liest die Benutzervariable %USERNAME% aus und ermittelt den Vor- und Nachnamen des Benutzers aus dem AD.
' Der Vor- und Nachname wird dann an die Function change2unicode übergeben und später via REGEDIT /S
' in die Registry eingetragen. Damit ist sichergestellt, dass in Office 2003 immer der Vor- und Nachname
' des z.Zt. angemeldeten Netzwerkbenutzers eingetragen wird.

Option Explicit

Dim oDomain, oUser, cUser, fso, WshShell, WSHNetwork, WshSysEnv, TEMP, fi

Set fso = Wscript.CreateObject("scripting.FileSystemObject") 
Set WshShell = Wscript.CreateObject("Wscript.Shell") 
Set WSHNetwork = WScript.CreateObject("WScript.Network") 
Set WshSysEnv = WshShell.Environment("PROCESS") 

cUser = WshSysEnv("USERNAME")

' Binde an User-Objekt in Domain (über aktuellen Account)
oDomain = "//WSBZMDOM.LOCAL"
Set oUser = GetObject("WinNT:" & oDomain & "/" & cUser)
If IsNull(oUser.FullName) Then
  cUser = ""
else
  cUser = oUser.FullName
End if

'WScript.Echo cUser

TEMP = WshSysEnv("TEMP") 

'wscript.echo TEMP & "\OfficeUser.reg" 

Set fi = fso.OpenTextFile (TEMP & "\OfficeUser.reg",2,true) 

fi.WriteLine ("Windows Registry Editor Version 5.00") 
fi.WriteLine ("") 
fi.WriteLine("[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\UserInfo]") 
fi.WriteLine (chr(34) & "UserName" & chr(34) & "=hex:" & change2unicode(cUser)) 
fi.close 
'wscript.quit 

WshShell.Run chr(34) & "regedit.exe" & chr(34) & " /s " & chr(34) & TEMP & "\OfficeUser.reg" & chr(34),,True 

WScript.Quit (0) 


function change2unicode(text) 

Dim i
Dim RegBinary

for i = 1 to len(text) 
RegBinary = RegBinary & hex(asc(mid(text,i,1))) & ",00," 
next 
change2unicode = RegBinary & "00,00" 
end function 

 

Gibt möglicherweise elegantere Lösung, für uns reicht das aber im Moment.

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

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...