2017-02-20 44 views
1

Lotus NotesデータベースをPowerShellから検索し、"Type Mismatch. (Exception from HResult: 0x80020005 (DISP_E_TYPEMISMATCH)" At line 1: char:1を取得しようとしています。PowerShellからLotus Notesデータベースを検索する

セットアップコード:

$notesSession = New-Object -ComObject Lotus.NotesSession 
$notesSession.Initialize() 
$notesDb = $notesSession.GetDatabase(..., ...) 

しようとしたとき、私はエラーを取得...

$results = $notesDb.Search("text", $null, 0) 
$results = $notesDb.Search("text", $(Get-Date), 0) 
$results = $notesDb.Search("text", $([System.DateTime]::Now), 0) 

誰もが間違いを見つけることができますか?私はエラーが日付の引数、それゆえ私の複数の試みと関係があると思います。

答えて

2

エラーは、.Search wants a notesDateTime object for that parameterという事実のようです。だから理論的には、notesdatetimeオブジェクトを作成し、それを検索メソッドに渡すだけです。

$searchDate = $notesSession.CreateDateTime(get-date -f "yyyy-MM-dd") 

私はこれをテストする立場にないですまた私はCreateDateTimeメソッドに$ヌルを渡すのこの短いからヌルリターンを取得する方法を確信しています。

Unsure if this is the correct reference for the COM implementationが、パラメータセクション

あなたは、オブジェクトが表現したい日付と時刻から。空の文字列( "")を使用すると、日付はワイルドカードの日付に設定されます。 Notes日時式「Today」、「Tomorrow」および「Yesterday」がサポートされています。

+0

これはあなたの問題です。しかし、実行可能な解決策を持っていない可能性があります。私が間違っている場合、私はこれを削除します。 – Matt

+0

ありがとう、私は '.CreateDateTime'メソッドを見逃しました、私は愚かです。数式エラーを今すぐ取得する!戦い続ける... – Federer

関連する問題