我想做一个迭代,它会自动删除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