none
Выгрузка сведений по письмам в Excel RRS feed

  • Вопрос

  • Наткнулся в инете на очень интересный скрипт

    Он выгружает в 2 csv-файла информацию о входящих/исходящих письмах из всех локально загруженных в outlook профилей.
    Доступ к серверу не требуется, запускается от обычного пользователя.

    Помогите, пожалуйста, исправить его так, чтобы он считывал письма, которые находятся в ПОДпапках во "Входящих".


    $AllPath = "Входящие","Отправленные"
    $Outlook = New-Object -ComObject Outlook.Application
    $nspace = $Outlook.GetNameSpace("MAPI")
    
    for ($i = 1; $i -le $nspace.Folders.Count; $i++) {
        if ($nspace.Folders.Item($i).ShowItemCount -gt 0) {
            foreach ($Path in $AllPath) {
                    switch ($Path) {
                    'Отправленные' {$nspace.Folders.Item($i).Folders.Item($Path).Items | select Subject,SentOn,To,SenderName,SenderEmailAddress,CC,Size | Export-Csv -Path "C:\Temp\out_collect.csv" -NoTypeInformation -UseCulture -Force -encoding "UTF8"}
                    'Входящие' {$nspace.Folders.Item($i).Folders.Item($Path).Items | select Subject,ConversationTopic,CreationTime,ReceivedByName,SenderEmailAddress,To,CC,Size | Export-Csv -Path "C:\Temp\in_collect.csv" -NoTypeInformation -UseCulture -Force -encoding "UTF8"}
                    }
              }
         }
    }


    21 октября 2019 г. 8:45

Все ответы

  •  Добрый день,

    Перевожу Вашу тему в более подходящий раздел.


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий. Не забывайте помечать сообщения как ответы и полезные, если они Вам помогли.

    22 октября 2019 г. 5:22
    Модератор
  • Перевожу Вашу тему в более подходящий раздел.



     Это не помогло))
    25 октября 2019 г. 12:19
  •  Это не помогло))

    и не поможет, всем пофиг, врятли кому за вас захочется писать скрипт :-)

    ну да ладно, ловите и доработайте напильником

    $AllPath = "Входящие"
    $Outlook = New-Object -ComObject Outlook.Application
    $nspace = $Outlook.GetNameSpace("MAPI")
    
    for ($i = 1; $i -le $nspace.Folders.Count; $i++) {
        if ($nspace.Folders.Item($i).ShowItemCount -gt 0) {
            foreach ($Path in $AllPath) {
    	            foreach ( $subpath in $nspace.Folders.Item($i).folders.Item($Path).folders){
                             if ($subpath.items.count -gt 0){
    				echo $($subpath.name) 
    				echo $($subpath.items|select name,Subject)
    				}
    			}	
    
                    }
              }
         }
    

    З.Ы. просматривается только содержимое не пустых подпапок без вложенных папок внутри подпапок. (если и их нужно смотреть то наверное лучше обзор вынести в функцию и вызывать рекурсивно)

    З.З.Ы в вашем нике "My" наверное стоит заменить на "Me"


    26 ноября 2019 г. 10:03