[英]Importing PowerShell module in C#
我正在嘗試編寫一些C#代碼以使用PowerShell與Lync進行交互,並且在執行Lync cmdlet之前,我需要導入Lync模塊。 但是,我的代碼似乎沒有導入模塊,並且不斷收到“找不到get-csuser命令”異常。 這是我的代碼:
PowerShell ps = PowerShell.Create();
ps.AddScript(@"import-module Lync");
ps.Invoke();
ps.Commands.AddCommand("Get-csuser");
foreach (PSObject result in ps.Invoke())
{
Console.WriteLine(result.Members["Name"].Value);
}
知道如何導入Lync模塊嗎?
知道了,該模塊需要通過其完整路徑導入,並且64位Powershell和32位Powershell的執行策略都需要設置為Unrestricted(或根據情況的不同而不同)。 這是代碼:
static void Main(string[] args)
{
InitialSessionState initial = InitialSessionState.CreateDefault();
initial.ImportPSModule(new string[] {"C:\\Program Files\\Common Files\\Microsoft Lync Server 2010\\Modules\\Lync\\Lync.psd1"} );
Runspace runspace = RunspaceFactory.CreateRunspace(initial);
runspace.Open();
PowerShell ps = PowerShell.Create();
ps.Runspace = runspace;
ps.Commands.AddCommand("Get-csuser");
foreach (PSObject result in ps.Invoke())
{
Console.WriteLine(result.Members["Identity"].Value);
}
}
嘗試使用PowerShell類的AddCommand方法。
ps.AddCommand("import-module Lync");
或者您可以使用Runspace類,可以在此處找到示例: http : //www.codeproject.com/Articles/18229/How-to-run-PowerShell-scripts-from-C
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.