gpt4 book ai didi

c# - 从 C# 运行 Exchange Powershell 命令

转载 作者:太空狗 更新时间:2023-10-29 21:13:05 25 4
gpt4 key购买 nike

我正在尝试在 C# 中运行 EMC 命令。我在我的个人电脑上运行它,上面安装了交换管理工具。

我们的交换服务器上运行的是 2007。

问题是,当我运行 Powershell 或 EMC 时,我需要以具有 exchange server 2007 权限的不同用户身份运行,因为我的个人资料没有这些权限。

也就是说,这是我在个人电脑上运行的代码:

RunspaceConfiguration config = RunspaceConfiguration.Create();
PSSnapInException snapEx = null;

PSSnapInInfo info = config.AddPSSnapIn("Microsoft.Exchange.Management.Powershell.Admin", out snapEx);

Runspace runspace = RunspaceFactory.CreateRunspace(config);
runspace.Open();

Command createCMD = new Command("Get-Mailbox ID");

Pipeline pipe = runspace.CreatePipeline();
pipe.Commands.Add(createCMD);

Collection<PSObject> results = pipe.Invoke();

我得到的错误是:

此计算机上未安装 Windows PowerShell 管理单元 Microsoft.Exchange.Management.Powershell.Admin

我在尝试添加 Microsoft.Exchange.Management.Powershell.Admin 管理单元时得到了它。

我觉得这与我对个人资料的权限有关,但我不完全确定。如果是,我该如何解决。


编辑

我说这听起来像权限的原因是因为我能够打开 powershell 并添加管理单元。但是,当我运行诸如 get-mailboxstatistics myUserId 之类的命令时,它会抛出一条错误消息,提示 MyServer\MyStorageGroup 不存在。但是,当我按住 shift-rightCLick 并以不同的用户身份运行并使用我的 exchange 管理员帐户的凭据时,我能够运行这些命令。

最佳答案

如果报错说你的电脑上没有安装,为什么会怀疑是权限问题呢?

作为this post建议,请检查您是否安装了2007版本的工具,因为问题的Snapin在2010版本上不可用。

尝试以下步骤:

打开您选择的 powershell 编辑器并在其中添加 PSSnapin。如果有效,则说明 Snapin 可用,如果无效,则说明您的机器上确实没有安装它。

如果可用,请尝试将构建配置从 x86 设置为 64 位,反之亦然。

最终您可以手动安装有问题的 .dll。引用this answer从 Keith hill 你必须发出以下 Powershell 命令

$snapinPath = 'Microsoft.Exchange.Management.PowerShell.Admin.dll'
C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe /i $snapinPath

关于c# - 从 C# 运行 Exchange Powershell 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20228089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com