ASP.NET で MVC3 ベースのイントラネット アプリケーションを作成しています。アプリケーションは非常にシンプルです:
- 入力 (ユーザー名) を要求する
- 提供されたユーザー名を使用して PowerShell スクリプトを実行する (リモート データベースからデータをフェッチする)
- スクリプト出力を HTML ファイルにパイプする
- 作成された HTML ファイルにリダイレクトする。
セキュリティ上の理由から、指定されたユーザー グループのみがアクセスできる Windows 認証を使用しています。これはアプリケーション自体に最適です。指定されたユーザーがアクセスできないわけではなく、現在のユーザー名が隅に表示されます。
問題は PS スクリプト自体です。ユーザーの資格情報では機能しないようだったのでwhoami
、スクリプトに行を追加して結果を取得しました: iis apppool\asp.net v4.0
.
これは、PS スクリプトを実行するために使用しているコードです。
var ps = PowerShell.Create();
ps.Commands.AddScript(@"CommandHere");
ps.Invoke();
現在のユーザーの資格情報を使用して実行するにはどうすればよいですか?