durum bu oturumu içe: Ben bir uygulama yapmaya çalışıyorumPowershell jenerik seans ve Exchange uzaktan yönetim oturumu
(C# -asp.net) bir değişim sunucusunda kullanıcının manipüle etmek. Uygulama, değişiminkinden farklı bir sunucuda olacak. Yani, verileri işlemek için C# ile oluşturulan bir "Exchange uzaktan yönetim oturumu" kullanıyorum. Exchange uzaktan yönetim oturumu, "Yeni-Posta Kutusu" ve "Set-Kullanıcı" gibi basit powershell komutlarına erişim sağlar - Bu basit bir görev için iyidir, fakat benim durumumda, bazı özel komutlara ihtiyaç duyan daha karmaşık işlemler yapmak zorundayım. varsayılan komutta bulunmaz. Bu komuta erişmek için "ActiveDirectory" gibi belirli bir modül kullanmalıyım. Basit ? Sadece "İthalat Modülü" kullanın! Gerçekten değil, dediğim gibi, "Exchange uzaktan yönetim oturumu" komutuyla çok sınırlıdır ve "Import-Module" e izin verilmez ...
Peki ne yapabiliriz?
benim sorun hakkında çok okumak ve (ı teorisini anlamak That) çözümü gibi bir şey en "basit": AD modülü almak, genel PS oturumu ile
Başlat, ardından bağlanmak Bir Exchange yönetim oturumu için bir Import-PSSession yapın ve Exchange yönetim öğeleri için örtülü bir remoting kullanın.
C# ile Powershell'i işlemek için oldukça yeni olduğum düşünüldüğünde, bu harika çözümü kodumda nasıl kullanacağımı bilmiyorum. Ben de yardımını istiyorum.
İşte benim geçerli kod var: ("Yeni-Posta Kutusu" gibi) basit bir görev için büyük
// Prepare the credentials.
string runasUsername = @"MarioKart 8";
string runasPassword = "MarioKart";
SecureString ssRunasPassword = new SecureString();
foreach (char x in runasPassword)
ssRunasPassword.AppendChar(x);
PSCredential credentials =
new PSCredential(runasUsername, ssRunasPassword);
// Prepare the connection
var connInfo = new WSManConnectionInfo(
new Uri("MarioKart8Server"),
"http://schemas.microsoft.com/powershell/Microsoft.Exchange",
credentials);
connInfo.AuthenticationMechanism =
AuthenticationMechanism.Basic;
connInfo.SkipCACheck = true;
connInfo.SkipCNCheck = true;
// Create the runspace where the command will be executed
var runspace = RunspaceFactory.CreateRunspace(connInfo);
// create the PowerShell command
var command = new Command("New-Mailbox");
....
// Add the command to the runspace's pipeline
runspace.Open();
var pipeline = runspace.CreatePipeline();
pipeline.Commands.Add(command);
// Execute the command
var results = pipeline.Invoke();
if (results.Count > 0)
System.Diagnostics.Debug.WriteLine("SUCCESS");
else
System.Diagnostics.Debug.WriteLine("FAIL");
Bu kod çalışma! Ancak "genel PS oturumu" nu nasıl oluşturabilirim ve sonra bu oturumu "Exchange uzaktan yönetim oturumunda" kullanabilir miyim?