通过powershell在outlook ContactItem中没有电子邮件地址

gal*_*13x 5 powershell outlook

当我检查a时ContactItem,所有Email#Address值都为空.我已经尝试设置值然后打印值.此更改反映在Outlook中,但是,无法通过PowerShell检索任何值.

以下是一些片段:

$Outlook=NEW-OBJECT –comobject Outlook.Application
$Contacts=$Outlook.session.GetDefaultFolder(10).items
$Contactsfolders = $Outlook.session.GetDefaultFolder(10).Folders
$testFolder = $Contactsfolders | Where-Object {$_.Name -eq 'Test Folder'}
$testContact = $testFolder.Items(1)

echo $testContact
$testContact.Email1Address = "BobDoe3@doe.com"
echo $testContact
Run Code Online (Sandbox Code Playgroud)

这是上述执行的输出.注意我已经删除了一些不感兴趣的信息以缩短.

第一回声

Application                  : Microsoft.Office.Interop.Outlook.ApplicationClass
Class                        : 40
Session                      : Microsoft.Office.Interop.Outlook.NameSpaceClass
ConversationTopic            : John Doe
FormDescription              : System.__ComObject
GetInspector                 : System.__ComObject
Importance                   : 1
LastModificationTime         : 10/31/2017 5:57:04 PM
MAPIOBJECT                   : System.__ComObject
MessageClass                 : IPM.Contact
OutlookInternalVersion       : 154971
OutlookVersion               : 15.0
Saved                        : True
Sensitivity                  : 0
Size                         : 11614
Subject                      : Bob Doe
UserProperties               : System.__ComObject
Account                      : 
Anniversary                  : 1/1/4501 12:00:00 AM
AssistantName                : 
AssistantTelephoneNumber     : 
Birthday                     : 1/1/4501 12:00:00 AM
CompanyAndFullName           : The Doe Company
                               Doe, Bob
CompanyLastFirstNoSpace      : 
CompanyLastFirstSpaceOnly    : 
CompanyMainTelephoneNumber   : 
CompanyName                  : The Doe Company
ComputerNetworkName          : 
CustomerID                   : 
Department                   : 
Email1Address                : 
Email1AddressType            : 
Email1DisplayName            : 
Email1EntryID                : 
Email2Address                : 
Email2AddressType            : 
Email2DisplayName            : 
Email2EntryID                : 
Email3Address                : 
Email3AddressType            : 
Email3DisplayName            : 
Email3EntryID                : 
FileAs                       : Doe, Bob
FirstName                    : Bob
FTPSite                      : 
FullName                     : Bob Doe
FullNameAndCompany           : Doe, Bob
                               The Doe Company
Gender                       : 0
GovernmentIDNumber           : 
Hobby                        : 
Home2TelephoneNumber         : 
HomeAddress                  : 
HomeAddressCity              : 
HomeAddressCountry           : 
HomeAddressPostalCode        : 
HomeAddressPostOfficeBox     : 
HomeAddressState             : 
HomeAddressStreet            : 
HomeFaxNumber                : 
HomeTelephoneNumber          : 
Initials                     : B.D.
InternetFreeBusyAddress      : 
ISDNNumber                   : 
JobTitle                     : 
Journal                      : False
Language                     : 
LastFirstAndSuffix           : 
LastFirstNoSpace             : 
LastFirstNoSpaceCompany      : 
LastFirstSpaceOnly           : 
LastFirstSpaceOnlyCompany    : 
LastName                     : Doe
LastNameAndFirstName         : Doe, Bob
Run Code Online (Sandbox Code Playgroud)

第二回声

