- PR -

[ASP.NET]WSHを起動する方法

1
投稿者投稿内容
ぞの
会議室デビュー日: 2004/10/07
投稿数: 2
投稿日時: 2004-10-07 11:36
先月からC#.NET+ASP.NETの開発を始めました。初心者です。

現在C#とASP.NETを使ってWebアプリを作成中です。
その中でどうしても解決できない課題が出てきましたのでご助言いただきたく
投稿させていただきました。

実現したいことは、
「Web画面のボタンクリックイベントでクラスメソッドを呼び出し、
そのメソッドからWSHの起動を行う」
です。

具体的には、作成したWSHの起動メソッドに対して
バッチの起動コマンドとWSHのフルパス+ファイル名
を引数として渡し、バッチをキックしようとしています。
例:cmd.Execute("cscript" , @"C:\TEST\example.wsf");

Windows ApplicationのFormで試すと動くのですが、
Web Applicationだと、バッチが起動された形跡がありません。
また、特にエラーにもなりません。

何か環境設定が必要なのでしょうか?
どなたかWebからのWSH起動方法をご存知であれば、教えてください。

環境はOS:Windows2000、DB:Oracle9i、.NET Framework 1.1です。

よろしくお願いいたします。
ぞの
会議室デビュー日: 2004/10/07
投稿数: 2
投稿日時: 2004-10-07 11:49
【追記】

メソッドの中のソースを記述しておきます。

=================================

ProcessStartInfo info = new ProcessStartInfo();
// ここに1番目の引数(例では"cscript")が入ります。
info.FileName = Convert.ToString(parameters[0]);
// ここに2番目の引数(例では"C:\TEST\example.wsf")が入ります。
info.Arguments = Convert.ToString(parameters[1]);
info.CreateNoWindow = false;
info.ErrorDialog = false;
info.UseShellExecute = true;
info.WindowStyle = ProcessWindowStyle.Hidden;

Process proc = new Process();
proc.StartInfo = info;
proc.Start();
proc.WaitForExit();
proc.Close();

=================================

また、WSHからは*.VBSファイルの呼び出しと、ファイルのコピーや作成など
ファイル操作を行っています。

isidkawano
会議室デビュー日: 2004/01/06
投稿数: 1
投稿日時: 2005-08-30 12:18
ASPNETユーザをAdministrators権限をつければ動きますが、根本的な解決になっていない状況です。本件について、どなたかご存知の方がおられればご教授ください。

・ASPNETユーザで実行する際の、具体的な必要権限をご教授ください。
・できれば、WSHの実行ユーザを変更したい。
 ASPNETではなく、WSHUSERなどの特定ユーザで実行したい。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2005-09-08 16:50
Shell 関数のヘルプにこんなものが乗っていましたけど
Process.Start() も同じかなぁと思います。

セキュリティに関するメモ Shell 関数にはアンマネージ コード アクセス許可が必要です。これは、部分的に信頼されている状況でプログラムを実行するときに影響を及ぼすことがあります。詳細については、「SecurityPermission クラス」と「コード アクセス許可」を参照してください。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2005-09-08 20:38
引用:

具体的には、作成したWSHの起動メソッドに対して
バッチの起動コマンドとWSHのフルパス+ファイル名
を引数として渡し、バッチをキックしようとしています。
例:cmd.Execute("cscript" , @"C:TESTexample.wsf");

(略)

何か環境設定が必要なのでしょうか?



そうです。

cscript.exe ファイルのプロパティの「セキュリティ」ページの内容を確認してください。
デフォルトで、ASP.NET からの実行を拒否する設定になっています。

だからと言って、calc.exe や cmd.exe のセキュリティ設定を変更するのはセキュリティ管理上好ましくありません。
「(必要な)バッチを起動する」ためだけの、他に余分な権限を持たないアカウントを作成し、そのアカウントASP.NET アプリケーションを実行するのが正道です。


_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
1

スキルアップ/キャリアアップ(JOB@IT)