コンピューターからコンピューター上のvmにPowerShellコードを実行しようとしていますが、次のエラーが発生し続けます。
リモートサーバーへの接続が次のエラーメッセージで失敗しました:WinRMクライアントは要求を処理できません。認証スキームがKerberosと異なる場合、またはクライアントコンピューターがドメインに参加していない場合は、HTTPSトランスポートを使用するか、宛先マシンをTrustedHosts構成設定に追加する必要があります。 winrm.cmdを使用してTrustedHostsを構成します。 TrustedHostsリストのコンピューターは認証されない可能性があることに注意してください。次のコマンドを実行すると、詳細情報を取得できます:winrm helpconfig。詳細については、about_Remote_Troubleshootingヘルプトピックを参照してください。
私のコード:
string runasUsername = @"\aaa";
string runasPassword = "aaa";
SecureString ssRunasPassword = new SecureString();
foreach (char x in runasPassword)
ssRunasPassword.AppendChar(x);
PSCredential credentials = new PSCredential(runasUsername, ssRunasPassword);
var connInfo = new WSManConnectionInfo(new Uri("http://10.0.5.35/PowerShell"),
"http://schemas.Microsoft.com/powershell/Microsoft.Exchange",credentials);
connInfo.AuthenticationMechanism = AuthenticationMechanism.Basic;
var runspace = RunspaceFactory.CreateRunspace(connInfo);
var domainName = "domainName.COM";
var password = "ActiveDirectoryPassword1234";
var ssPassword = new SecureString();
foreach (char c in password)
ssPassword.AppendChar(c);
var command = new Command("New-Mailbox");
command.Parameters.Add("FirstName", firstName);
command.Parameters.Add("LastName", lastName);
command.Parameters.Add("Password", ssPassword);
command.Parameters.Add("ResetPasswordOnNextLogon", false);
command.Parameters.Add("OrganizationalUnit", "NeumontStudents");
runspace.Open(); <--//error here
var pipeline = runspace.CreatePipeline();
pipeline.Commands.Add(command);
var results = pipeline.Invoke();
runspace.Dispose();
何が足りないのですか?
クライアントとリモートマシンが同じドメイン上でない場合は、次の2つのオプションのいずれかがあります。
WinRMを構成 HTTPSを使用するには、両方のマシンでPowerShellコンソール管理者としてを開き、次のコマンドを実行します。
winrm quickconfig -transport:https
ファイアウォールでポート5986を開きます。
netsh firewall add portopening TCP 5986 "WinRM over HTTPS"
または、次を実行して、リモートマシンを信頼できるホストとして追加することもできますクライアント上
winrm set winrm/config/client @{TrustedHosts="10.0.5.35"}
両方のマシンでwinrmを有効にしましたか?実行してみてくださいwinrm quickconfig
各マシンで、リモート接続が有効になっていることを確認します。