Application                  : Microsoft.Office.Interop.Outlook.ApplicationClass
Class                        : 40
Session                      : System.__ComObject
Subject                      : Bob Doe
UnRead                       : False
UserProperties               : System.__ComObject
Account                      : 
Anniversary                  : 1/1/4501 12:00:00 AM
AssistantName                : 
AssistantTelephoneNumber     : 
Birthday                     : 1/1/4501 12:00:00 AM
Business2TelephoneNumber     : 
BusinessAddress              : 
BusinessAddressCity          : 
BusinessAddressCountry       : 
BusinessAddressPostalCode    : 
BusinessAddressPostOfficeBox : 
BusinessAddressState         : 
BusinessAddressStreet        : 
BusinessFaxNumber            : 
BusinessHomePage             : 
BusinessTelephoneNumber      : 
CallbackTelephoneNumber      : 
CarTelephoneNumber           : 
Children                     : 
CompanyAndFullName           : The Doe Company
                               Doe, Bob
CompanyLastFirstNoSpace      : 
CompanyLastFirstSpaceOnly    : 
CompanyMainTelephoneNumber   : 
CompanyName                  : The Doe Company
ComputerNetworkName          : 
CustomerID                   : 
Department                   : 
Email1Address                : 
Email1AddressType            : 
Email1DisplayName            : 
Email1EntryID                : 
Email2Address                : 
Email2AddressType            : 
Email2DisplayName            : 
Email2EntryID                : 
Email3Address                : 
Email3AddressType            : 
Email3DisplayName            : 
Email3EntryID                : 
FileAs                       : Doe, Bob
FirstName                    : Bob
FTPSite                      : 
FullName                     : Bob Doe
FullNameAndCompany           : Doe, Bob
                               The Doe Company
Gender                       : 0
GovernmentIDNumber           : 
Hobby                        : 
Home2TelephoneNumber         : 
HomeAddress                  : 
HomeAddressCity              : 
HomeAddressCountry           : 
HomeAddressPostalCode        : 
HomeAddressPostOfficeBox     : 
HomeAddressState             : 
HomeAddressStreet            : 
HomeFaxNumber                : 
HomeTelephoneNumber          : 
Initials                     : B.D.
InternetFreeBusyAddress      : 
ISDNNumber                   : 
JobTitle                     : 
Journal                      : False
Language                     : 
LastFirstAndSuffix           : 
LastFirstNoSpace             : 
LastFirstNoSpaceCompany      : 
LastFirstSpaceOnly           : 
LastFirstSpaceOnlyCompany    : 
LastName                     : Doe
LastNameAndFirstName         : Doe, Bob
Run Code Online (Sandbox Code Playgroud)

我在玩不同的结果和解决方案时发现了一些有趣的东西.我发现下面的两个查询都会产生相同的匹配,这让我感到困惑,因为我认为myString -ne ''是在检查字符串是否为空.看起来myString -ne ''并且[String]::IsNullOrEmpty($myString)都可以返回真实看似不可能,但我认为在某些情况下可能会发生这种情况.另请注意,IsNullOrEmpty功能异常快.

$Listconstact=$session.GetDefaultFolder(10).Folders | %{$session.GetFolderFromID($_.EntryID).Items | where Email1Address -NE ''}
Run Code Online (Sandbox Code Playgroud)

$Listconstact=$session.GetDefaultFolder(10).Folders | %{$session.GetFolderFromID($_.EntryID).Items | where {[String]::IsNullOrEmpty($_.Email1Address)}}
Run Code Online (Sandbox Code Playgroud)

来自tukan答案的结果:

VERBOSE: From:
VERBOSE: Subject: How are things
VERBOSE: From:
VERBOSE: Subject: See you soon
VERBOSE: From:
VERBOSE: Subject: Meeting Times
Run Code Online (Sandbox Code Playgroud)

Esp*_*o57 1

尝试这样的事情:

\n\n
$Outlook=NEW-OBJECT \xe2\x80\x93comobject Outlook.Application\n$session=$Outlook.session\n$Listconstact=$session.GetDefaultFolder(10).Folders | %{$session.GetFolderFromID($_.EntryID).Items | where Email1Address -ne \'\'}\n\n#only one item\nWrite-Host "First element mail : $($Listconstact[0].Email1Address)`n`n" \n\n\n#All mails\nWrite-Host "All element mail :"\n$Listconstact.Email1Address\n
Run Code Online (Sandbox Code Playgroud)\n