C# 哪个DLL包含Microsoft.Powershell.Command命名空间下的异常?

C# 哪个DLL包含Microsoft.Powershell.Command命名空间下的异常?,c#,powershell,C#,Powershell,我正在使用C#执行新的LocalUser cmdlet。如果用户已存在,此cmdlet将在ErrorStream中存储异常: using (PowerShell powerShellInstance = PowerShell.Create()) { powerShellInstance.AddCommand("New-LocalUser"); powerShellInstance.AddParameter("Name", username); powerShellInstanc

我正在使用C#执行新的LocalUser cmdlet。如果用户已存在,此cmdlet将在ErrorStream中存储异常:

using (PowerShell powerShellInstance = PowerShell.Create())
{
   powerShellInstance.AddCommand("New-LocalUser");
   powerShellInstance.AddParameter("Name", username);
   powerShellInstance.AddParameter("Password", password);

   PSDataCollection<PSObject> output = new PSDataCollection<PSObject>();
   output.DataAdded += OutputAdded;

   powerShellInstance.Invoke(null, output);

   if (powerShellInstance.Streams.Error.Count > 0)
   {
       throw powerShellInstance.Streams.Error[0].Exception;
   }
}
使用(PowerShell powerShellInstance=PowerShell.Create())
{
powerShellInstance.AddCommand(“新本地用户”);
powerShellInstance.AddParameter(“名称”,用户名);
powerShellInstance.AddParameter(“密码”,Password);
PSDataCollection输出=新的PSDataCollection();
output.DataAdded+=OutputAdded;
调用(null,输出);
如果(powerShellInstance.Streams.Error.Count>0)
{
抛出powerShellInstance.Streams。错误[0]。异常;
}
}

当我打印出上述异常类型时,它是Microsoft.Powershell.Commands.UserExistsException。但我似乎找不到包含此定义的DLL。有人知道吗?

首先,在PowerShell会话中运行
New LocalUser-?
,以确保已加载包含感兴趣类型的程序集

然后运行以下命令:

[Microsoft.Powershell.Commands.UserExistsException].Assembly.Location
在我的Windows 10计算机上,这将产生:

C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Microsoft.PowerShell.LocalAccounts\1.0.0.0\Microsoft.Powershell.LocalAccounts.dll

谢谢这是一个更优雅的解决方案。我只是在我的电脑上搜索那个DLL。但是,即使在我引用了DLL之后,它也不起作用。由于某些原因,Visual Studio无法看到:C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Microsoft.PowerShell.LocalAccounts。在任何情况下,只要我将DLL复制到另一个位置,它就会工作