我想做一個迭代,它會自動刪除Outlook中的所有聯繫人。Powershell迭代刪除聯繫人
這第一排將集合:
$olSession = (New-Object -ComObject Outlook.Application).Session
$olSession.Logon('Outlook')
$contactsFolder = 10
$elemek = $olSession.GetDefaultFolder($contactsFolder).Items
我可以刪除一個項目,如果我知道這個名字:
$deleteone = $elemek | Where-Object {$_.FullName -eq "Your Name"}
$deleteone.Delete()
但我想自動刪除所有聯繫人,所以我得到$elemek
中的元素數與$elemek.Count
。
我不知道如何獲取數組「動態」的價值:
for ($i=0; $i -le $elemek.Count; $i++)
{
# The following line is not working
$elemek.Count[0].Delete()
}
你能幫我解決迭代?
謝謝。
增加:
如果我運行此:
$elemek | Format-Table FullName,MobileTelephoneNumber,Email1Address
我得到這個:
FullName MobileTelephoneNumber Email1Address
-------- --------------------- -------------
Morgan Freeman /o=Mydomain/ou=Exchange Administrativ...
Johny English /o=Mydomain/ou=Exchange Administrativ...
所以我真的需要從$ elemek和使用了全名在演示文稿的腳本塊中。
' $ elemek |%{$ _。delete()}'。 %是foreach的別名 – 2015-02-23 07:01:11
我用foreach嘗試過,但foreach出錯,因爲每次運行腳本時只有一半的聯繫人被刪除。再次運行...再次一半...只有一半... – holian 2015-02-23 07:31:58
對不起,但我不知道如何... for($ i = 0; $ i -le $ elemek.Count; $ i ++){$ elemek | %{$ _。delete()}} 使用「0」參數調用「Delete」異常:「操作失敗。」 – holian 2015-02-23 07:36:02