Команды DPM в Powershell версии 2

Я запускаю сценарий PowerShell, который требует подключения к серверу DPM.

Когда я бегу, беги Connect-DPMServer <DPM Server Name> Командлет из командной консоли DPM, команда выполнена успешно, и я могу подключиться к серверу.

Однако когда я заключаю ту же команду в сценарий и вызываю сценарий через Командная консоль DPM, возникает следующая ошибка:

The term 'Connect-DPMServer' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
+ CategoryInfo          : ObjectNotFound: (Connect-DPMServer:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

Аналогично обстоит дело с другими командлетами DPM, такими как Get-DPMProtectionGroup,

Я использую Powershell версии 2.0 на Windows Server 2008 R2.

В чем причина такого специфического поведения и как я могу обойти это?

редактировать

Есть некоторые наблюдения, которые я сделал. Мой сценарий состоит из двух частей: сценария оболочки и вспомогательного сценария, который вызывается сценарием оболочки как самостоятельное задание.

Все команды DPM определены в сценарии оболочки, но не определены в вспомогательном сценарии, когда он выполняется как задание.

Любое объяснение, почему это может быть и какие-либо предложения, чтобы решить то же самое?

1 ответ

Решение

Я разобрался с решением и вот оно:

Что происходит? Сценарий-оболочка выполняется в PowerShell DPM, а затем вызывает вспомогательный сценарий как отдельное задание или поток. Среда, в которой выполняется этот вспомогательный сценарий, - это Windows PowerShell, а не DPM Powershell. Следовательно, команды DPM там не определены.

Решение Специальные модули DPM необходимо импортировать сразу после вызова вспомогательного сценария. Шаги следующие:

  1. Щелкните правой кнопкой мыши значок командной консоли DPM и просмотрите свойства.
  2. Выберите значение Target. Для меня это выглядит так C:\Windows\system32\windowspowershell\v1.0\powershell.exe -noexit -File "D:\DPM\DPM\bin\dpmcliinitscript.ps1"
  3. Значение параметра -File то есть "D:\DPM\DPM\bin\dpmcliinitscript.ps1" это файл, который при импорте в Windows Powershell преобразует его в консоль управления DPM. Это означает, что он загружает оболочку с командами DPM.
  4. Включите этот файл в вспомогательный скрипт с помощью точечного поиска. Это означает, что первая строка вспомогательного скрипта должна выглядеть так: ."D:\DPM\DPM\bin\dpmcliinitscript.ps1"

    Это поможет вызванной оболочке определить конкретные команды DPM.

Другие вопросы по тегам