Если вы уже находитесь в powershell, введите: Start-Process powershell -verb runas
Я пишу функцию sudo для выполнения более мощных задач, таких как выполнение чего-то повышенного и получение результата в той же оболочке, например:
sudo {rm fileThatNeedElevatedRightsToBeDeleted; ls}
Вот код:
function sudo(){
param([String] $code)
$viejos = gps powershell
$here = add-quotes (get-location).path
$resultPath = [IO.Path]::GetTempPath() + "temp.result.xml";
$code = "set-location $here; function Run{$code};Run $args|Export-Clixml $resultPath"
$encoded = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($code))
start-process PowerShell.exe -verb Runas -argumentlist '-encodedCommand',$encoded
$nuevos = gps powershell
$array = New-Object Collections.Generic.List[int]
$array2 = New-Object Collections.Generic.List[int]
$viejos | %{$array.add($_.ID)}
$nuevos | %{$array2.add($_.ID)}
$idTowait = $array2 | ?{$array -notcontains $_}
while(1){
$nuevos = gps powershell
$array2.Clear()
$nuevos | %{$array2.add($_.ID)}
if($array2 -contains $idTowait)
{sleep -Milliseconds 500}
else
{break;}
}
if(Test-Path $resultPath){
if((gi $resultPath).length)
{
Import-Clixml $resultPath
rm $resultPath
}
}
else
{"No results"};
}