MyD*_*ons 5 powershell windows-10
我有一个 .ps1 文件,需要以管理员身份运行。我很高兴看到,当我双击任何 .ps1 文件时,powershell 都会以管理员身份运行。
我已经将C:\Users\me\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell两个 PowerShell 快捷方式设置为以管理员身份运行
如果我从开始菜单打开 Powershell,系统会询问我是否允许应用程序进行更改...这表明它正在以管理员身份运行,并且当 Powershell 运行时,它会在“标题”栏中显示管理员
但是,当我双击 .ps1 文件时,它会以普通用户(而不是管理员)身份打开。
我还需要做什么?
当您双击该脚本时,这不会执行该脚本,但当您运行该脚本时,它将以提升的方式自行执行。你可以试试这个:
$principal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
if($principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
# code here...
}
else {
Start-Process -FilePath "powershell" -ArgumentList "$('-File ""')$(Get-Location)$('\')$($MyInvocation.MyCommand.Name)$('""')" -Verb runAs
}
Run Code Online (Sandbox Code Playgroud)
这样,非提升控制台将退出。
小智 1
将 powershell 快捷方式复制/粘贴到您想要启动脚本的位置。右键单击新快捷方式,单击属性,然后单击高级并确保将其设置为以管理员身份运行。然后,在目标框中键入 powershell.exe 之后脚本的路径和名称
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe c:\myscripts\my-awesome-script.ps1
Run Code Online (Sandbox Code Playgroud)
如果路径或文件名中有空格,请确保在添加内容周围使用“引号”,例如:
"c:\my scripts\some script with spaces.ps1"
Run Code Online (Sandbox Code Playgroud)
这将以管理员身份启动新的 powershell,并在新 shell 中自动启动脚本。
您可能还想重命名该快捷方式以表明它用于特定脚本,而不是常规的 powershell 会话。右键单击,重命名。
| 归档时间: |
|
| 查看次数: |
34627 次 |
| 最近记录: |