#powershell #import #powershell-2.0 #remote-server #powershell-ise
Вопрос:
Я создал короткий скрипт PowerShell для импорта файла .reg (ODBC) в другой сеанс сервера.
Я столкнулся с этим предупреждением/проблемой. Сообщение такое (ниже):
Операция завершилась успешно. CategoryInfo : Не указано: (Операция завершена успешно.:Строка) [], исключение RemoteException полностью квалифицированный идентификатор ошибки : NativeCommandError Имя компьютера : ИМЯ СЕРВЕРА
Не указано: (:) [], исключение RemoteException
Скрипт, устанавливаю без проблем файл .reg, но постоянно получаю сообщение.
Это мой код:
#PARAMETERS - Variables
$Serverlist = Get-Content C:ServerList.txt
try
{
Foreach ($ServerName in $Serverlist)
{
$session = New-PSSession -ComputerName $servername
Write-Host -Foregroundcolor Green "Copying ODBC Driver for $servername"
$copy_cmd = "C:MYFILE.reg"
Copy-Item $copy_cmd \$servernameC$ -recurse -force;
Write-Host -Foregroundcolor Green "ODBC Successfully copied on $servername"
#$session = New-PSSession -ComputerName $servername
Invoke-Command -Session $session -ScriptBlock {
#Start-Process
reg import C:CopiedFile.reg #This line generate the message
Write-Host -Foregroundcolor Green "ODBC was installed
}
catch
{
Write-Host "ERROR" -Foregroundcolour Red
exit
}
Я попытался вставить оператор Invoke-Command
or reg import
в оператор try — catch, но сообщение все равно появилось. Вместо этого я использовал другую команду reg import
, но ничего не изменилось.
Я могу использовать эту командную строку, но я хотел бы поймать ошибку.
Write-Host -Foregroundcolor Green "ODBC is installed " } ##-ErrorAction SilentlyContinue
Есть любой способ получить ошибку в конечном итоге или обработать сообщение.
Заранее спасибо.
Ответ №1:
Если блок try не генерирует завершающую ошибку, он не перейдет в блок Catch. Это контролируется -ErrorAction
параметром. Таким образом, вы можете установить
Вызов-Командный сеанс $сеанс -Блок сценариев {} -Остановка действия с ошибкой
Это приведет Invoke-Command
к тому, что командлет создаст завершающие ошибки(если возникнет какая-либо ошибка), разрешающие выполнение блока catch.
Комментарии:
1. Спасибо за ваш ответ @Abdul Niyas P M. Я добавил предложенную вами команду, но получаю то же сообщение/предупреждение. (в любом случае файл был импортирован и установлен). Операция завершилась успешно. В C:MyScript.ps1:24 символ:5 Вызов-Команда -Сеанс $сеанс -Блок сценариев { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CategoryInfo : Не указано: (Операция завершена успешно. :Строка) [], исключение RemoteException полностью квалифицированный идентификатор ошибки : NativeCommandError Имя компьютера : MYSERVER
2. @ulisses Можете ли вы попытаться завернуть
reg import C:CopiedFile.reg
это внутрьInvoke-Expression "reg import C:CopiedFile.reg" -ErrorAction Stop
?3. Привет @Абдул Нияс П. М. спасибо, что уделили мне время. Я использовал, но я получаю то же самое сообщение.