Я пытаюсь подключиться к группе Office 365 и перечислить членство в группе с помощью Powershell через проект С#.
Из этой статьи я определил, что мне нужно использовать команду
Get-UnifiedGroupLinks –Identity groupalias –LinkType Members
Вот мой текущий код:
string connectionUri = "https://outlook.office365.com/powershell-liveid/";
SecureString secpassword = new SecureString();
foreach (char c in Password)
{
secpassword.AppendChar(c);
}
PSCredential credential = new PSCredential(UserName, secpassword);
Runspace runspace = RunspaceFactory.CreateRunspace();
PSObject SessionHolder = null;
using (PowerShell powershell = PowerShell.Create())
{
PSCommand command = new PSCommand();
command.AddCommand("New-PSSession");
command.AddParameter("ConfigurationName", "Microsoft.Exchange");
command.AddParameter("ConnectionUri", new Uri(connectionUri));
command.AddParameter("Credential", credential);
command.AddParameter("Authentication", "Basic");
powershell.Commands = command;
runspace.Open();
powershell.Runspace = runspace;
Collection<System.Management.Automation.PSObject> result = powershell.Invoke();
if (powershell.Streams.Error.Count > 0 || result.Count != 1)
{
throw new Exception("Fail to establish the connection");
}
else
SessionHolder = result[0];
}
using (PowerShell powershell = PowerShell.Create())
{
PSCommand command = new PSCommand();
// –Identity groupalias –LinkType Members
command = new PSCommand();
command.AddCommand("Invoke-Command");
command.AddParameter("ScriptBlock", System.Management.Automation.ScriptBlock.Create("Get-UnifiedGroupLinks"));
command.AddParameter("Session", SessionHolder);
command.AddParameter("Identity", groupAddress);
command.AddParameter("LinkType", "Members");
powershell.Commands = command;
powershell.Runspace = runspace;
Collection<PSObject> PSOutput = powershell.Invoke();
// loop through each output object item
foreach (PSObject outputItem in PSOutput)
{
}
}
Переменные, использованные выше, объявление не показано: "UserName", "Password", "groupAddress"
Я могу установить соединение со службой, но когда я пытаюсь получить членов группы, я получаю сообщение об ошибке «Не удается найти параметр, который соответствует имени параметра «Идентификация»».
Я не уверен, как действовать при устранении неполадок в моем коде. Я пробовал групповую электронную почту, псевдоним группы и отображаемое имя группы в параметре Identity. Может у меня что-то другое не так?
Я использую следующие библиотеки в Visual Studio 2017 на компьютере с Windows 10:
using System.Management.Automation;
using System.Management.Automation.Runspaces;