Tình hình:Powershell phiên generic và nhập khẩu phiên này trong Exchange phiên quản lý từ xa
Tôi cố gắng để làm cho một ứng dụng (C# -asp.net) để thao tác sử dụng trên một máy chủ trao đổi. Ứng dụng sẽ ở trên một máy chủ khác với máy chủ của Exchange. Vì vậy, để thao tác dữ liệu, tôi đang sử dụng "Phiên quản lý từ xa Exchange" được tạo bằng C#. Phiên quản lý từ xa trao đổi cho phép truy cập vào lệnh powershell đơn giản như "New-Mailbox" và "Set-User" - Điều này rất tốt cho nhiệm vụ đơn giản, nhưng trong trường hợp của tôi, tôi phải thực hiện nhiều thao tác phức tạp hơn. không được bao gồm trong lệnh mặc định. Để truy cập vào lệnh này, tôi phải sử dụng một số mô-đun cụ thể như "ActiveDirectory". Nó đơn giản ? Chỉ sử dụng "Import-Module"! Không thực sự, như tôi đã nói, "Phiên quản lý từ xa Exchange" rất hạn chế với lệnh và "Import-Module" không được phép ...
Vì vậy, chúng tôi có thể làm gì?
Tôi đọc rất nhiều về vấn đề của tôi, và hầu hết các "đơn giản" (Đó là tôi hiểu được lý thuyết) Giải pháp là một cái gì đó như:
Bắt đầu với một phiên PS chung, nhập khẩu các mô-đun AD, sau đó kết nối đến phiên quản lý Exchange và thực hiện Nhập-PSSession và sử dụng tính năng từ xa ngầm cho các công cụ quản lý Exchange.
Cho rằng tôi khá mới để thao tác Powershell với C#, tôi không biết cách sử dụng giải pháp tuyệt vời này trong mã của mình. Vì vậy, tôi yêu cầu sự giúp đỡ của bạn.
Đây là mã hiện tại của tôi:
// 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");
này công việc mã tuyệt vời cho nhiệm vụ đơn giản (như "New-Mailbox")! Nhưng làm cách nào tôi có thể tạo "phiên PS chung" và sau đó sử dụng phiên này trong "Phiên quản lý từ xa Exchange"?