Jump to content
Sign in to follow this  
edocom

LDAP Fehlermeldung bei VBS Script

Recommended Posts

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
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...