1
我一直在試圖編寫一個程序來訪問第三方OLE DLL的屬性和方法。無法在PowerShell函數中運行[System .__ ComObject] .InvokeMember函數
下面的代碼運行良好。
[System.__ComObject].InvokeMember("AppName", [System.Reflection.BindingFlags]::GetProperty, $null, $appObj, $null)
由於調用將是重複的,我想調用下面的包裝。
function Get-Property {
param(
$objOLE,
[String] $propertyName
)
[System.__ComObject].InvokeMember($propertyName,[System.Reflection.BindingFlags]::GetProperty,$null,$objOLE,$null)
}
腳本運行時
Get-Property($appObj, "AppName")
我得到這個錯誤:
Exception calling "InvokeMember" with "5" argument(s): "Method 'System.__ComObject.ToString' not found."
At F:\Scripts\test.ps1:21 char:36
+ [System.__ComObject].InvokeMember <<<< ($propertyName,[System.Reflection.BindingFlags]::GetProperty,$null,$objOLE,$null)
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
這是令人困惑的。任何人都有洞察力?先謝謝你。