【发布时间】:2010-11-24 19:56:39
【问题描述】:
我想使用 Powershell 2.0 编写使用 Microsoft 的清单生成和编辑工具 (mage) 创建应用程序清单的脚本。具体来说,我希望能够将动态指定的参数值传递给 mage 命令(例如,从 xml 或其他来源读取)。
虽然我可以使用 invoke-expression 来完成此操作,但我更愿意避免将其视为安全性较低的选项(即易受“powershell 注入攻击”的影响)。
这是我所知道的。
这会成功,并显示“application.exe.manifest created”消息:
& "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\mage.exe" -New Application
这不会成功,并显示消息“第一个参数必须是以下之一:-New、-Update、-Sign”(这是一个法师,而不是 powershell,错误消息):
$params = "-New Application"
& "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\mage.exe" $params
如何将 $params 值传递给 mage 命令以便它被 mage 成功解释?
【问题讨论】:
-
真正的“PowerShell 注入攻击”,加油。您正在编写什么样的 PowerShell 管理脚本,其他任何管理员都可以执行。
标签: powershell clickonce mage