edocom 10 Geschrieben 3. Januar 2012 Melden Teilen 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...! Zitieren Link zu diesem Kommentar
NilsK 2.971 Geschrieben 3. Januar 2012 Melden Teilen 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 Zitieren Link zu diesem Kommentar
Sunny61 812 Geschrieben 3. Januar 2012 Melden Teilen 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. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.