我有一个Windows powershell脚本,可以在服务器上提供给我的用户。我不希望他们必须出去找到PS脚本,右键单击并单击"运行PowerShell"或者用"打开#34;。 Windows(至少Win 7)默认程序是记事本。
我想制作批处理文件来执行此操作。我试过了:
start "c:\myfile.ps1" powershell.exe
以及其他一些变体,但我所能做的就是启动PowerShell,或者在默认程序记事本中打开我的文件。
任何建议表示赞赏!谢谢!
奖金问题:如果我以管理员身份运行我的批处理文件,它还会以管理员身份运行我的PS脚本吗?
答案 0 :(得分:6)
只需在批处理文件中使用PowerShell.exe的-file
参数:
PowerShell.exe -file c:\MyFile.ps1
此外,某些用户可能会将其执行策略设置为限制脚本执行的内容,因此您可能希望执行以下操作:
PowerShell.exe -ExecutionPolicy Bypass -file c:\MyFile.ps1
如果您想使用start
启动它,您可以按照Ansgar Wiechers的说明进行操作:
start "" PowerShell.exe -ExecutionPolicy Bypass -file c:\MyFile.ps1
有关使用start
的一些注意事项:默认情况下,它将在单独的窗口中启动PowerShell,并继续执行批处理文件的其余部分,而无需等待PowerShell窗口关闭。如果这是不可取的,你有两个选择。您可以在继续批处理文件之前指定等待PowerShell窗口关闭的/wait
,或者您可以使用/ B选项将无法打开新窗口,并将在当前控制台窗口中执行PowerShell。 / p>
最后,如果你的批处理文件是在Administrator上下文下运行的,那么PowerShell也是如此。