Как вывести консоль командного файла в Powershell в административном режиме? - PullRequest
1 голос
/ 11 апреля 2019

Я пытаюсь запустить командный файл (в административном режиме) в Powershell. Мне нужно, чтобы вывод командного файла был в консоли Powershell.

Я могу запустить командный файл как администратор, используя

PS> Start-Process "C:\Scripts\Test.bat" -Verb runas

Однако вывод не в Powershell, а в самой командной строке.

Я попробовал следующую команду для непосредственного запуска командной строки. Результат тот же.

PS> powerShell -Command "&{Start-Process 'cmd.exe' /c C:\Scripts\test.bat' -Verb runas}"

Если я попробую следующую команду: PS> &C:\Scripts\test.bat

Я смогу запустить командный файл с выходом консоли, но не смогу запустить его должным образом, потому что мне нужны права администратора.

Есть ли способ запустить командный файл с правами администратора и просмотреть результаты в консоли Powershell?

Ответы [ 2 ]

1 голос
/ 11 апреля 2019

Другой альтернативой является то, что вы можете написать скрипт powershell, который запускает cmd с вашим bat сценарием в качестве аргумента:

$pinfo = New-Object System.Diagnostics.ProcessStartInfo
$pinfo.FileName = "cmd.exe"
$pinfo.RedirectStandardError = $true
$pinfo.RedirectStandardOutput = $true
$pinfo.UseShellExecute = $false
$pinfo.Arguments = "/c C:\Scripts\test.bat"
$pinfo.Verb = "runas" # for elevation 
$p = New-Object System.Diagnostics.Process
$p.StartInfo = $pinfo
$p.Start() | Out-Null
$p.WaitForExit()
$stdout = $p.StandardOutput.ReadToEnd()
$stderr = $p.StandardError.ReadToEnd()
Write-Host "stdout: $stdout"
Write-Host "stderr: $stderr"
Write-Host "exit code: " + $p.ExitCode
1 голос
/ 11 апреля 2019

Вы можете перенаправить вывод пакетного файла в файл и затем показать его в Powershell.

powerShell -Command "&{Start-Process 'cmd.exe' /c C:\Scripts\test.bat >outputfile' -Verb runas -Wait}"
get-content outputfile
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...