Я нашел этот скрипт 'sudo' онлайн:
function Elevate-Process
{
$file, [string]$arguments = $args;
if([System.IO.File]::Exists("$(get-location)\$file"))
{
$file = "$(Get-Location)\$file";
}
$psi = new-object System.Diagnostics.ProcessStartInfo $file;
$psi.Arguments = $arguments;
$psi.Verb = "runas";
[System.Diagnostics.Process]::Start($psi);
}
set-alias sudo Elevate-Process;
Он работает нормально, но проблема в том, что если вы используете его с приложениями, которые не имеют графического интерфейса, он порождает процесс в другом окне с повышенными правами.
Например, если я запускаю sudo sfc /scannow
, вывод будет в новом окне, а старое окно даст мне следующий вывод:
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
0 2 280 76 ...55 0.00 7964 sfc
Возможно ли, чтобы выходные данные команды запускались с отображением sudo в невыпущенном окне Powershell? Если нет, есть ли другой способ поднять окно PowerShell без прав администратора, которое не печатает вывод в отдельное окно?