Я написал очень простой Powershell скрипт для насыпных переименования групп AD, ниже приведен кодPowershell: Outputing Sucess и ошибки
# This script will perform a bulk rename of AD groups.
# Takes input from a csv file called "ADGroups.csv" with two columns,
# first column labelled "ObjectGUID" and contains the GUID of the AD Group you wish to rename and
# the second column is labeled "NewName" and contains the name that you want the group to be renamed to.
# Outputs results to console and a file called ADGroupBulkRenameLog.txt
$Groups = Import-Csv ADgroups.csv
Foreach ($Group in $Groups)
{
$OldName = Get-ADGroup -Identity $Group.ObjectGUID | Select Name
Rename-ADObject -Identity $Group.ObjectGUID -NewName $Group.NewName
Set-ADGroup -Identity $Group.ObjectGUID -SamAccountName $Group.NewName
Write-Output ($OldName.Name + " has been renamed to " + $Group.NewName) | Tee-Object ADGroupBulkRenameLog.txt -Append
}
переименованием часть работает нормально, но часть я у меня возникают проблемы с является выходом , Строки вывода записываются как в файл, так и в консоль, однако, если возникает ошибка (например, новое имя уже существует), ошибка не записывается в файл, и команда записи-вывода все еще выполняется.
Мне было интересно, знает ли кто-нибудь лучший способ сделать это? Конечная цель состоит в том, чтобы выводить на консоль и файл сообщение, если группа была успешно переименована или нет, и продолжить, если она делает ошибку.
Заранее благодарен!
Wow. Так просто! Это делает именно то, что мне нужно. Я изменил команду write-output error, чтобы добавить имя старой группы AD. Большое спасибо за вашу помощь! Могу ли я просто проверить, что мое понимание команды try/catch верное? Если в блоке try встречается ошибка, она немедленно выпрыгивает и выполняет то, что находится в блоке catch? – PhilB