我正在通過使用javascript和activex從IE的EntryID自動化打開公用文件夾,並且運行了一些錯誤。爲了調試,我將它重新編寫爲Power Shell腳本。PowerShell展望自動化名稱空間
$eid = "HEX EntryID FOR PUBLIC FOLDER";
$o = new-object -com outlook.application;
$ns = $o.GetNamespace("MAPI");
#$ns #if this line is commented, error
$f = $ns.GetFolderFromID($eid)
$f.Display();
如果我關閉前景完全放倒,然後運行該腳本,我得到以下錯誤
Exception calling "GetFolderFromID" with "2" argument(s): "The messaging interface has returned an unknown error. If the problem persists, restart Outlook."
At G:\scripts\outlook.ps1:5 char:25
+ $f = $ns.GetFolderFromID <<<< ($eid)
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
如果我去掉了$ NS線,一切正常,即使其再取出。也就是說,直到我完全關閉Outlook,幾乎就好像$ ns com對象沒有被真正初始化,直到我將它輸出到控制檯。
我想知道:
- 爲什麼叫
$ns
修復問題 - 爲什麼PowerShell的認爲我經過2個參數
- 有沒有落實在JavaScript 此解決方法 方式
GetFolderFromID()只需要一個參數。第二個參數商店ID是可選的。 http://msdn.microsoft.com/en-us/library/bb219901(v=office.12).aspx – Pete
@Pete好的,我沒有閱讀msdn只是看着方法的OverloadDefinitions。很高興知道! –