1

私はこのコードを持っています:

private ManagementScope CreateNewManagementScope(string server)
    {
        string serverString = "\\\\" + server + "\\root\\cimv2";

        ConnectionOptions options = new ConnectionOptions();
        options.Username = "name";
        options.Password = "password";

        ManagementScope scope = new ManagementScope(serverString, options);
        scope.Connect();

        return scope;
    }

そのコードを使用して、WMI を介して別の PC にリモート アクセスしようとしています。パスワードとユーザー名は 100% 正しいです (私は wmic /node:pc /username:name /password:pwd でテストしましたが、これは機能しました) が、アクセスが拒否されます

(HRESULT からの例外: 0x80070005 (E_ACCESSDENIED))

私が間違っていることはありますか?私は Win 7/C#/.NET 4.0 を使用しています。

4

3 に答える 3

0

Services+ (Advanced Windows Service Manager)のコードに、WMI Win32_Service について必要なものがすべて含まれていることを確認します。

トラブルシューティングまたはデバッグするには:

  1. コンピューターとサーバーが同じドメインにあることを確認してください
  2. コード資格情報を削除し、EXE をコードから作成してから、その EXE を特権ユーザーとして実行します。
  3. Services+ (前述) または Services.msc を使用してサーバーに接続します。
  4. リモート サーバーで RPC サービスが実行されていることを確認します。
  5. サーバー上のファイアウォールを一時的にオフにしてみてください。
于 2014-12-30T11:15:07.657 に答える