bitstash
Goto Top

Datei im Netzwerk bereits mit Schreibrechten geöffnet - Anzeige Benutzername fehlt

Guten Morgen,

Server/Domain controller: Windows 2003 R2
Clients: WinXP-Win7 gemischt

Auf sämtlichen Clients wird beim Aufruf einer bereits im Schreibmodus geöffneten Datei vom Netzlaufwerk kein Benutzername (Benutzer der die Datei aktuell verwendet) angezeigt.
Die Meldung erscheint zwar, aber innerhalb der Anführungszeichen, wo eigentlich der Benutzername stehen sollte, herrscht gähnende Leere.
Das Problem ist ausnahmslos auf allen Clients vorhanden. Leider habe ich absolut keinen Lösungsansatz für das Problem und googlen lässt es sich nicht so recht.
Vielleicht ist hier der Ein oder Andere mit dem Problem vertraut und kann mir einen entscheidenen Tipp geben face-smile.

Gruß

Content-Key: 179102

Url: https://administrator.de/contentid/179102

Ausgedruckt am: 28.03.2024 um 14:03 Uhr

Mitglied: bloodstix
bloodstix 18.01.2012 um 16:00:26 Uhr
Goto Top
Alle Geräte mal gleichzeitig ausschalten, so dass die Datei nirgendwo mehr geöffnet ist?
Wenn das nicht hilft, ist es ein SID-Problem im AD und schwer zu finden.

Dann mal
Process Monitor (sysinternals) laufen lassen, während du die Datei öffnest.
Das Log im PM sagt dir dann, wo ggf. das Problem ist.
Mitglied: cse
cse 18.01.2012 um 16:29:58 Uhr
Goto Top
steht denn im office ein nutzername?

excel --> optionen --> häufig verwendet --> Benutzername ?

wenn dort nichts steht, dann hast du auch nichts beim öffnen.

bei mir hatten alle damals ein und das selbe kürzel, was im endeffekt genauso doof ist wie bei dir...

' Modify the display name and user initials  

' entries in the registry for Office 2007 applications   
'  
' ****************************************************  
Option Explicit
' Main procedure to set registry keys  
Sub Main

' Declare variables  

Dim strDisplayName, strIn 
Dim objWshShell, objSysinfo    
' Create Active Directory System object  
Set objSysinfo    = WScript.CreateObject("ADSystemInfo")  
' Get display name from user object  
strDisplayName = Trim(GetUserNameFromAD(objSysinfo.username))
' Get extracted user initals  
strIn = Trim(GetUserInitials(strDisplayName))
'Create WScript Shell object  
Set objWshShell = WScript.CreateObject ("WScript.Shell")   
' Set UserName   
objWshShell.Run "Reg Add HKCU\Software\Microsoft\Office\Common\UserInfo /v UserName /d " & _  
chr(34) & strDisplayName & chr(34) & " /f", 1, TRUE  
' Set UserInitals  
objWshShell.Run "Reg Add HKCU\Software\Microsoft\Office\Common\UserInfo /v UserInitials /d " & _  
chr(34) & strIn & chr(34) & " /f", 1, TRUE  
 ' Dispose WScript Shell object  
Set objWshShell = nothing
End Sub
' Function to read user object from Active Directory  
Function GetUserNameFromAD(ADsPath)
Dim objUser
' Get AD object  
Set objUser = GetObject("LDAP://" & ADsPath)  
' Get Common Name from AD object  
GetUserNameFromAD = objUser.Get("cn")  
' Dispose AD object  
Set objUser = nothing
End Function
' Function to  extract intials from Common Name  
Function GetUserInitials(UserName)
' Reset errors  
Err.Clear 
' Extract user initals  
GetUserInitials =  Mid(UserName, InStr(Username, " ") + 1, 1) & Mid(UserName, 1, 1)  
' Check if an error has occured and set initals to an empty string  
If Err.Number <> 0 Then
GetUserInitials = ""  
Err.Clear
End If
End Function
' Call Main Procedure  
Main()

als vbs abspeichern und auf den clients ausführen.
dann steht dort bei jedem der entsprechende username als name im excel wenn die datei schon geöffnet ist.