在 MDT 2013 中将 PowerShell 脚本作为应用程序运行

在 MDT 2013 中将 PowerShell 脚本作为应用程序运行

有没有办法让 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 运行(没有任何安全提示):

从命令行运行基于 UNC 的 PowerShell 脚本

答案2

在应用程序的‘安静安装命令’中:

powershell.exe -executionpolicy bypass -noprofile -noninteractive -file ".\[yourscriptfile].ps1"

仅将 ps1 文件作为命令的主要问题是执行策略,因为默认值受到限制。即使将执行策略更改为 remotesigned,脚本也不会运行,因为它是 UNC 路径。

相关内容