Подтвердить что ты не робот

Как я могу работать как "Сетевая служба"?

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

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

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

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

4b9b3361

Ответ 1

Используйте PsExec.exe из SysInternals, запускаемый из командной строки с повышенными привилегиями.

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

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

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

psexec -i -s cmd.exe 

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

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

Ответ 2

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

schtasks /run /TN "taskname"

Где имя_программы - это имя вашей задачи.

Ответ 3

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

Хитрость заключается в том, чтобы запустить ваш код как локальную систему, и оттуда вы можете олицетворять учетные записи службы, используя соответствующее имя пользователя без пароля. Один из способов запустить ваш код в качестве учетной записи локальной системы - создать оболочку командной строки, используя метод, показанный ниже (взятый из этого оригинального сообщения), и выполнить сборку оттуда. Вызов System.Diagnostics.Debugger.Break() в вашем коде позволяет отлаживать.

Чтобы создать оболочку командной строки, которая запускается под учетной записью локальной системы, откройте новое окно командной строки и введите:

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

с последующим:

c:\sc start testsvc

Новое командное окно должно было открыться. В этом окне запустите файл application.exe - вы увидите, что теперь вы работаете как встроенная системная учетная запись пользователя. После завершения тестирования вы можете удалить созданный вами тестовый сервис, введя:

c:\sc delete testsvc

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

Ответ 4

Я проверил

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 использовать обычную консоль не удалось, используйте повышенную консоль - все работает нормально

Ответ 5

Я знаю, что это старый поток, но это лучший результат для этой проблемы, и я хотел иметь возможность запускать команду с помощью 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"