我的任务是按键盘序列(例如Ctrl++ Shift)R来重新启动 Windows 服务。
当以管理权限启动时,我有一个在 PowerShell ISE 中运行良好的脚本。
当我尝试使用 PowerShell 脚本时,由于管理权限不足而失败。我可以让它与老式的 bat 文件一起工作,但不能与 PowerShell 一起工作,这真是令人恼火。
问题的根源在于 PowerShell 脚本的快捷方式的管理权限框是灰色的。到目前为止,还没有解决方法可以克服这个特权问题。
有任何想法吗?
我的任务是按键盘序列(例如Ctrl++ Shift)R来重新启动 Windows 服务。
当以管理权限启动时,我有一个在 PowerShell ISE 中运行良好的脚本。
当我尝试使用 PowerShell 脚本时,由于管理权限不足而失败。我可以让它与老式的 bat 文件一起工作,但不能与 PowerShell 一起工作,这真是令人恼火。
问题的根源在于 PowerShell 脚本的快捷方式的管理权限框是灰色的。到目前为止,还没有解决方法可以克服这个特权问题。
有任何想法吗?
一种方法是在脚本中启动另一个提升的 PowerShell 会话,如下所示:
Start-Process PowerShell.exe -arg '-nologo -noprofile script.ps1' -verb runas
这应该会提示提升新的 PowerShell 会话。我认为您应该能够设置 -WindowStyle 参数,以便不会出现新窗口(如果您需要该行为)。请注意,您需要指定现有脚本的完整路径。
您建议您不喜欢使用批处理文件(例如 net start)解决此问题,我认为因为批处理文件本质上比 powershell 脚本更受限制。但是,您可以将 Ps 脚本包装在一个批处理文件中,以实现您声明的目标 - 使用键盘快捷键运行 powershell 脚本,而不会出现访问权限问题。在批处理文件中试试这个:
powershell set-executionpolicy remotesigned
powershell myscript.ps1