C#在不同的凭证下运行一段代码

C#在不同的凭证下运行一段代码,c#,credentials,C#,Credentials,我能够以不同的用户身份执行一些代码。 现在,我正试图以具有管理员权限的用户身份执行一段代码,但出现了一个缺少文件的错误。代码如下: using (new Impersonator("domainAdmin", "DOMAIN", "myStup1dPa$$w0rd")) { GetXAApplicationByName apps = new GetXAApplicationByName(); apps.BrowserName = new string[] { "*" };

我能够以不同的用户身份执行一些代码。 现在,我正试图以具有管理员权限的用户身份执行一段代码,但出现了一个缺少文件的错误。代码如下:

using (new Impersonator("domainAdmin", "DOMAIN", "myStup1dPa$$w0rd"))
{
    GetXAApplicationByName apps = new GetXAApplicationByName();
    apps.BrowserName = new string[] { "*" };
    IEnumerable<XAApplication> result = CitrixRunspaceFactory.DefaultRunspace.ExecuteCommand(apps);
    // other code...
}
使用(新的模拟程序(“域管理员”、“域”、“myStup1dPa$$w0rd”))
{
GetXAApplicationByName apps=新的GetXAApplicationByName();
apps.BrowserName=新字符串[]{“*”};
IEnumerable结果=Citrix RunspaceFactory.DefaultRunspace.ExecuteCommand(应用程序);
//其他代码。。。
}
错误在最后报告的行抛出,该行以
IEnumerable
开头,是:

未处理FileNotFoundException C:\Windows\assembly\GAC\U MSIL\System.Management.Automation\1.0.0\UU 31bf3856ad364e35\System.Management.Automation.dll

我不报告
Impersonator
类的代码,基本模式是在链接问题上报告的(它在其他应用程序中也起作用)


我遗漏了什么吗?

看起来模拟没有问题,但您的代码试图加载GAC中不存在的assembly System.Management.Automation.dll,您能否尝试在GAC中注册此程序集并重试。

此链接是否有帮助:?问题似乎类似,但是,我正在模拟的用户已经安装了本地管理员Windows Powershell?是的(版本2)堆栈跟踪是什么?它已经在GAC中注册,并且在不模拟的情况下运行它可以让您捕获异常并查看完整的错误消息(包括内部异常)使用exception.ToString()并查看是否能够获取任何信息