#powershell #error-handling #tabs
Вопрос:
заранее приношу извинения, я полный новичок в программировании и просто знаю достаточно, чтобы быть опасным, но вроде как через множество (сбивающих с толку) проб и ошибок могу как бы выйти из уже существующих сценариев, но не могу создать один сам.
Вот что у меня есть: у меня есть сценарий, который помещает группу компьютеров в группу объявлений, которая загружается через текстовый файл:
cls
$ListSingle = Get-Content -path "c:powershellListSingle.txt"
#Select the target OU
cls
$OUDN = "OU=*AD PATH*"
#Confirm selections
cls
Write-Host "You have selected to move the following PCs to the OU listed:" -ForegroundColor Green
Write-Host ""
ForEach ($PC in $ListSingle) {Write-Host $($PC) "`t will be moved to:" $OUDN}
Write-Host ""
Pause
#Move PCs based on selections made
ForEach ($PC in $ListSingle)
{
$ADObject = Get-ADComputer $($PC)
Move-ADObject -Identity $ADObject.DistinguishedName -TargetPath $OUDN
$ADObject = Get-ADComputer $($PC)
Write-Host "New OU for"$($PC) "is:`t"(Get-ADComputer $($PC)).DistinguishedName
}
Вопрос 1) Как вы можете видеть, вкладка для второй группы работает, если имя компьютера определенной длины, но если нет, оно не выравнивается должным образом. Я попробовал добавить две вкладки, но результат тот же. Как я могу создать что-то такое, чтобы результаты были «правильными»?
Вопрос 2) Если компьютер не найден (например, удален), он выводит кучу сообщений об ошибках, и хорошо знать, что он не работал, однако для многих компьютеров это становится беспорядком. Мне не нужен весь текст ошибки — я хотел бы ограничить его только первой строкой. Есть ли способ сделать это?
Заранее благодарю вас и, пожалуйста, простите за глупые вопросы.
Ответ №1:
Я тоже новичок, как и вы, но могу предложить несколько вещей, глядя на сценарий. В случае ошибок вы можете поискать, как написать свой сценарий, используя блоки Try/Catch. Таким образом, вы можете настроить пользовательские сообщения для неудачных записей.
Для имен, которые отображаются не полностью, попробуйте экспортировать записи в файл csv, а не записывать хост. Из моего опыта я понял, что эта проблема решается в большинстве случаев при экспорте.