PowerShell에서 WinRM을 사용하여 원격 서버에 연결하지 못했습니다.
컴퓨터에서 vm으로 전원 셸 코드를 실행하려고 하는데 다음 오류가 계속 발생합니다.
원격 서버에 연결하지 못했습니다. WinRM 클라이언트에서 요청을 처리할 수 없습니다.인증 체계가 Kerberos와 다르거나 클라이언트 컴퓨터가 도메인에 가입되어 있지 않은 경우 HTTPS 전송을 사용하거나 대상 컴퓨터를 신뢰할 수 있는 컴퓨터에 추가해야 합니다.호스트 구성 설정.winrm.cmd를 사용하여 신뢰할 수 있는 구성호스트. 신뢰할 수 있는 컴퓨터호스트 목록이 인증되지 않았을 수 있습니다.winrm help config 명령을 실행하면 자세한 정보를 얻을 수 있습니다.자세한 내용은 about_Remote_를 참조하십시오.문제 해결 도움말 항목.
내 코드:
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();
제가 무엇을 빠뜨리고 있나요?
클라이언트와 원격 시스템이 동일한 도메인에 있지 않은 경우 다음 두 가지 옵션 중 하나를 사용할 수 있습니다.
- HTTPS를 전송 프로토콜로 사용
- 클라이언트의 신뢰할 수 있는 호스트 목록에 원격 시스템 추가
HTTPS를 사용하도록 WinRM을 구성하려면 두 시스템 모두에서 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"}
새 고객에게 이를 설정하려면 다음 작업을 수행해야 했습니다.
관리자 권한으로 PowerShell 실행
다음 명령을 실행하고 프롬프트에 yes라고 대답하여 WinRM을 활성화합니다.
winrm quickconfig신뢰할 수 있는 호스트에 호스트 추가(위치)
1.2.3.4호스트의 IP 주소임):Set-Item wsman:localhost\client\trustedhosts -value 1.2.3.4
두 기계 모두에서 winrm을 활성화했습니까?달리기를 해 보다winrm quickconfig원격 연결을 사용하도록 설정할 수 있습니다.
언급URL : https://stackoverflow.com/questions/16010091/connecting-to-remote-server-failed-using-winrm-from-powershell
'programing' 카테고리의 다른 글
| jquery - 매우 큰 테이블에서 모든 행을 제거하는 가장 빠른 방법 (0) | 2023.08.26 |
|---|---|
| unix_module func를 사용하여 업데이트 시 이벤트를 추가할 수 없습니다. (0) | 2023.08.26 |
| Angular 2에서 버튼 비활성화 (0) | 2023.08.26 |
| 오버플로 스크롤 CSS가 div에서 작동하지 않습니다. (0) | 2023.08.26 |
| Angular2 - Http POST 요청 매개 변수 (0) | 2023.08.26 |