Проблема с запуском команды PowerShell в C # - PullRequest
0 голосов
/ 09 июля 2019

Я пишу программу на 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.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...