Как мне работать как "Сетевой сервис"?

Я пытаюсь запустить процесс как другой аккаунт. У меня есть команда:

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

но тогда это просит пароль. Однако для сетевой службы пароль не установлен.

Возможно ли то, что я пытаюсь сделать?

4 ответа

Используйте PsExec.exe от SysInternals.

например, это откроет новую командную строку, работающую как NETWORK SERVICE:

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

это будет работать как локальная система:

psexec -i -s cmd.exe 

Вы можете проверить это, запустив whoami из командной строки cmd.

Смотрите также:

В планировщике заданий создайте задачу для запуска приложения под пользователем NETWORK SERVICE. Затем вы можете запустить задачу из командной строки, используя

schtasks /run /TN "имя задачи"

Где имя задачи - это имя вашей задачи.

Вы можете выдать себя за учетную запись serivce только из службы Windows, как указано в этом сообщении,

http://geek.hubkey.com/2008/02/impersonating-built-in-service-account.html

Если вы попытаетесь сделать это в своем собственном пользовательском контексте, то такие попытки должны потерпеть неудачу.

Я проверил

PsExec -i -s cmd.exe

а также

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

на PsExec64-v2.2, для win10-home-x64-10.0.14393 и win10-pro-x64-10.0.15063 использовать обычную консоль не удалось, используйте повышенную консоль - все работает нормально

Я знаю, что это старый поток, но это лучший результат для этой проблемы, и я хотел иметь возможность запускать команду с помощью PowerShell без необходимости устанавливать какие-либо дополнительные инструменты на нашем Windows Server. Я придумал следующий сценарий PowerShell, который создает запланированную задачу, запускает ее, а затем удаляет. Он также написан для того, чтобы вы могли запускать команду под разными учетными записями пользователей.

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"
Другие вопросы по тегам