Exchange 2010 Powershell AutroReply CSV

Я все еще довольно силен в PowerShell, пока учу себя, однако не могу заставить его работать на Exchange 2010 со списком пользователей в CSV и настройкой ответа об отсутствии на работе. Я вызываю переменную $Email в сообщении OOO, и она никогда не выводится правильно. Пожалуйста, помогите, я в растерянности!

мой CSV прост:

Users,Email Test-1,John.J.Smith Test-2,Sammy.R.Hagar

     $content = Import-Csv "C:\Scripts\File\files.csv" -Header "Users", "Email"

    ForEach ($_.Users in $content) {
        Set-MailboxAutoReplyConfiguration $_.Users -AutoReplyState enabled -ExternalAudience all -InternalMessage "$_.Users no longer works here, please reach them at $_.Email" -ExternalMessage "$_.Ysers no longer works here, please reach them at $_.Email"
    }

 Exit

Я изменил несколько имен в этом скрипте, чтобы сделать его анонимным, однако, когда я запускаю этот скрипт, он говорит мне, что объект "Пользователи" не может быть найден в моем домене. Что дает?!?

1 ответ

Если у вас уже есть строка заголовков в вашем CSV-файле, вы не должны создавать новые с вашим Import-CSV, Для цикла foreach вы создаете новую переменную цикла и перебираете массив, созданный вами из файла csv.

$content = Import-Csv "C:\Scripts\File\files.csv" 
ForEach ($Element in $content) {
    Set-MailboxAutoReplyConfiguration $Element.Users -AutoReplyState enabled -ExternalAudience all -InternalMessage "$($Element.Users) no longer works here, please reach them at $($Element.Email)" -ExternalMessage "$($Element.Users) no longer works here, please reach them at $($Element.Email)"
}

Другой подход заключается в использовании конвейера следующим образом:

Import-Csv "C:\Scripts\File\files.csv" | 
    ForEach-Object {
        Set-MailboxAutoReplyConfiguration $_.Users -AutoReplyState enabled -ExternalAudience all -InternalMessage "$($_.Users) no longer works here, please reach them at $($_.Email)" -ExternalMessage "$($_.Users) no longer works here, please reach them at $($_.Email)"
    }
Другие вопросы по тегам