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)"
}