Я пишу программу на C #, которая устанавливает IP / DNS / шлюз для вновь созданных компьютеров в процессе работы, а также добавляет компьютер в домен. Почти все работает, но я застрял на части присоединения к домену. Я не смог заставить его работать с моим кодом на c #, но этот скрипт powershell отлично работает:
Add-Computer -NewName $ComputerName.ToUpper() -DomainName "MyDomain.com" -Credential $cred -OUPath $Target -ErrorAction Continue
Итак, я пытался запустить команду powershell в C # с помощью System.Management.Automation, но не могу заставить ее работать. Есть ли у кого-нибудь совет / замечать что-то не так в моем коде?
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.
Спасибо!