Windows funktioniert wie vorgesehen und Ihr Code ist in Ordnung. Der Trick besteht darin, dass Ihr Programm als Administrator ausgeführt wird, der Explorer jedoch nicht ausgeführt wird. Wenn Ihr Programm das Netzlaufwerk zuordnet, wird die Zuordnung Prozessen in derselben Anmeldesitzung zur Verfügung gestellt - nicht dem Benutzerkonto. Von MSDN :
... Verbindungen, die mit Microsoft LAN Manager hergestellt wurden, sind nur für Anwendungen sichtbar, die in derselben Anmeldesitzung ausgeführt werden wie die Anwendung, die die Verbindung hergestellt hat. (Um die Verbindung in die Aufzählung aufzunehmen, reicht es nicht aus, dass die Anwendung in dem Benutzerkonto ausgeführt wird, mit dem die Verbindung erstellt wurde.)
Wenn Sie eine andere Eingabeaufforderung für die Verwaltung öffnen, wird das Laufwerk angezeigt, das Ihr Programm zugeordnet hat. Wenn Ihr Programm nicht als Administrator ausgeführt wurde, werden die zugeordneten Laufwerke im Explorer angezeigt.
Damit Nicht-Admin- und Admin-Anwendungen denselben Satz von Zuordnungen anzeigen können, erstellen Sie einen DWORD-Aufruf EnableLinkedConnections
, der 1
innerhalb dieses Schlüssels ( Quelle ) aufgerufen wird :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Nach dem Neustart erstellt Ihr übergeordnetes Programm Freigaben, die von anderen Anwendungen nicht angezeigt werden können.