Я пытаюсь зациклить список пользователей, для которых неизвестно, содержит ли он английский или шведский язык, и в дополнение к этой проверке мне нужно знать, есть ли учетная запись с именем «CMG *», прежде чем выполнять основную задачу.
Проблема в том, что моя первая попытка запускает строки, как и ожидалось, но вторая игнорируется, поэтому, похоже, она выходит из цикла при продолжении.
Разве вы не можете иметь 2 набора Try-Catch внутри оператора if?
Я попытался перевернуть два набора Try-Catch, и это приведет к тому, что будет выполнено первое в цикле, а нижнее игнорируется.
foreach($User in $Users){
if($User."ADattribute"){
try {
if(!(Get-MailboxFolderPermission -Identity "$($User.UserPrincipalName):\Calendar" | Where-Object User -like 'CMG*')){
Add-MailboxFolderPermission -Identity "$($User.UserPrincipalName):\Calendar" -User <SecretUser> -AccessRights Reviewer
}
continue
}
catch [System.Management.Automation.RemoteException] {
Write-Host ":\Calendar could not be found"
}
try {
if(!(Get-MailboxFolderPermission -Identity "$($User.UserPrincipalName):\Kalender" | Where-Object User -like 'CMG*')){
Add-MailboxFolderPermission -Identity "$($User.UserPrincipalName):\Kalender" -User <SecretUser> -AccessRights Reviewer
}
continue
}
catch [System.Management.Automation.RemoteException] {
Write-Host ":\Kalender could not be found."
}
}
}