Was passiert, wenn ich ein Programm als Administrator ausführe?

Was passiert, wenn ich ein Programm als Administrator ausführe?

Ich versuche, eine Win7-Exe auszuführen, die sich auf einer Netzwerkfreigabe (einem Linux CIFS-Server) befindet. Die Freigabe wurde von einem Nicht-Administrator erstellt (sieheWindows 7-Problem beim Zugriff auf freigegebene Ordner). Ich kann Dateien im Ordner, der die EXE enthält, lesen, bearbeiten und schreiben. Ich kann die EXE lesen (d. h. kopieren).

Aber wenn ich versuche,laufendie EXE entweder durch Doppelklicken und OK im UAC-Dialog oder durch Rechtsklick auf „Als Administrator ausführen“ erhalte ich:

Windows cannot access the specified device, path, or file. You may not have the appropriate permissions to access the item.

Muss ich die EXE auf die lokale Festplatte kopieren, bevor ich sie ausführen kann?

Ich habe das Rezept unter (noch nicht akzeptierte Antwort für) befolgt.Wie kann ich eine EXE von einer Netzwerkfreigabe ausführen?, aber das scheint nur Leseberechtigungen, keine EXE-Berechtigungen zu erteilen.

(Entfernt verwandt:.exe kann nicht vom Netzlaufwerk ausgeführt werden.)

Antwort1

Dies ist ein erwartetes (wenn auch ungewöhnliches) Verhalten.

Wenn Sie ein Programm von einer Netzwerkfreigabe ausführen, kann dies auf verschiedene Arten erfolgen.

  1. Die Freigabe ist einem Netzlaufwerk zugeordnet: zum Beispiel g:->\\server\share
  2. Der Zugriff auf die Freigabe erfolgt direkt über die Freigabe:\\server\share

Das erste kann bereits ein Problem verursachen, wenn Sie ein Programm als Administrator ausführen. Dies erkläre ich weiter unten.

Was passiert, wenn ich ein Programm als Administrator ausführe?

Wenn Sie ein Programm als Administrator ausführen, wird eine neue Umgebung erstellt und das Profil für den Administrator geladen. Obwohl es die Rechte Ihres Benutzers verwendet, verfügt es offensichtlich über zusätzliche Rechte für den Administratorbenutzer. Infolgedessen wird keine Zuordnung zu einem Netzlaufwerk erstellt, und daher sind in seinem Profil für Ihren Administratorbenutzer keine zusätzlichen Netzwerkzuordnungen vorhanden, daher existiert das g: nicht.

Es ist sogar möglich, dass der Administratorbenutzer ebenfalls keine Berechtigung hat, wenn die Sicherheitseinstellungen der Freigabe sehr streng sind.

Wie kann das Problem behoben werden?

Natürlich können Sie die Datei einfach lokal kopieren und dann ausführen, aber nehmen wir an, Sie möchten das nicht.

Sie können zunächst eine Eingabeaufforderung als Administrator starten. Geben Sie dort den folgenden Befehl ein:

net use g: \\server\share

Ersetzen Sie das Laufwerk und die Freigabe, sodass sie mit Ihrer vorhandenen Freigabe übereinstimmen.

Solange dieses Eingabeaufforderungsfenster geöffnet ist, können Sie Ihre ausführbare Datei als Administrator ausführen und es wird garantiert funktionieren.

Wenn Ihr Benutzer keine Rechte dafür hat \\server\share, schlägt die Net Use-Funktion mit einer Fehlermeldung fehl, die Ihnen genau dies mitteilt, sodass Sie wissen, wo das Problem liegt.

Wenn die Rechte gültig sind, können Sie alternativ auf die ausführbare Datei zugreifen, indem Sie \\server\sharesie als Administrator ausführen. Dadurch entfällt die Notwendigkeit, zuerst eine Netzwerkfreigabe in einer anderen Umgebung zu erstellen.

Antwort2

Sie müssen den Wert EnableLinkedConnections auf 1 setzen, wie in diesem KB-Artikel beschrieben:

Zugeordnete Laufwerke sind in einer Eingabeaufforderung mit erhöhten Rechten nicht verfügbar, wenn die Benutzerkontensteuerung in Windows auf „Anmeldeinformationen anfordern“ konfiguriert ist.
https://support.microsoft.com/en-us/kb/3035277

  1. Suchen Sie im Registrierungs-Editor den folgenden Registrierungsunterschlüssel und klicken Sie darauf:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

  2. Klicken Sie im rechten Bereich mit der rechten Maustaste auf „Neu“ und klicken Sie dann auf „DWORD-Wert (32 Bit)“.

  3. Benennen Sie den neuen Registrierungseintrag als EnableLinkedConnections.
  4. Doppelklicken Sie auf den EnableLinkedConnectionsRegistrierungseintrag.
  5. Geben Sie im Dialogfeld DWORD-Wert bearbeiten im Feld Wert den Wert 1 ein und klicken Sie dann auf OK.
  6. Beenden Sie den Registrierungseditor und starten Sie den Computer neu.

Antwort3

Auf einige Installationsprogramme muss über zugegriffen werden können NT AUTHORITY\SYSTEM, aber Netzwerklaufwerke sind benutzerspezifisch. EnableLinkedConnectionshilft in diesem Fall nicht.

Löschen Sie Ihr vorhandenes Netzlaufwerk und ordnen Sie es erneut auf Systemebene zu. Erstellen Sie dazu eine geplante Aufgabe mit Aktion: net.exeund Argumenten: use z: \\host\share\(geben Sie bei Bedarf ein Kennwort ein) und ändern Sie das Konto für die Ausführung dieser Aufgabe in NT AUTHORITY\SYSTEM. /PERSISTENT:yesscheint nicht zu funktionieren, daher müssen Sie die Ausführung beim Booten planen

Nachdem Sie es ausgeführt haben, wird das gesamte System das Netzlaufwerk sehen. Im Windows Explorer wird es als getrennt angezeigt, funktioniert aber trotzdem.

verwandte Informationen