【发布时间】:2016-05-18 01:01:18
【问题描述】:
我有 powershell 脚本,它可以连接到在线交流并执行创建共享邮箱、日历、添加许可证等任务。
问题是,当我从 C# 类运行这些命令时,我得到了错误。
这是我的连接:
string schemaURI = "http://schemas.microsoft.com/powershell/Microsoft.Exchange";
Uri connectTo = new Uri("https://outlook.office365.com/powershell-liveid/");
var securePassword = new SecureString();
foreach (char c in password)
{
securePassword.AppendChar(c);
}
this.credential = new PSCredential(login, securePassword);
WSManConnectionInfo connectionInfo = new WSManConnectionInfo(connectTo, schemaURI, credential);
connectionInfo.MaximumConnectionRedirectionCount = 5;
connectionInfo.AuthenticationMechanism = AuthenticationMechanism.Basic;
this.remoteRunspace = RunspaceFactory.CreateRunspace(connectionInfo);
this.remoteRunspace.Open();
这是我运行良好的 PowerShell:
PowerShell powershell = PowerShell.Create();
powershell.Runspace = this.remoteRunspace;
PSCommand command = new PSCommand();
command.AddCommand("new-mailbox");
command.AddParameter("Name", mailboxName);
command.AddParameter("Shared");
command.AddParameter("PrimarySmtpAddress", formatedMailboxName);
powershell.Commands = command;
powershell.Invoke();
这是无法正常工作的代码:
PowerShell powershell = PowerShell.Create();
powershell.Runspace = this.remoteRunspace;
PSCommand command = new PSCommand();
command.AddCommand("Connect-MsolService");
command.AddCommand("Import-Module MSOnline");
command.AddParameter("Credential", this.credential);
command.AddCommand("Set-MsolUser");
command.AddParameter("UserPrincipalName", userLogin);
command.AddParameter("UsageLocation", "SE");
我得到的错误如下:
附加信息:“Import-Module MSOnline”一词未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。
我尝试了各种方法,例如复制粘贴 dll 并将活动解决方案平台 CPU 更改为 64 位,但没有任何帮助。
【问题讨论】:
-
Import-Module是命令名称MSOnline是参数。 -
附加信息:“Import-Module”一词未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,如果包含路径,请验证路径是否正确,然后重试。
标签: c# visual-studio powershell exchange-server office365