edocom 10 Geschrieben 3. Januar 2012 Melden Geschrieben 3. Januar 2012 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...!
NilsK 3.046 Geschrieben 3. Januar 2012 Melden Geschrieben 3. Januar 2012 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
Sunny61 833 Geschrieben 3. Januar 2012 Melden Geschrieben 3. Januar 2012 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.
Empfohlene Beiträge
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden