Microsoft.Management.Infrastructure 네임 스페이스를 사용하여 원격 컴퓨터에 연결하여 WMI 정보를 가져와 작동합니다. 그러나 비 도메인 PC에 연결하려고하면 작동하지 않습니다. 누구든지 내가 뭘 잘못하고 있는지 정확히 지적 해 줄 수 있나. 내가 로컬 컴퓨터에 대한 도메인 및 사용자 이름 PARAMATERS으로 취할 것을 확실하지 않다WMI에 연결 도메인이 아닌 PC에 C#을 사용하여 원격으로 작동하지 않음
string computer = "Computer_B";
string domain = "WORKGROUP";
string username = ".\\LocalAdminUserName";
string plaintextpassword;
Console.WriteLine("Enter password:");
plaintextpassword = Console.ReadLine();
SecureString securepassword = new SecureString();
foreach (char c in plaintextpassword)
{
securepassword.AppendChar(c);
}
CimCredential Credentials = new
CimCredential(PasswordAuthenticationMechanism.Default, domain,
username,securepassword);
WSManSessionOptions SessionOptions = new WSManSessionOptions();
SessionOptions.AddDestinationCredentials(Credentials);
CimSession Session = CimSession.Create(computer, SessionOptions);
var allVolumes = Session.QueryInstances(@"root\cimv2", "WQL", "SELECT * FROM Win32_LogicalDisk");
// Loop through all volumes
foreach (CimInstance oneVolume in allVolumes)
{
Console.Writeline(oneVolume.CimInstanceProperties["SystemName"].Value.ToString());
}
: 다음은 코드입니다. 이미 수행 한/다음 tryed : 원격 로컬 컴퓨터에
실행 WinRM이의은 QuickConfig을 나는 Kerberos를 읽고
사용 PasswordAuthenticationMechanism.Negotiate 원인 도메인 사용자 및 암호
만
컴퓨터를 추가했습니다. winrm config를 사용하여 로컬 컴퓨터의 TrustedHosts에 코드를 실행했습니다. 또한 TrustedHosts에 *를 추가하려고 시도했습니다.
username = "computer_B \ LocalAdminUserName"에 사용됩니다. 나는 도메인 = ""으로도 시도했습니다
작품
내가 뭘 잘못하고 있는거야?
계속 오류가 발생합니다. WinRM에서 요청을 처리 할 수 없습니다. 협상 인증을 사용하는 동안 오류 코드 0x8009030e가있는 다음 오류가 발생했습니다. 지정한 로그온 세션이 없습니다. 이미 해지되었을 수 있습니다.
제공된 자격 증명이 대상 서버에서 유효하지 않거나 서버 ID를 확인할 수없는 경우에 발생할 수 있습니다. 서버 ID를 신뢰하는 경우 TrustedHosts 목록에 서버 이름을 추가 한 다음 요청을 다시 시도하십시오. winrm.cmd를 사용하여 TrustedHosts 목록을 보거나 편집합니다. TrustedHosts 목록에있는 컴퓨터는 인증되지 않을 수 있습니다. TrustedHosts 목록을 편집하는 방법에 대한 자세한 내용은 winrm help config 명령을 실행하십시오.