2

I would like to run commands in PowerShell with Administrator permissions? How can I do that?

I have tried to start PowerShell with the runas command, but PowerShell is closed immediately after I have typed a password.

I use Windows 7 and I am the only user on the computer.

Jonas
  • 28,660

4 Answers4

3

Usually when I see powershell immediately close, its a problem with the Execution Policy. clicking the Orb, typing Powershell then Right Clicking the link, and "run as Administrator" and have it open that way?

You can then, to see whats going on, navigate to the folder where your script is, and do a ./NameofScript.ps1

Brian
  • 2,982
3

If you are already in powershell, type: Start-Process powershell -verb runas

I write a sudo function to accomplish more powerful things, like executing something elevated and get the result in the same shell, for example:

sudo {rm fileThatNeedElevatedRightsToBeDeleted; ls}

Here is the code:

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"};
}
mjsr
  • 6,778
0

For administrative task I have most of the time an instance of PowerShellISE running. I copied the link to start ISE from All Programs | Accessories | Windows PowerShell | Windows PowerShell ISE to the taskbar. To start ISE with Admin privileges I press the keys shift + control while left clicking the taskbar icon. After replying to the UAC dialog it ready.

Note: With regular ISE I nearly never use the Open File Dialogs, but drag files from some Explorer window into ISE. With ISE running in admin mode, this drag & drop is not possible for some security reason.

bernd_k
  • 1,261
0

PowerShell ISE lives at %windir%\system32\WindowsPowerShell\v1.0\PowerShell_ISE.exe. You can right-click that and select "Run as administrator" and run the script from in there.

You can also find it under the Windows Logo > All Programs > Accessories > Windows PowerShell and do the same thing with those shortcuts.

vapcguy
  • 121