C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: クラシックASPからVBSが起動できない


(過去ログ 125 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■74806 / inTopicNo.1)  クラシックASPからVBSが起動できない
  
□投稿者/ イマジニア (1回)-(2015/01/29(Thu) 23:50:18)

分類:[ASP.NET (VB)] 

Windows 2012 R2 + IIS8.5 を利用しています。

クラシックASPのWebからサーバ内にある、vbsファイルを下記ソースでキックしようとしていますがうまくいきません。

Set objWS = Server.CreateObject("WScript.Shell")
Command="C:\Windows\SysWOW64\Cscript.exe D:\test.vbs"
'Command="cmd.exe /B D:\test.vbs"

intResult = objWS.Run(strCommand, 1, True)

以前 Windows 2003 + IIS6.0 で行った際は、「cmd.exe」と「cscript.exe」に権限追加すれば動作したため
今回も、
「C:\Windows\SysWOW64\cmd.exe」
「C:\Windows\SysWOW64\cscript.exe」
「C:\Windows\SysWOW64\wscript.exe」
「C:\Windows\System32\cmd.exe」
「C:\Windows\System32\cscript.exe」
「C:\Windows\System32\wscript.exe」

全てに「Everyone」でフルコントロールを追加してみましたが動作しませんでした。
試しに簡単なテキストファイルを出力するbatファイルを作成し、キックしてみたところ動作しました。

Command="D:\test.bat"

コマンドプロンプト経由でbatをキックした際は動作しませんでした

Command="cmd.exe /c D:\test.bat"

動作の確認はvbsをキックした際にテキストファイルが吐出されるため、それの有無で動作の確認をしています。
「cmd.exe」をキックできていないのだと思うのですが、他に権限を与えなくてはいけないような箇所はあるでしょうか。
引用返信 編集キー/
■74808 / inTopicNo.2)  Re[1]: クラシックASPからVBSが起動できない
□投稿者/ WebSurfer (484回)-(2015/01/30(Fri) 00:13:15)
No74806 (イマジニア さん) に返信

単なる想像なのでハズレかもしれませんが・・・

> Windows 2012 R2 + IIS8.5 を利用しています。

Windows Server 2008 以降で採用された Session 0 分離の問題ではないのでしょうか? 

何をされているのか理解できていませんが、例えばビデオドライバにアクセスするような
コードが入っていて(cmd.exe もウィンドウを表示するのでアクセスしている?)、それ
をサーバー(サーバーに限りませんが)の Session 0 上の Service で動かすと言うよう
なことをするとダメらしいです。

詳しくは以下のページからダウンロードできる Word 文書を見てください。

Impact of Session 0 Isolation on Services and Drivers in Windows
http://msdn.microsoft.com/ja-jp/library/dn653293(v=vs.85).aspx

ハズレでしたら失礼しました。
引用返信 編集キー/
■74814 / inTopicNo.3)  Re[2]: クラシックASPからVBSが起動できない
□投稿者/ イマジニア (2回)-(2015/01/30(Fri) 14:51:33)
No74808 (WebSurfer さん) に返信
> ■No74806 (イマジニア さん) に返信
>
> 単なる想像なのでハズレかもしれませんが・・・
>
>>Windows 2012 R2 + IIS8.5 を利用しています。
>
> Windows Server 2008 以降で採用された Session 0 分離の問題ではないのでしょうか? 
>
> 何をされているのか理解できていませんが、例えばビデオドライバにアクセスするような
> コードが入っていて(cmd.exe もウィンドウを表示するのでアクセスしている?)、それ
> をサーバー(サーバーに限りませんが)の Session 0 上の Service で動かすと言うよう
> なことをするとダメらしいです。
>
> 詳しくは以下のページからダウンロードできる Word 文書を見てください。
>
> Impact of Session 0 Isolation on Services and Drivers in Windows
> http://msdn.microsoft.com/ja-jp/library/dn653293(v=vs.85).aspx
>
> ハズレでしたら失礼しました。

色々と試してみましたが、解決しておりません。

・可能
バッチファイルを起動してログ出力
exeを起動してログ出力

最初に下記と記載していましたが、入力ミスでキックできていなかっただけで
コマンドプロンプト経由でバッチを起動できていました。

>コマンドプロンプト経由でbatをキックした際は動作しませんでした
>Command="cmd.exe /c D:\test.bat"

・不可能
バッチファイルからvbsを起動・動作
exeからvbsを起動・動作

確認してみたところ、バッチファイルからvbs、exeからvbs、直接vbsをキックしてみた際
タスクマネージャの方に「wscript.exe」のタスクが残っていましたので、正確に言うなら
vbsの起動はできているが何一つ処理が進んでいないという状況です。
もちろんサーバで起動した場合vbsは動作します。

> Windows Server 2008 以降で採用された Session 0 分離の問題ではないのでしょうか? 
こちらの方も確認してみたのですが、cmd.exeからwscript経由でvbsを起動になっているので
セッションが分けられてる?せいなのでしょうか。
その場合、クラシックASPからvbsの起動はできないということになってしまうのでしょうか。

回避策等の何か情報をお持ちの方お願い致します。



引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -