Ada*_*ynn 6 powershell clickonce mage
我想使用Powershell 2.0来编写使用Microsoft的Manifest Generation and Editing工具(mage)创建应用程序清单的脚本.具体来说,我希望能够将动态指定的参数值传递给mage命令(例如,从xml或其他来源读取).
虽然我可以使用invoke-expression完成此操作,但我宁愿避免将其视为不太安全的选项(即易受"powershell注入攻击"攻击).
这就是我所知道的.
这成功显示消息"application.exe.manifest已成功创建":
& "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\mage.exe" -New Application
Run Code Online (Sandbox Code Playgroud)
这不会成功,消息"第一个参数必须是以下之一:-New,-Update,-Sign"(这是一个mage,而不是powershell,错误消息):
$params = "-New Application"
& "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\mage.exe" $params
Run Code Online (Sandbox Code Playgroud)
如何将$ params值传递给mage命令,以便mage成功解释?
$params定义为数组很容易,每个数组项有一个参数:
# define $params as an array
$params = "-New", "Application"
# and pass this array in, just as you tried before
& "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\mage.exe" $params
Run Code Online (Sandbox Code Playgroud)
同上$params动态构建几步:
$params = @()
...
$params += '-New'
...
$params += 'Application'
...
& "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\mage.exe" $params
Run Code Online (Sandbox Code Playgroud)
这种方式经常被忽略,但它非常方便,它允许为本机应用程序轻松动态组合复杂的命令行.
PS我们不必关心参数值中的空格,我们使用参数数组中的值,不需要额外的".
| 归档时间: |
|
| 查看次数: |
1982 次 |
| 最近记录: |