0

I get a weird exception after solved SSL certificate issue. Please help! My code: PSCredential credential = new PSCredential("domain\administrator", securePwd);

    WSManConnectionInfo connectionInfo = new WSManConnectionInfo(new Uri("https://www.xxx.com/powershell"), "http://schemas.microsoft.com/powershell/Microsoft.Exchange", credential);
    Runspace runspace = System.Management.Automation.Runspaces.RunspaceFactory.CreateRunspace(connectionInfo);
    connectionInfo.AuthenticationMechanism = AuthenticationMechanism.Basic;
    using (runspace)
    {
        Collection<PSObject> psObject = GetUserInformation(10, runspace);

    }

public Collection GetUserInformation(int count, Runspace runspace) { using (PowerShell powershell = PowerShell.Create()) {

        powershell.AddCommand("Get-Users");
        powershell.AddParameter("ResultSize", count);

        runspace.Open();//**error happens**

        powershell.Runspace = runspace;

        return powershell.Invoke();
    }
}

Error message: "Connecting to remote server failed with the following error message : The WinRM client cannot process the request. The WinRM client tried to use Negotiate authentication mechanism, but the destination computer (www.xxx.com:443) returned an 'access denied' error. Change the configuration to allow Negotiate authentication mechanism to be used or specify one of the authentication mechanisms supported by the server. To use Kerberos, specify the local computer name as the remote destination. Also verify that the client computer and the destination computer are joined to a domain. To use Basic, specify the local computer name as the remote destination, specify Basic authentication and provide user name and password."

I use basic authentication, and provide username and credential, why it says "tried to use Negotiate authentication mechanism"?

4

3 に答える 3

3

まず、実行空間を作成する前に、connectionInfo.AuthenticationMechanism プロパティを設定してみてください。したがって、最初のコード スニペットの 2 行目と 3 行目の順序を入れ替えます。

それでも問題が解決しない場合は、PowerShell Web サイトで基本認証が有効になっていることを確認してください。

これを行うには、IIS マネージャー、サイト、既定の Web サイト、PowerShell に移動し、認証機能を選択して、基本認証を有効にする必要があります。

基本認証が認証機能ページのオプションでない場合は、サーバー マネージャーに移動してインストールする必要があります。Web サーバーの役割を選択し、ツリービューの [セキュリティ] ノードの下で [役割サービスの追加] を選択し、[基本認証] を選択します。

于 2011-07-27T16:38:50.300 に答える
1

このシナリオでは、サーバーで明示的に構成されていない限り、基本認証の使用は許可されていません...サーバー側で有効にするか、Kerberos/NTLMを使用できます...

詳細については、 http ://technet.microsoft.com/en-us/library/dd351136.aspxおよびhttp://technet.microsoft.com/en-us/library/dd347642.aspxを参照してください。

于 2011-07-26T23:15:48.433 に答える