Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell查找/删除重复的outlook联系人_Powershell_Outlook - Fatal编程技术网

Powershell查找/删除重复的outlook联系人

Powershell查找/删除重复的outlook联系人,powershell,outlook,Powershell,Outlook,因此,我使用这个脚本查找/删除重复的Outlook联系人。我已经成功地使用了这个脚本,但是最近开始出现错误。我不是Powershell专家,也不自称精通它,所以我在这方面遇到了困难。只是想了解一些信息,或者想法,比如为什么这个炸弹会在…得到独特的物品 剧本 ######################################################### # # #

因此,我使用这个脚本查找/删除重复的Outlook联系人。我已经成功地使用了这个脚本,但是最近开始出现错误。我不是Powershell专家,也不自称精通它,所以我在这方面遇到了困难。只是想了解一些信息,或者想法,比如为什么这个炸弹会在…得到独特的物品

剧本

#########################################################
#                                                       #
#    Remove Duplicate Outlook Contacts by Jean Louw     #
#    Blog http://powershellneedfulthings.blogspot.com/  #
#                                                       #
#########################################################

$olSession = (New-Object -ComObject Outlook.Application).Session
$olSession.Logon('Outlook') #Outlook is the profile name
$contactsFolder = 10
$tempFolderName = 'temp_folder_' + (get-date -Format ddmmyyyhhmmss)
$myContacts = $olSession.GetDefaultFolder($contactsFolder).Items
$tempFolder = $olSession.GetDefaultFolder($contactsFolder).Folders.Add($tempFolderName)

Write-Host "..getting unique items"
$uniqueContacts = $myContacts | Sort FullName -Unique

#move contacts to temp contacts folder
foreach ($Contact in $uniqueContacts) {
$Contact.Move($tempFolder) | foreach-object {Write-Progress "Backup unique items to temp folder..." $_.FullName; $_.FullName} | Out-Null}

#read default contacts again and dump to csv
Write-Host "..export duplicates to csv"
$duplicates = $olSession.GetDefaultFolder($contactsFolder).Items
$duplicates | Export-Csv duplicates.csv

#delete all contacts left in default contacts folder
Foreach ($duplicate in $duplicates){
$duplicate.Delete() | foreach-object {Write-Progress "Deleting duplicate..." $_.FullName; $_.FullName} | Out-Null}
输出

    Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.

PS C:\Windows\system32> $olSession = (New-Object -ComObject Outlook.Application).Session
PS C:\Windows\system32> $olSession.Logon('Outlook') #Outlook is the profile name
PS C:\Windows\system32> $contactsFolder = 10
PS C:\Windows\system32> $tempFolderName = 'temp_folder_' + (get-date -Format ddmmyyyhhmmss)
PS C:\Windows\system32> $myContacts = $olSession.GetDefaultFolder($contactsFolder).Items
PS C:\Windows\system32> $tempFolder = $olSession.GetDefaultFolder($contactsFolder).Folders.Add($tempFolderName)
PS C:\Windows\system32> Write-Host "..getting unique items"
..getting unique items
PS C:\Windows\system32> $uniqueContacts = $myContacts | Sort FullName -Unique
An error occurred while enumerating through a collection: Exception from HRESULT: 0x8837000E.
At line:1 char:18
+ $uniqueContacts = <<<<  $myContacts | Sort FullName -Unique
+ CategoryInfo          : InvalidOperation (System.Runtime....ewOfEnumVariant:EnumeratorViewOfEnumVariant) [], RuntimeException
+ FullyQualifiedErrorId : BadEnumeration

PS C:\Windows\system32>
Windows PowerShell
版权所有(C)2009微软公司。版权所有。
PS C:\Windows\system32>$olSession=(新对象-ComObject Outlook.Application)。会话
PS C:\Windows\system32>$olSession.Logon('Outlook')#Outlook是配置文件名
PS C:\Windows\system32>$contactsFolder=10
PS C:\Windows\system32>$tempFolderName='temp_folder_uu'+(获取日期-格式为ddmmyyyhhmmss)
PS C:\Windows\system32>$myContacts=$olSession.GetDefaultFolder($contactsFolder).Items
PS C:\Windows\system32>$tempFolder=$olSession.GetDefaultFolder($contactsFolder).Folders.Add($tempFolderName)
PS C:\Windows\system32>写入主机“。获取唯一项”
…获得独特的物品
PS C:\Windows\system32>$uniqueContacts=$myContacts |排序全名-唯一
枚举集合时出错:HRESULT中的异常:0x8837000E。
第1行字符:18

+$uniqueContacts=我已验证配置文件名为outlooks。奇怪的是,错误是针对该行的,但显示为第1行。当管道出现错误时,
$myContacts
不使用管道的结果是什么?它在某些计算机上工作,而不是在其他计算机上,还是在您的计算机上发生了此问题?这在我自己的计算机上工作,我创建了我自己的联系人的12个副本,并进行了尝试,工作完美无瑕。我将尝试不使用管道的$myContacts,看看会发生什么。$myContacts不返回任何内容。。。因此,我昨天重试了这个脚本,并返回到这个新的输出。