Как запускать команды на удаленном компьютере с правами администратора (пример: запуск от имени администратора) с помощью PowerShell.
Пока я пробовал
start-process powershell.exe -verb runas -argumentlists ".\test.ps1"
Это не удается.
Invoke-Command
не может использоваться в случаях, когда требуется высота. Кроме того, я нашел принятый ответ немного неполным. Однако в моем случае я хотел запустить .exe
файл вместо сценария, но я считаю, что мое решение можно адаптировать и для обработки сценариев.
Приведенный ниже сценарий:
$EXE
переменнаяНе завершайте сеанс до завершения задания, иначе вы убьете запущенный процесс. Чтобы запустить это параллельно, удалите -Wait
аргумент от Start-Process
и наблюдайте за заданиями перед завершением сеансов.
# Enter or already have some administrative-level credentials here
$Cred=Get-Credential
$EXE='"<path to exe>"'
$Arguments=@(<array of arguments>)
$ScriptString="Start-Process -FilePath $EXE -ArgumentList @('$(Arguments -join "','")') -WindowStyle Hidden -Verb RunAs -Wait"
$ScriptBlock=[System.Management.Automation.ScriptBlock]::Create($ScriptString)
$Session=New-PSSession -ComputerName <target computer> -EnableNetworkAccess -Name <name of session> -Credential $Cred
$Job=Invoke-Command -Session $Session -ScriptBlock $ScriptBlock -AsJob
Wait-Job -Job $Job > $null
Remove-PSSession -Session $Session
Используйте командлет Invoke-Command для выполнения команды на удаленном компьютере. Синтаксис следующий:
Invoke-Command -ScriptBlock <COMMAND> -ComputerName <COMPUTER> -credential <USERNAME>
КОМАНДА - это команда, которую вы хотите запустить, КОМПЬЮТЕР - это имя хоста удаленного компьютера, а ИМЯ ПОЛЬЗОВАТЕЛЯ - это имя пользователя учетной записи, под которой вы хотите запустить команду. Вам будет предложено ввести пароль.
Используйте командлет Enter-PSSession, чтобы запустить удаленный сеанс PowerShell, в котором вы можете запускать несколько команд с помощью параметра Session командлета Invoke-Command:
Enter-PSSession -ComputerName <COMPUTER> -Credential <USERNAME>
Источник: http://www.howtogeek.com/117192/how-to-run-powershell-commands-on-remote-computers/