Se você já estiver no powershell, digite:
Start-Process powershell -verb runas
Eu escrevo uma função sudo para realizar coisas mais poderosas, como executar algo elevado e obter o resultado no mesmo shell, por exemplo:
sudo {rm fileThatNeedElevatedRightsToBeDeleted; ls}
Aqui está o código:
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"};
}