DPM命令在Powershell版本2



我正在运行一个需要连接到DPM服务器的PowerShell脚本。

当我从DPM管理Shell中运行运行Connect-DPMServer <DPM Server Name> cmdlet时,命令成功,并且我能够连接到服务器。

但是,当我将相同的命令包含在脚本中并通过DPM Management Shell调用该脚本时,会发生以下错误:

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

Get-DPMProtectionGroup等其他DPM cmdlet的情况类似。

我在Windows Server 2008 R2上运行Powershell 2.0版本。

这种特殊行为的原因是什么?我该如何解决这个问题?

编辑

我做了一些观察。我的脚本有两个部分:一个包装器脚本和一个助手脚本,它被包装器脚本作为一个独立的作业调用。

所有的DPM命令都在包装器脚本中标识,但是当它作为作业运行时,它们不会在helper脚本中标识。

有什么解释和建议来解决这个问题吗?

我想出了解决方案,如下:

包装器脚本在DPM PowerShell中运行,然后作为单独的作业或线程调用helper脚本。这个助手脚本运行的环境是windows本机powershell,而不是DPM powershell。因此这里没有标识DPM命令。

<<p> 解决方案/strong>一旦调用helper脚本,就需要导入特定于DPM的模块。步骤如下:
  1. 右键单击DPM Management Shell图标,查看属性。

  2. 选择"Target"的值。对我来说,它看起来像这样C:Windowssystem32windowspowershellv1.0powershell.exe -noexit -File "D:DPMDPMbindpmcliinitscript.ps1"

  3. 参数-File的值为"D:DPMDPMbindpmcliinitscript.ps1",是导入到Windows Powershell后转换为DPM管理控制台的文件。这意味着,它用DPM命令加载shell。

  4. 通过点源将该文件包含在helper脚本中。这意味着,helper脚本的第一行应该像这样:."D:DPMDPMbindpmcliinitscript.ps1"

    这将帮助被调用的shell识别DPM特定的命令。

相关内容

  • 没有找到相关文章

最新更新