无法在C#中运行PowerShell命令

时间:2019-07-09 20:14:20

标签: c# powershell

我一直在用C#编写一个程序,该程序为工作中的新映像PC设置IP / DNS /网关,并将计算机添加到域中。几乎所有东西都可以,但是我被卡在域联接部分。我无法使其与我的C#代码一起使用,但是此Powershell脚本的效果很好:

Add-Computer -NewName $ComputerName.ToUpper() -DomainName "MyDomain.com" -Credential $cred -OUPath $Target -ErrorAction Continue

因此,我一直在尝试使用System.Management.Automation在C#中运行powershell命令,但是我无法使其正常工作。有人对我的代码有任何建议/通知吗?

void JoinDomain(string computerName, string target)
{
    var password = new SecureString();
    Array.ForEach(passwordBox.Text.ToCharArray(), password.AppendChar);
    var cred = new PSCredential(usernameBox.Text, password);

    using (PowerShell PowerShellInstance = PowerShell.Create())
    {
        PowerShellInstance.AddCommand("Add-Computer");

        PowerShellInstance.AddParameter("NewName", computerName);
        PowerShellInstance.AddParameter("DomainName", "MyDomain.com");
        PowerShellInstance.AddParameter("Credential", cred);
        PowerShellInstance.AddParameter("OUPath", target);
        PowerShellInstance.AddParameter("ErrorAction", "Continue");

        PowerShellInstance.Invoke();
    }
}

理想情况下,我希望不使用Powershell,但我找不到任何仅从计算机名称(例如PC100)和OU路径添加计算机的示例。

谢谢!

0 个答案:

没有答案