Powershell: Приводит к прямой вкладке/столбцу и ограниченному выводу сообщения об ошибке

#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, а не записывать хост. Из моего опыта я понял, что эта проблема решается в большинстве случаев при экспорте.