加載ActiveDirectory模塊我試圖遠程執行一些非常簡單的Powershell/ActiveDirectory cmdlts,但無法加載ActiveDirectory模塊。我嘗試了幾個不同的東西,包括在加載模塊的遠程服務器上註冊一個遠程shell,但是我無法讓它工作。C#無法爲Powershell遠程使用
工作原理:遠程設置工作。我的C#代碼可以連接到遠程計算機並執行Exchange命令,如New-Mailbox。但是,我無法執行類似的命令Add-ADGroupMember。
如果我登錄到遠程機器,我可以驗證所有Powershell cmdlts都可用,對於Exchange和AD。所以我知道他們在遠程機器上工作,如果我只是登錄到Powershell。
試圖執行Add-ADGroupMember給我錯誤,它不被識別爲cmdlet。這表明,對我而言,ActiveDirectory模塊未加載。但是,如果我嘗試導入它,就像這樣:
ps.Commands.AddCommand("Import-Module").AddArgument("ActiveDirectory");
此命令失敗,出現錯誤,術語「導入模塊」也沒有一個公認的cmdlet的。
我也嘗試連接到專門加載ActiveDirectory模塊的shellURI,但它無法連接。我在WS-Management目錄中發現資源URI未找到的錯誤。
這也帶來了另一個奇怪的事情;我不明白爲什麼我無法連接到遠程Powershell中列出的資源URI。如果我做了PS_GetSessionConfiguration,我看到以下內容:
AdExchange的(我自己的自定義) Microsoft.Powershell Microsoft.Powershell.Workflow Microsoft.Powershell32 Microsoft.ServerManager
但是,我無法連接到任何那些。當我設置我的連接信息對象時,我必須使用以下URI:
string shell = "http://schemas.microsoft.com/powershell/Microsoft.Exchange";
所有其他URI失敗。這是爲什麼?
總之,這裏的一些代碼:
using (Runspace runspace = RunspaceFactory.CreateRunspace(connInfo))
{
runspace.Open();
using (PowerShell ps = PowerShell.Create())
{
ps.Runspace = runspace;
Pipeline pipe = runspace.CreatePipeline();
ps.Commands.AddCommand("Import-Module").AddArgument("ActiveDirectory");
ps.Invoke();
ps.Commands.AddCommand(CreateNewUserCommand());
ps.Commands.AddCommand(CreateAddGroupCommand("FacnStaff"));
//ps.Commands.AddCommand(CreateAddGroupCommand("AllFacStaff"));
//ps.Commands.AddCommand(CreateAddGroupCommand("PasswordManagerFacStaff"));
results = ps.Invoke();
}
}
的第一個命令,CreateNewUserCommand,做一個 「新郵箱」。如果我註釋掉其他命令,這將獨立工作。
其他命令都做這樣的一些變化:
private Command CreateAddGroupCommand(string group)
{
var command = new Command("Add-ADGroupMember");
command.Parameters.Add("Identity", group);
command.Parameters.Add("Members", _username);
return command;
}
所以我的問題:
1)I不能運行AD PowerShell命令遠程 2)I不能遠程加載ActiveDirectory的模塊 3 )我無法連接到不同的Powershell外殼配置
請幫忙