簡體   English   中英

在C#中導入PowerShell模塊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM