我正在尝试使用PowerShell表单设置任务序列变量。
设置任务序列变量并控制ProgressUI非常简单,但是当涉及到表单本身时,它就不会出现。
将脚本减少到最小程度,这四行代码在从PowerShell运行时打开一个空白表单,但是从MDT任务序列操作运行相同的脚本"运行PowerShell脚本"不显示表单,此时阻止任务序列。我的猜测是表格是开放的,但只是不可见。
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$form = New-Object System.Windows.Forms.Form
$form.Add_Shown({$form.Activate()})
$dialogResult = $form.ShowDialog()
无意中我发现,如果我在ShowDialog()调用之前的任何地方添加以下行,则表单显示正确(因为它是一个空的GridView)
"" | Out-GridView
在线查看此示例http://www.scconfigmgr.com/2015/07/17/windows-forms-powershell-gui-template/,我看不到实质性差异,并设置额外的$表单属性并没有帮助。
有人可以对此提出任何建议吗?
我使用的是MDT 6.3.8443.1000
答案 0 :(得分:0)
从我使用System Center和MDT开始,这是一个MDT特定问题,并且长期以来一直是一个痛点。唯一一致的解决方法是调用具有您要使用的表单/对话框的外部脚本。
cmd.exe / c powershell.exe" script.ps1"
的完整路径当天早些时候,有些人试图使用MDT Studio http://mdtwizardstudio.codeplex.com,但它并没有像预期的那样成功。
完全披露,自2009年至2014年左右,我从未接近过系统中心和MDT,因此,我无法真正进一步了解这一点。然而,当我无法完成X或Y时,我总是在脚本中出现。