我正在以SYSTEM帐户运行的Windows服务中运行PowerShell脚本。为了增加权限,我允许用户选择一个用户,稍后我将整个线程模拟为使用LogoUser方法。
这样我就可以访问网络驱动器,当我尝试在PowerShell中打印当前用户时,它也可以工作。
但我有一个不起作用的案例:
一个示例是用户尝试加载Exchange管理单元并运行cmdlet:Get-MailboxPermission
然后他得到错误:术语"get-MailboxPermission"未被识别为cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。术语"Get-MailboxPermission"未被识别为cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。
我猜这是权限问题,我想知道是否还有其他需要更改为RunSpace等才能获得增加的权限?还有其他想法吗?
哪个PowerShell版本?
看起来您没有添加exchange管理单元。尝试在以下时间之前运行此命令:
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin
或者,通过代码,在运行空间初始化中,使用以下代码:
RunspaceConfiguration rsConfig = RunspaceConfiguration.Create();
PSSnapInException snapInException = null;
PSSnapInInfo info = rsConfig.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.Admin", out snapInException);
Runspace myRunSpace = RunspaceFactory.CreateRunspace(rsConfig);
myRunSpace.Open(rsConfig);
阅读本文了解更多信息:http://msdn.microsoft.com/en-us/library/exchange/bb332449(v=exchg.80).aspx