我正在运行一个需要连接到DPM服务器的PowerShell脚本。
当我在DPM管理Shell中运行Connect-DPMServer <DPM服务器名称>
cmdlet时,命令成功并且我能够连接到服务器。
然而,当我将相同的命令放在脚本中,并通过DPM管理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
类似的情况也发生在其他DPM cmdlet上,例如Get-DPMProtectionGroup。
我在Windows Server 2008 R2上运行Powershell版本2.0。
这种特殊行为的原因是什么,如何避免?
编辑
我有一些观察结果。我的脚本有两个部分:一个包装脚本和一个作为独立作业由包装脚本调用的辅助脚本。
所有的DPM命令都在包装脚本中标识,但当它作为作业运行时,在辅助脚本中没有被标识。
为什么会出现这种情况,有什么建议来解决这个问题?
Get-command
列出已安装的命令。 - S.SpiekerGet-Command
并使用$PSVersionTable
输出 Powershell 版本以缩小范围。 - S.Spieker