C# 365 mail contact eklemek

Merhaba, bu aralar baya işime yarayan ileride de ihtiyacım olacak c# core ortamında yazdığım kodu paylaşacağım. Kısaca ne işe yarıyor bu kod derseniz, yaptığı iş "csv" dosyası içinde bulunan user attributes bilgilerini kullanarak Office 365 üzerinde contact ekleme ve güncelleme işlemi yapıyor.Kullanılan kütüphaneler.

using System.Management.Automation.Remoting;
using System.Management.Automation.Runspaces;
string connectionUri = "https://outlook.office365.com/powershell-liveid/";
           string loginPassword = "123456";
           SecureString secpassword = new SecureString();
           foreach (char c in loginPassword)
           {
               secpassword.AppendChar(c);
           }
           PSCredential credential = new PSCredential(@"contact@domain.onmicrosoft.com", secpassword);
Runspace runspace = System.Management.Automation.Runspaces.RunspaceFactory.CreateRunspace();
               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", AuthenticationMechanism.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("exchange sunucucusuna bağlantı yapılamadı.");
               }
StringBuilder stringBuilder = new StringBuilder();
               foreach (var xxx in liste)
               {
                   stringBuilder.Clear();
                   var command2 = new PSCommand();
                   command2.AddCommand("Invoke-Command");
command2.AddParameter("ScriptBlock", System.Management.Automation.ScriptBlock.Create("New-MailContact -name '" + xxx.name + "' -organizationalunit '" + organizationalunit + "' -ExternalEmailAddress '" + xxx.mail + "';set-contact -identity '" + xxx.mail + "' -department '" + xxx.department + "' -title '" + xxx.title + "' -FirstName '" + xxx.givenName + "' -LastName '" + xxx.sn + "' -Homephone '" + xxx.homePhone + "' -Mobile '" + xxx.mobile + "' -pager '" + xxx.pager + "' -streetaddress  '" + xxx.streetAddress + "' -company '" + xxx.company + "' -city '" + xxx.l + "' -state '" + xxx.st + "' -webpage '" + xxx.wWWHomePage + "' -fax '" + xxx.facsimileTelephoneNumber + "'"));
                   command2.AddParameter("Session", result[0]);
                   powershell.Commands = command2;
//powershell.Runspace = runspace;
                   Collection<PSObject> results = powershell.Invoke();
//liste.Clear();
                   foreach (PSObject obj in results)
                   {
                       stringBuilder.AppendLine(obj.ToString());
                   }
                   if (stringBuilder.ToString() == "")
                   {
                       Console.WriteLine("Güncelleme yapılan kişi :" + xxx.name);
                   }
                   else
                   {
                       Console.WriteLine("Eklenen Kisi:" + stringBuilder.ToString());
                   }
               }
               runspace.Close();
               runspace.Dispose();
               Console.WriteLine("İşlem tamamlandı, basarılı.");

Herhangi bir açıklama yazmadım. Problem yaşarsanız veya soru sormak isterseniz. iletişime geçebilirsiniz. İyi çalışmalar dilerim.


38 görüntüleme0 yorum

Son Paylaşımlar

Hepsini Gör