我假设我只需将以下内容放入名为 filename.ps1 的文件中并按如下方式运行它:
powershell.exe -noexit 'filename.ps1'
它可以运行,但是不执行任何操作。
在 filename.ps1 中我有以下两行:
Import-Module ServerManager
Add-WindowsFeature RDS-RD-Server -restart
我遗漏了什么或者做错了什么?
执行策略设置为 RemoteSigned和各个命令在 PS 内部确实可以运行,无需脚本。
答案1
我使用的命令:powershell.exe -noexit 'filename.ps1' 如果文件名路径中有空格,则仅需要单引号。我删除了单引号,出于某种原因,这有效。但我不太明白为什么它有效...
通过放置引号,您的输出仅返回引用的文本。如果您的命令如下所示:
powershell.exe -noexit & 'filename.ps1'
它会执行脚本,因为它有一个调用运算符(&)
有没有办法以管理员身份运行批处理文件中的 powershell.exe 命令?如果我必须右键单击它并以管理员身份运行,那么大规模自动化的目的就落空了。
运行运行脚本的批处理文件似乎违反直觉......您尝试以什么容量运行该脚本?
答案2
@Sephethus - 这个答案是针对您评论中的一个问题,而不是发布的问题(还没有足够的代表来对此交流发表评论)
“有没有办法以管理员身份在批处理文件中运行 powershell.exe 命令?如果我必须右键单击它并以管理员身份运行,那么大规模自动化的目的就落空了。– Sephethus 昨天”
是的 - 如果您在服务器列表上远程调用该命令,它将以管理员身份运行该命令,因为只有本地管理员才有权限(默认情况下)使用 powershell 远程调用命令。
如果您想要一些示例代码,请告诉我。