Vom LocalSystem-Konto aus kann kein Prozess mit erhöhten Berechtigungen erstellt werden.

Vom LocalSystem-Konto aus kann kein Prozess mit erhöhten Berechtigungen erstellt werden.

Ich betreibe einen Build-Server auf Windows Server 2008 (Team City). Die Builds werden vom Team City-Agenten ausgeführt, der als Windows-Dienst unter dem LocalService-Konto ausgeführt wird.

Einer der Builds muss eine von ihm erstellte ZIP-Datei auf eine Remote-Freigabe kopieren. Dazu habe ich ein Powershell-Skript, das versucht, einen neuen Prozess mit den Anmeldeinformationen eines Benutzers mit den entsprechenden Berechtigungen zum Schreiben auf die Freigabe zu shellen. Das Problem besteht darin, dass das Skript den Prozess nicht erstellen kann. Ich kann das Skript problemlos von meinem Administratorbenutzer aus ausführen (das Skript selbst scheint also in Ordnung zu sein). Dies lässt mich vermuten, dass das LocalSystem-Konto nicht über die Berechtigung verfügt, neue Prozesse mit anderen Anmeldeinformationen oder etwas Ähnlichem zu shellen?

Irgendwelche Ideen, was dieser Fehler wirklich bedeutet? Hinweis: Ich kann in den Sicherheitsereignisprotokollen keine Fehler sehen, was seltsam erscheint(?)

$userName = "domain\user"
$password = "password"
$secstr = New-Object -TypeName System.Security.SecureString
$password.ToCharArray() | ForEach-Object {$secstr.AppendChar($_)}
$credentials = new-object -typename System.Management.Automation.PSCredential -argumentlist $userName, $secstr
$command = "Copy-Item d:\file.zip \\remote\share\file.zip"
$bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
$encodedCommand = [Convert]::ToBase64String($bytes)

Start-Process powershell -NoNewWindow -ArgumentList "-encodedCommand", $encodedCommand -credential $credentials -wait

In der Start-Process-Zeile wurde ein Fehler ausgegeben.

System.InvalidOperationException: This command cannot be executed due to the error: Access is denied.
    at System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord)

Antwort1

Sehenmeine AntwortZuErhöhen Sie die Credits mit Powershell über das lokale Systemkontobei StackOverflow:

Es scheint eine Einschränkung für bestimmte Befehle zu geben, wenn ein Skript ausgeführt wird unterLokalesSystem. Dies ist aus Sicherheitsgründen sinnvoll, daLokalesSystem:

hat vollständigen, uneingeschränkten Zugriff auf lokale Ressourcen. Dies ist auch der Nachteil von LocalSystem, da ein LocalSystem-Dienst Dinge tun kann, die das gesamte System zum Absturz bringen würden.

Referenz:MSDN, Das LocalSystem-Konto

verwandte Informationen