0

Web 管理モジュールを取得して、作成した ac# webservice からコマンドを実行する際に問題が発生しています。

 InitialSessionState init = InitialSessionState.CreateDefault();
    init.ImportPSModule(new[] { "WebAdministration" });
    Runspace r = RunspaceFactory.CreateRunspace(init);
    r.Open();
    System.Management.Automation.RunspaceInvoke invoker = new System.Management.Automation.RunspaceInvoke(r); 
    List<System.Management.Automation.PSObject> result  = invoker.Invoke("get-website").ToList();

これは、次のエラーAccess is denied で失敗します。(HRESULT からの例外: 0x80070005 (E_ACCESSDENIED))

get-website を get-module に置き換えると、1 つの結果 (WebAdministration は期待どおり) が返されますが、何があってもそれにアクセスできません。impersonateValidUser を使用して、VS を管理者として、ブラウザを管理者として起動しようとしました。また、wcfで次のコードを使用してみました

WindowsIdentity wi = new WindowsIdentity("administrator@domain.");
    WindowsImpersonationContext ctx = null;
    try
    {
        ctx = wi.Impersonate();
        List<System.Management.Automation.PSObject> result = invoker.Invoke("get-website").ToList();
 }

しかし、それもアクセスが拒否されて失敗します。

これらのテストはすべて、管理者として実行すると、powershell から正常に機能します。助言がありますか

4

0 に答える 0