Freitag, 26. Juli 2013

Windows 8 / 8.1: Laufwerkszuordnungen von Unterordnern schlagen fehl

*** Informationen zum Update KB2878604 siehe Ende des Posts ***  
*** In Windows 8.1 besteht dieses Problem ebenfalls ***  

Unter Windows 8 und 8.1 gibt es einen Bug, der beim Mappen von Laufwerksverbindungen auftritt. Das Problem äußert sich darin, dass Laufwerke deren Ziel Unterordner sind nicht korrekt gemapped werden. 

Beispiel:
Per Preference wurde das hier definiert:
Laufwerk M: = \\server\share\subfolder\subfolder


Das Laufwerk wird jedoch wie folgt gemappt:
Laufwerk M: = \\server\share


Die Unterverzeichnisse werden komplett ignoriert.

Es war bereits ein ähnliches Problem bekannt, bei dem auch nicht korrekt
gemappt wurde. Jedoch tritt dies nur auf, wenn ein sogenannter "trailing slash" im Pfad enthalten ist.

siehe hier

In diesem konkreten Beispiel (Windows 8 und Server 2012) hat dies jedoch nichts mit dem Problem zu tun.

Problemzusammenfassung:
  • Die Netzlaufwerke werden mit NET USE immer korrekt angezeigt, unabhängig von einer elevated Shell.
  • Startet man den Windows Explorer elevated, hat dieser die Netzlaufwerke ebenfalls korrekt gemappt.
  • Startet man den Windows Explorer non-elevated, zeigt er die Netzlaufwerke korrekt gemappt an, verweist aber auf den Root-Folder des Shares. 
  • Es werden Laufwerke von Win 2003 Servern (SP1) gemappt. 
  • Die Policy "EnableLinkedConnections" ist aktiv.
  • Im Trace steht die Meldung Failed to connect drive with restricted token.
    [ hr = 0x80070055 "The local device name is already in use." ] 
  • Die Laufwerke werden alle mit den folgenden Optionen gemappt: Replace, Non-Reconnect, Run in logged-on user's context, Remove this item when it is no longer applied
  • Das Problem wurde auch im Microsoft Case "113021910228246" erfasst

Der Workaround:

Der einzig bekannte Workaround ist das Deaktivieren dieser Policy.
Der Wert muss auf "0" gesetzt werden.

Achtung, das Problem tritt nur bei Windows 8 auf. Der Key sollte auch nur bei Windows 8 auf "0" gesetzt werden.
Der Key kann natürlich bequem per Group Policy Preferences Registry mit einem Item Level Targeting gesetzt werden.

Microsoft hat den offiziellen Artikel zum Thema "EnableLinkedConnections" geändert. Der neue Artikel scheint mir wenig hilfreich.

Das Problem sollte jedoch nicht mit dem eigentlichen Zweck des Keys "EnableLinkedConnections" verwechselt werden (bei dem der Key auf "1" gesetzt werden muss).


Ursprünglicher Zweck des Schlüssels: 
If a user is logged on to Windows Vista or to Windows 7, and if User Account Control is enabled, a program that uses the user’s filtered access token and a program that uses the user’s full administrator access token can run at the same time. Because LSA created the access tokens during two separate logon sessions, the access tokens contain separate logon IDs.
siehe auch

Noch mehr Hintergrundinfos findet ihr in diesem Thread.
Sollte es neue Informationen zu diesem Problem geben, findet ihr das hier.

Update 26.07.2013:
Setzt man den Schlüssel "EnableLinkedConnections" auf "0", bootet den Client und meldet einen Benutzer an, dann funktioniert es für dieses Benutzerprofil.
Egal ob der Key danach wieder auf "1" gesetzt wird.
Wird jedoch das Benutzerprofil gelöscht oder ein Benutzer meldet sich an, der noch kein Benutzerprofil hat, so tritt der Fehler unter diesem User auf.


Das Problem tritt nicht wie oben angekündigt nur unter Group Policy Preferences auf, sondern auch wenn man zum Mappen das WSH(Windows Scripting Host) Object verwendet.

Vielen Dank an Martin Binder (Group Policy MVP) für diese zusätzlichen Informationen.

Update 10.08.2013:
Es gibt Licht am Ende des Tunnels. 
Microsoft hat einen Hotfix für September 2013 angekündigt.

Siehe Martin's Blog:
http://evilgpo.blogspot.de/2013/08/windows-8-und-enablelinkedconnections.html

Update 20.09.2013: 
Microsoft hat nun einen Hotfix veröffentlicht, der das Problem behebt.
Leider ist dieser Hotfix nur für Windows 8, nicht 8.1 verfügbar!

http://support.microsoft.com/kb/2878604 

Update 03.10.2013:
Auch unter Windows 8.1 (bzw. Server 2012 R2) besteht dieses Problem.
Leider gibt es jedoch keinen Hotfix für Windows 8.1.
Ob und wann es einen Fix geben wird, ist noch ungewiss.