it-swarm.com.de

Wie kann ich als 'Netzwerkdienst' laufen?

Ich versuche, einen Prozess als ein anderes Konto auszuführen. Ich habe den Befehl:

runas "/user:WIN-CLR8YU96CL5\network service" "abwsx1.exe"

dann fragt das nach dem Passwort. Es ist jedoch kein Kennwort für den Netzwerkdienst festgelegt.

Ist das, was ich versuche zu tun?

69
Exitos

Verwenden Sie PsExec.exe von SysInternals. 

z.B. Dadurch wird eine neue Eingabeaufforderung geöffnet, die als NETWORK SERVICE ausgeführt wird:

psexec -i -u "nt authority\network service" cmd.exe 

dies wird als lokales System ausgeführt:

psexec -i -s cmd.exe 

Sie können dies überprüfen, indem Sie whoami in der Eingabeaufforderung von cmd ausführen.

Siehe auch:

100
Rory

Erstellen Sie im Taskplaner eine Task, um die Anwendung unter dem NETWORK SERVICE-Benutzer auszuführen. Sie können die Task dann über die Befehlszeile ausführen

 schtasks/run/TN "taskname" 

Woher aufgabennname ist der Name Ihrer Aufgabe.

13
mhenry1384

Sie können sich nur als Dienstkonto eines Windows-Dienstes ausgeben, normalerweise wie diesem Beitrag Erwähnungen:

Der Trick besteht darin, Ihren Code als lokales System auszuführen, und von dort aus können Sie die Dienstkonten mit dem entsprechenden Benutzernamen ohne Kennwort imitieren. Eine Möglichkeit, Ihren Code als lokales Systemkonto auszuführen, besteht darin, eine Befehlszeilen-Shell mithilfe der unten gezeigten Methode (aus diesem orginal post ) zu erstellen und Ihre Assembly von dort aus auszuführen. Wenn Sie System.Diagnostics.Debugger.Break() in Ihrem Code aufrufen, können Sie ein Debugging durchführen.

Um eine Befehlszeilen-Shell zu erstellen, die unter dem lokalen Systemkonto ausgeführt wird, öffnen Sie ein neues Befehlszeilenfenster und geben Sie Folgendes ein:

c:\sc create testsvc binpath= "cmd /K start" type= own type= interact

gefolgt von:

c:\sc start testsvc

Ein neues Befehlsfenster sollte sich geöffnet haben. Führen Sie in diesem Fenster Ihre application.exe aus. Sie werden nun das integrierte Systembenutzerkonto verwenden. Nachdem Sie den Test abgeschlossen haben, können Sie den von Ihnen erstellten Testdienst löschen, indem Sie Folgendes eingeben:

c:\sc delete testsvc

Wenn Sie versuchen, dies in Ihrem eigenen Benutzerkontext zu tun, sollten solche Versuche fehlschlagen.

4
Lex Li

Ich weiß, dass dies ein alter Thread ist, aber er ist das beste Ergebnis für dieses Problem, und ich wollte einen Befehl mit PowerShell ausführen können, ohne zusätzliche Tools auf unserem Windows Server installieren zu müssen. Ich habe das folgende PowerShell-Skript entwickelt, mit dem eine geplante Aufgabe erstellt, ausgeführt und anschließend gelöscht wird. Es wurde auch geschrieben, damit Sie den Befehl unter verschiedenen Benutzerkonten ausführen können.

function InstallDotNetCoreGlobalTool($PackageId, $Action = "install", $User = "NT AUTHORITY\NETWORK SERVICE", $Password = "")
{
    $TaskName = "AzureDotNetCoreGlobalToolConfiguration"
    $Command = "dotnet.exe"
    $Arguments = "tool $Action -g " + $PackageId
    $TaskAction = New-ScheduledTaskAction -Execute $Command -Argument $Arguments

    Write-Host "Setting up scheduled task to run" $Command $Arguments

    Register-ScheduledTask -TaskName $TaskName -User $User -Action $TaskAction
    Start-ScheduledTask -TaskName $TaskName

    Write-Host ""
    Write-Host "Waiting on scheduled task to complete."

    while ((Get-ScheduledTask -TaskName $TaskName).State  -ne 'Ready') 
    {
      # keep waiting
    }

    Write-Host ""

    If((Get-ScheduledTask $TaskName | Get-ScheduledTaskInfo).LastTaskResult -eq 0)
    {
        Write-Host $PackageId $Action "completed successfully"
    }
    else
    {
        If ($Action -eq "install")
        {
            Write-Host $PackageId "failed to $Action. Ensure the proper dependencies have been installed or that it isn't already installed."
        }
        Else {
            Write-Host $PackageId "failed to $Action. It may not currently be installed."
        }        
    }

    Unregister-ScheduledTask -TaskName $TaskName -Confirm:$false
}

InstallDotNetCoreGlobalTool "Amazon.Lambda.Tools" "uninstall"
0
kmcbrearty

Ich habe getestet

PsExec -i -s cmd.exe

und

PsExec -i -u "nt authority\network service" cmd.exe

auf PsExec64-v2.2, für win10-home-x64-10.0.14393 und win10-pro-x64-10.0.15063 Die Verwendung der normalen Konsole ist fehlgeschlagen

0
color-boy