Удалить компьютер из домена c # и powershell - PullRequest
0 голосов
/ 07 апреля 2019

Я пытаюсь выполнить сценарий PowerShell из приложения ac # для удаления компьютера из AD.

Исключение составляет следующее:

Невозможно связаться с сервером.Это может быть связано с тем, что этот сервер не существует, он в данный момент не работает или на нем не запущены веб-службы Active Directory.

На сервере у меня запущены веб-службы активных каталогов, и когдаЯ запускаю скрипт прямо из PowerShell, он работает.Но когда я выполняю код через c # (что мне нужно сделать, потому что он будет вызываться через API), он завершается с указанной выше ошибкой.

PowerShell:

param(
    [Parameter(Mandatory=$true, Position=0)]
    [string][ValidateNotNullOrEmpty()]$vmName,

    [Parameter(Mandatory=$true, Position=1)]
    [System.Management.Automation.PSCredential]$Credential
)

Get-ADComputer -Identity $vmName | Remove-ADComputer -Credential $Credential

Код C #:

var serviceAccount = new PSCredential("saAccount", ConvertToSecureString("aaa"));
var file = File.ReadAllText(@"C:\GitRepo\Remove.ps1");

var webserverAdmin = new PSCredential("wedAdmin", ConvertToSecureString("xxx"));


var connectionInfo = new WSManConnectionInfo(new Uri($"http://mywebserver:5985/wsman"), 
                "http://schemas.microsoft.com/powershell/Microsoft.PowerShell",
                webserverAdmin);

var runspace = RunspaceFactory.CreateRunspace(connectionInfo);
runspace.Open();
var shell = PowerShell.Create(runspace);
shell.AddScript(file, true);

shell.AddParameter("vmName", computerName);
shell.AddParameter("Credential", serviceAccount);

shell.Invoke();

if (shell.HadErrors)
{
    Console.WriteLine(shell.Streams.Error[0]);
}
else
{
    Console.WriteLine("FInished no errors");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...