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 から正常に機能します。助言がありますか