PowerShell try-catch цикл выхода до второй попытки - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь зациклить список пользователей, для которых неизвестно, содержит ли он английский или шведский язык, и в дополнение к этой проверке мне нужно знать, есть ли учетная запись с именем «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."          
        } 
    }
}

1 Ответ

1 голос
/ 09 апреля 2019

Я думаю, вам не хватает функции ключевого слова продолжить .При выполнении ключевого слова continue текущая итерация останавливается и продолжается со следующей итерации.Поэтому я думаю, что если вы удалите ключевое слово (продолжение) продолжения, ваш сценарий будет работать как исключение.

https://devblogs.microsoft.com/scripting/powershell-looping-the-continue-statement/

...