Wie lege ich die Umgebungsvariable TEMP für den Benutzer „Netzwerkdienst“ fest?

Wie lege ich die Umgebungsvariable TEMP für den Benutzer „Netzwerkdienst“ fest?

Wir haben ein System, das Path.GetTempFile- und Path.GetTempPath-Aufrufe verwendet, um ziemlich häufig mit temporären Dateien zu arbeiten. Dieses System läuft auch als Benutzer „Netzwerkdienst“. Wir stellen fest, dass uns auf dem Laufwerk C der Platz ausgeht (aus anderen Gründen werden unsere temporären Dateien ordnungsgemäß bereinigt) und möchten das temporäre Verzeichnis auf ein anderes Laufwerk verschieben können.

Die einfachste Lösung hierfür scheint darin zu bestehen, die TMP- oder TEMP-Umgebungsvariablen für den Netzwerkdienstbenutzer zu ändern, aber ich kann anscheinend nur meinen eigenen Benutzer oder die „System“-Variablen festlegen, die vom Netzwerkdienstbenutzerprofil überschrieben werden. Wie lege ich diese Variablen für den Netzwerkdienstbenutzer fest?

Antwort1

Das ist eigentlich ziemlich schwierig. Sie können den setxBefehl verwenden, um persistente Umgebungsvariablen für andere Benutzer festzulegen, aber das funktioniert nicht für NetworkService, da die Dienstkonten keine Passwörter haben (Ihre Anmeldeinformationen werden also immer abgelehnt).

Die einzige mir bekannte Möglichkeit hierfür ist die Verwendung des Taskplaners:

  1. Richten Sie eine Aufgabe ein, die als Benutzer „Netzwerkdienst“ ausgeführt werden soll.
  2. Lassen Sie die Auslöser leer.
  3. Lassen Sie die Aktion cmd.exemit den Parametern ausführen /c setx temp [target].
  4. Führen Sie die Aufgabe manuell aus.
  5. Löschen Sie die Aufgabe.

Damit wird eine persistente Umgebungsvariable für den NetworkService-Benutzer festgelegt. Ob dies erfolgreich funktioniert und die temporären Dateien für diesen Benutzer verlagert, oder ob es unvorhersehbare Nebenwirkungen verursacht, kann ich nicht mit Sicherheit sagen. Möglicherweise müssen Sie einen Neustart durchführen, um zu überprüfen, ob die temporären Dateien dort abgelegt werden, wo Sie sie haben möchten.

environmentSie können mithilfe des Befehls in WMIC überprüfen, ob die Umgebungsvariable für den richtigen Benutzer geändert wurde .

Antwort2

Umgebungsvariablen für Network ServiceKonten werden in der Windows-Registrierung gespeichert und können mit regedit geändert werden: HKEY_USERS\S-1-5-20\Environment.

verwandte Informationen