Я пытаюсь записать информацию об отправителе/предмете всех писем в моем почтовом ящике Outlook в файл csv, а затем переместить электронные письма в подпапку моего почтового ящика (называемого «После») с помощью Powershell , Файл CSV создается правильно с информацией электронной почты, но только первая половина + 1 электронная почта фактически перемещается в подпапку. Вот мой код:Перемещение электронных писем в подпапку с Powershell
$olFolderInbox = 6;
$outlook = new-object -com outlook.application;
$mapi = $outlook.GetNameSpace("MAPI");
$inbox = $mapi.GetDefaultFolder($olFolderInbox);
$inbox.items|Select SenderEmailAddress,subject|Export-Csv C:\Scripts\Testing.csv -NoTypeInformation;
ForEach ($Item in $inbox.items){
try{
$Item.Move($inbox.Folders.Item("After")) | out-null;
}catch{
Write-Host "Failed to move item", $Item.Id.UniqueId;
}
}
Это мой первый опыт использования Powershell, поэтому любая помощь очень ценится!
Так что «ForEach ($ Item in $ inbox.items)» должно быть For ($ i = 0; $ i -le $ inbox.Count; $ i ++)? – Tim
Нет, вам нужно перейти от Items.Count до 1. Имейте в виду, что все коллекции Outlook основаны на 1, а не 0. –
So For ($ i = ($ inbox.items.count-1); $ i - ge 0; $ i--)? Кроме того, я вижу, что cmdlet Move-item лучше, чем $ _. Move(). Это то, что я должен использовать вместо этого? – Tim