Мне нужно создать систему смены домена и нужно выполнить этот код через C #, но я все перепробовал и не могу. Чтобы запустить сценарий в PowerShell, вы должны инициализировать его от имени администратора. В PowerShell работает без проблем.
Код в Power Shell:
$domain = "NameDomain"`enter code here`
$password = "pwd" | ConvertTo-SecureString -asPlainText -Force
$username = "$domain\User"
$credential = New-Object System.Management.Automation.PSCredential($username,$password)
Add-Computer -DomainName $domain -Credential $credential -Restart -Force
Код на C #;
var scriptfile = @"$domain = ""dominio""; $password = ""psw"" | ConvertTo-SecureString -asPlainText -Force; $username = ""domain\user""; $credential = New-Object System.Management.Automation.PSCredential($username,$password); Add-Computer -DomainName $domain -Credential $credential -Restart -Force";
Используемый метод:
private string RunScript(string script)
{
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
Pipeline pip = runspace.CreatePipeline();
pip.Commands.AddScript(script);
pip.Commands.Add("Out-String");
Collection<PSObject> results = pip.Invoke();
runspace.Close();
StringBuilder stringBuilder = new StringBuilder();
foreach (PSObject pSObject in results)
stringBuilder.AppendLine(pSObject.ToString());
return stringBuilder.ToString();
}