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集合以查看是否收到任何非終止錯誤。 –