我正在使用一个简单的脚本以admin身份运行另一个脚本,这将需要更改文件在受限制的区域中的位置。实际上,我已经尝试过在stackoverflow上找到的所有方法,以管理员身份运行脚本无济于事。
当我从另一个脚本调用它时,我的Powershell的“管理员”版本立即关闭。我想要的是能够运行一个具有管理权限的脚本,而当我给它执行脚本时,事情不会立即关闭。
Start-Process powershell -Verb runAs
start-process powershell -argument "C:\Scripts\Backup.ps1 TestBackup" -Verb runAs
以及此页面上的下6个答案: PowerShell: Running a command as Administrator
我希望能够以admin身份运行传递的脚本,但是会弹出admin powershell并立即关闭。
答案 0 :(得分:1)
由于执行策略的缘故,我在以管理员身份重新启动脚本时遇到了问题,因此我最终对命令进行了编码并以这种方式运行:
$Code = ". 'C:\Scripts\Backup.ps1' TestBackup"
$Encoded = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($code))
# Indicate that the process should be elevated
Start-Process PowerShell.exe -Verb RunAs -ArgumentList "-EncodedCommand",$Encoded