我一直在用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路径添加计算机的示例。
谢谢!