从C#代码触发PowerShell中模拟用户

从C#代码触发PowerShell中模拟用户,c#,powershell,impersonation,C#,Powershell,Impersonation,我正在使用c#调用powershell脚本,该脚本中包含应作为特定用户运行的内容 我有一个模拟完成逻辑的C#实现,根据 我的实现代码有问题,如下所示: PSInvocationSettings settings = new PSInvocationSettings(); settings.FlowImpersonationPolicy = true; //settings.ErrorActionPreference = ActionPreference.Stop; IEnumerable inp

我正在使用c#调用powershell脚本,该脚本中包含应作为特定用户运行的内容

  • 我有一个模拟完成逻辑的C#实现,根据

  • 我的实现代码有问题,如下所示:

    PSInvocationSettings settings = new PSInvocationSettings();
    settings.FlowImpersonationPolicy = true;
    //settings.ErrorActionPreference = ActionPreference.Stop;
    IEnumerable input = null;
    resultsfromps = ps.Invoke<PSObject>(input, settings);
    
    PSInvocationSettings设置=新的PSInvocationSettings();
    settings.FlowImpersonationPolicy=true;
    //settings.ErrorActionPreference=ActionPreference.Stop;
    IEnumerable输入=null;
    resultsfromps=ps.Invoke(输入、设置);
    
  • 我使用msdn帮助为
    PSInvocationSettings
    flowimpersonationPolicy
    ps.Invoke
    执行了几行操作,但我不确定应该为
    输入变量设置什么值

    因此,代码排序是有效的,它正在创建一个powershell调用,但脚本出现在运行中,但用户名和密码为空


    感谢您的帮助

    不久前,我面临着一个类似的任务。这篇文章帮了我很大的忙:它或多或少是复制粘贴来让代码正常工作的。模拟并不能给你一个密码。你的PowerShell命令需要一个吗?Rob:那代码从C#的角度解决模拟问题。但这并没有转发powershell脚本所需的用户凭据。(我仍然看到它在应用程序帐户上运行,尽管我在模拟上下文块下调用(在撤消之前)Bmm60:Powershell脚本需要管理员权限,因为默认情况下,我的应用程序使用较低的用户运行脚本。如前所述,我使用了链接中的代码,但它不会模拟PS.invoke()中脚本的上下文。)那么,“但是用户名和密码都是空的”是什么意思呢?又一个坏掉的Microsoft支持链接…support.Microsoft.com/default.aspx?scid=kb;en us;Q306158#4