0

SYSTEM アカウントとして実行されている Windows サービスから PowerShell スクリプトを実行しています。権限を増やすために、後で LogonUser メソッドを使用してスレッド全体を偽装するユーザーをユーザーに選択させています。

これはネットワークドライブにアクセスできるように機能し、PowerShell で現在のユーザーを印刷しようとすると機能します。

しかし、うまくいかない場合があります:

一例として、ユーザーが Exchange スナップインを読み込んで次のコマンドレットを実行しようとしています: Get-MailboxPermission

その後、エラーが表示されます。「Get-MailboxPermission」という用語は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前のスペルを確認するか、パスが含まれている場合は、パスが正しいことを確認してから再試行してください。「Get-MailboxPermission」という用語は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前のスペルを確認するか、パスが含まれている場合は、パスが正しいことを確認してから再試行してください。

これはパーミッションの問題だと推測していますが、パーミッションを増やすために RunSpace などに変更する必要があるものは他にあるのでしょうか? 他のアイデアはありますか?

4

1 に答える 1

0

PowerShell のどのバージョンですか?

Exchange スナップインが追加されていないようです。次の前に、このコマンドを実行してみてください。

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin

または、コードを介して、実行空間の初期化で次のコードを使用します。

RunspaceConfiguration rsConfig = RunspaceConfiguration.Create();
PSSnapInException snapInException = null;
PSSnapInInfo info = rsConfig.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.Admin", out snapInException);
Runspace myRunSpace = RunspaceFactory.CreateRunspace(rsConfig);
myRunSpace.Open(rsConfig);

追加情報については、この記事をお読みください: http://msdn.microsoft.com/en-us/library/exchange/bb332449(v=exchg.80).aspx

于 2012-10-05T14:19:46.900 に答える