我有一个用于运行 Powershell 脚本的用户,由 Windows 2012RC2 服务器上的 Windows 任务调度程序触发。脚本使用特定的管理单元,这些管理单元添加在脚本的开头。
脚本失败,当我以所述用户身份在服务器上运行 Powershell 手动尝试查找问题的根本原因时,我发现用户无法添加管理单元:
asnp <snap-in>
+ asnp <snap-in>
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (<snap-in>:String) [Add-PSSnapin], PSArgumentException
+ FullyQualifiedErrorId : AddPSSnapInRead,Microsoft.PowerShell.Commands.AddPSSnapinCommand
如果我在 Powershell 中运行与管理员相同的命令,它工作正常。
如何允许用户在服务器上的 Powershell 中添加管理单元?
看起来管理单元对用户不可用,要么是因为它没有正确安装,要么是因为它被放置在仅限于管理员(或特定于管理员)的位置。
看看这里作为起点,然后尝试使用
get-pssnapin -registered
来检查管理单元是否确实已注册并可用;尝试以管理员和问题用户的身份运行该命令。另请参阅此处有关注册管理单元的信息。