c# - 在 C# 中导入 PowerShell 模块

标签 c# powershell lync

我正在尝试编写一些 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);
    }
}

关于c# - 在 C# 中导入 PowerShell 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17070747/

相关文章:

c# - 如何在 .Net 应用程序中使用区域时区?

c# - 请解释一下这个 C# 代码片段

json - Powershell ConvertFrom-JSON 到 csv 文件

c# - 如何以编程方式将视频通话设置为全屏启动? (Lync SDK)

directshow - 我们如何确定 Lync 用于捕获和呈现音频的 API?

c# - 用于表单例份验证的 Web.Config,匿名用户不可用的位置

c# - 在 C# 中是否有一个语法上合法的表达式,它具有 2 个仅由空格分隔的连续标识符?

azure - 从 ADF Webhook 事件调用 Azure 自动化 Runbook - 失败,显示 "Cannot bind argument to parameter ' InputObject',因为它为空。”

performance - Powershell Get-ChildItem 进度问题

android - 如何通过 Intent 从自定义 Android 应用程序启动 Lync 客户端?