有没有办法让 powershell 脚本在应用程序列表下运行,以便当您从 MDT 映像安装时您可以选择要运行的脚本?
我可以很好地运行这些脚本,但每次我尝试这些脚本时,它们都无法执行。
这是我尝试的方法,但它们无法执行。(我链接到任务序列下安装应用程序下的脚本。到目前为止,我得出的结论是,微软不允许 PowerShell 脚本以这种方式工作,除非进行一些认真的黑客攻击。
编辑:
因此,在尝试了几种方法并进行了研究之后,我现在得到的是:
我正在尝试这个:
powershell -noexit "& "'\\SERVER.com\ImageDeploymentShare$\Scripts\script_tes_2t.ps1'
工作目录是:
.\%SCRIPTROOT%
但我得到了这个:
我在 technet 上看到过类似的帖子,但这肯定是极端的吧?
Filename RunPowerShell.cmd
Powershell -Command Set-ExecutionPolicy Unrestricted
Powershell.exe -file "%~dp0%1"
Powershell -Command Set-ExecutionPolicy AllSigned
Filename App1.ps1
Dir
Execute this with
[fulle_Path_if_needed\]RunPowerShell.cmd App1.ps1
答案1
我不知道 MDT,但从命令行运行 UNC 定位的 PowerShell 脚本的过程类似于powershell -ExecutionPolicy bypass -file \\path\to\file.ps1
。
它从 cmd 运行(没有任何安全提示):
答案2
在应用程序的‘安静安装命令’中:
powershell.exe -executionpolicy bypass -noprofile -noninteractive -file ".\[yourscriptfile].ps1"
仅将 ps1 文件作为命令的主要问题是执行策略,因为默认值受到限制。即使将执行策略更改为 remotesigned,脚本也不会运行,因为它是 UNC 路径。