0
我有一个脚本,带参数的默认值,如:编程方式查找Powershell的参数的默认值
<#
Help Info snipped...
#>
param(
[string]$MyParameter = "Whatever" ,
)
当我询问该参数,通过在交互式会话中运行
(get-help C:\whatever\wherever\myscript.ps1 -Parameter MyParameter).defaultValue
我得到了“无论”,就像我期望的那样。
然而,当我调用的代码相同的片段从我的应用程序,使用的代码:
Dim inputString As String = "(get-help C:\whatever\wherever\myscript.ps1 -Parameter MyParameter).defaultValue"
Using powerShellObject As PowerShell = PowerShell.Create()
Dim powershellCommand As PSCommand = powerShellObject.Commands.AddScript(inputString)
For Each r As PSObject In powerShellObject.Invoke
Debug.Print(r.BaseObject)
next
..blah blah blah
我回去没事(即变量r为无)。
现在,如果我更改脚本的这段,我跑像
(get-help get-process -parameter ComputerName)
我会得到(从交互式会话)“本地计算机”,然后从上面的代码,我会得到“本地计算机“在r.BaseObject中。
我在做什么错?
尝试执行只是' “(获得的帮助C:\什么\地方\ myscript.ps1)”',看看你得到任何帮助信息了。另外,请检查powerShellObject.Streams.Error集合以查看是否收到任何非终止错误。 –