我需要通过PS直接运行PS脚本在本地计算机上启动Windows服务,因为需要手动提升权限。这段代码适合我:
Start-Process powershell -Verb runas -ArgumentList "-file MyFileName.ps1"
MyFileName.ps1
包含的位置:
Start-Service MyServiceName
但是我想保持简单,而不是将命令存储到单独的文件中,我想运行一个脚本。以下内容对我不起作用:
Start-Process powershell -Verb runas -ArgumentList "-command '& {Start-Service MyServiceName}'"
我错过了什么?
答案 0 :(得分:2)
Start-Process
调用一个新进程。调用不会将单引号识别为引用字符,因此您不会使用命令字符串-command
传递参数'&{Start-Service MyServiceName}'
,而是传递4个令牌:-command
,'&
,{Start-Service
和MyServiceName}
。
改变这个:
"-command '& {Start-Service MyServiceName}'"
进入这个:
"-command `"& {Start-Service MyServiceName}`""