2 つの主な処理を行う VBScript ファイル内から .NET (3.5) コマンド ライン プログラムを実行しようとしています。
- スクリプトがホストされているサーバーと同じドメインにある Active Directory に接続して、属性値を取得します。ユーザー名である最初のコマンドライン引数を使用して AD を検索します。
- 上記の属性値と 2 番目のコマンド ライン引数を使用して DTO を作成し、それを WCF サービス呼び出しで使用します。
アプリケーションを明示的に実行すると、すべてが機能します。Active Directory がアクセスされ、属性が取得され、WCF サービスが呼び出されて正しい結果が返されます (データベースを参照して確認)。
(編集:申し訳ありませんが、実際の問題が何であるかを忘れていました。)
スクリプトを実行すると、.NET コード (MyProgram アプリ) で Active Directory にアクセスできないように見えます。
VBScript コード:
Dim objResult
Set objShell = WScript.CreateObject("WScript.Shell")
objResult = objShell.Run("MyProgram " & strUsername & " 0", 1, True)
WScript.Shell オブジェクトには、ファイルに対する特別なアクセス許可が必要ですか? それらを確認しましたが、実行権限があります。通常、.Run() メソッドに渡す 2 番目の引数は 6 ですが、デバッグ用に 1 にしたかったのです。
VBScript でプログラムを実行する別の方法はありますか?