- 締切済み
ASPからサーバー上のVBSファイルを引数付で実行したい
お世話になっております。 ASPで指定名称のフォルダを作成しアクセス権を割り当てる サイトを作成しております。 フォルダの作成は問題なく作成できましたが、アクセス権の指定がうまくいかず困っております。 アドバイスいただければ幸いです。 前提として作成したフォルダへのアクセス権割り当ては、MSで公開しているxcacls.vbsファイルを利用してます。 http://support.microsoft.com/kb/825751/ja このVBSファイルに先に作成したフォルダのネットワークパス・アクセス権を与えるユーザー名・与える権限レベルを引数として与えASPのサーバー上で実行し処理を完結しようと考えております。 ------------------スクリプト抜粋---------------------- Set WSHShell = CreateObject("WScript.Shell") 'xcacls.vbsを実行 'strPathNm = "xcacls.vbs \\fileServer\testfol /G Domain\User:M /f /t /e /q" Call WSHShell.Run(strPathNm, 0, false) -------------------------------------------------------- サーバー上でコマンドプロンプトから実行する限りは問題なく 処理されてます。 ASPサイトから実行した場合は特にエラーなど表示されず処理終了しますが、アクセス権の割り当てはされません。 また実行時にサーバー上で実行されたかタスクマネージャーにて確認してますが、起動された形跡がありません。 ちなみにスクリプトの問題かと思い、「strPathNm」の編集への代入を、メモ帳や電卓に変更したところ正常に起動しております。 ※xcacls.vbsはサーバー上でパス通してあります。 以上よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- LegaC2
- ベストアンサー率52% (224/428)
No.1です。 権限の件は、見当はずれみたいでしたね。 昨日は実行環境がありませんでしたが、今は実行環境があるので、自分の環境で試してみました。 そのままでは、権限は付与されませんでしたが、CScriptで実行するように変更したら、権限が変更されました。 以下にソースを記載しておきます。 <%Option Explicit%> <% Dim WSHShell Dim strPathNm Set WSHShell = CreateObject("WScript.Shell") 'xcacls.vbsを実行 strPathNm = "CScript ""C:\Program Files\XACLS\xcacls.vbs"" \\FileServer\testfol /G Domain\User:M /f /t /e /q" 'strPathNm = """C:\Program Files\XACLS\xcacls.vbs"" \\FileServer\testfol /G Domain\User:M /f /t /e /q" Call WSHShell.Run(strPathNm, 0, false) %> 私の場合は、パスを通していないので、フルパスで記載してあります。
- LegaC2
- ベストアンサー率52% (224/428)
見当違いの回答だったら、ごめんなさい。 (半分推測で回答します) IISの匿名ユーザは誰ですか? アクセス権を変更するぐらいですから、xcacls.vbsを実行するために、実行ユーザにもある程度の権限がいるのではないでしょうか? コマンドプロンプトで実行する場合は、Administrator権限があるので実行できるけど、ASPで実行する場合は、Administrator権限がないユーザで実行しているから実行できない、とか。
補足
ご回答ありがとうございます。 実行権限は多分あると思います。 イントラにあるサーバーで、かつ別処理でADへの操作を行う関係上 匿名ユーザーは無しにしてあります。 ちなみに実行権限はサーバーローカルのAdministrator権限 ドメインもAdministrator権限を持ってます。
お礼
お返事遅くなりまして申し訳ございません。 ご回答いただいた方法で弊社環境で試してみましたが、残念ながら実行できませんでした。 原因究明にいたっておりませんが、どうもソースには問題なく(CScriptの追加は必要でしたが)フォルダにACLを割り当てる権限に問題があるようです。 表面的には管理者権限にて実行しているので問題ないはずですが、xcacls.vbsを実行するときはサイトにアクセスした時の権限がそのまま継承されて無いように見受けられました。 これ以上の調査は難しい為ASP上からの連続処理は断念し、 後日バッチ処理でカバーする方法で問題回避したいと思います。 お手数おかけいたしました。