• 締切済み

ASP上でFileSystemObjectのDeleteFileがエラー

こんにちは サーバー上のファイルが削除したいのですがうまくいきません 以下ソースになります Const SERVER_DIRECTORY = "\\TestServ\Inetpub\folderA" Set objFso = CreateObject("Scripting.FileSystemObject") objFso.DeleteFile SERVER_DIRECTORY & "\test.txt" [結果] Microsoft VBScript 実行時エラー'800a0046' 書き込みできません。 エラーコード調べてみると権限の問題のようですが とりあえず以下は試した結果です。 (1)他のフォルダのファイルは削除可能 (2)目的のファイルに新規ファイル作成可能 (3)(2)で作成したファイルに書き込み可能 問題を切り分けるために最小の構成にしても エラーがでるので、objFso.DeleteFileの部分が問題であることは間違いないと思うのですが・・・ 単純な問題かもしれませんがほんとに権限の問題なのかかなり悩んでいます(そうであるならお客さんに設定をお願いすることになるので) 長文すみません、わかる方いたらお願いします。

みんなの回答

回答No.1

とりあえず、そのフォルダに対する匿名ユーザーの権限を調べてみてはどうでしょう。 名前は IUSR_コンピュータ名 だったような気がします。

taratine
質問者

お礼

回答ありがとうございます。 対象のファイルには匿名ユーザーのアクセス権限があたえられていませんでした。 テストデータ用にエクスプローラから右クリック→新規作成でファイルを作成した為権限が与えられていないのが原因でした。 (普段はユーザーがボタン押下→ASPのCreateTextFileで作成) 権限を追加して試みると削除できました。 勉強になりました。 ありがとうございました。

関連するQ&A

  • FileSystemObject エラー

    お世話になります。 閲覧ありがとうございます。 質問ですが、WSHの'Scripting.FileSystemObjectで質問があります。 VBSにて'Scripting.FileSystemObject'を利用するスクリプトを自端末上に作成しました。 しかし、『CreateObject("Scripting.FileSystemObject") 』にてエラーが発生してしまします。 エラー内容は以下のとおりです。 エラー: ActiveX コンポーネントはオブジェクトを作成できません。: 'Scripting.FileSystemObject' コード: 800A01AD ソース: Microsoft VBScript 実行時エラー 他のPCでは同じVBSで稼働しておりますので、構文等の間違いはないかとおもいます。 エラーが発生しているPCも稼働しているPCもすべてWindows XP sp2です。 以下を試みましたが、改善しませんでした。 (1)IEの[プロパティ]→[セキュリティ]→[レベルのカスタマイズ]→[スクリプトを実行しても安全とマークされていない ActiveX コントロールの 初期化とスクリプトの実行] を有効 ※インターネット & ローカルイントラネットの両方とも↑にしました。 (ローカルディスク上にVBSは作成してあります。) (2)Windows Script 5.6の再インストール ソースは以下のようになっております。 お手数をお掛け致しますが、よろしくお願い致します。 Option Explicit Const HKEY_LOCAL_MACHINE = &H80000002 Dim objTextFile Dim objFSO '保存するためのファイルオブジェクト Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTextFile = objFSO.CreateTextFile("C:\Test.txt", True) objTextFile.WriteLine "Test!!" msgbox "処理が終了しました。"

  • 「Scripting.FileSystemObject」について

    ただいまASPでWebシステムの開発をしております。 「Scripting.FileSystemObject」で質問をさせてください。 ASPの処理の中でファイルの削除をやりたかったので「Scripting.FileSystemObject」でファイル操作をしようと思いました。 記述は以下の通りです。 Dim objFileDelete Set objFileDelete = CreateObject("Scripting.FileSystemObject") objFileDelete.DeleteFile 消したいファイルのパス & ファイル名 ,True Set objFileDelete = Nothing 実行後にファイルを確認しましたが、消されていませんでした。 実行時にエラーにもなりませんでした。 調べてみると「Scripting.FileSystemObject」オブジェクトが作成されていないようなのです。 疑問に思ったことですが、そもそも「Scripting.FileSystemObject」はなにに入っている(表現がおかしいかもしれません)ものなのでしょうか? Windowsのシステムなのでしょうか? それともIISに依存するものでしょうか? 御存知の方がおりましたら教えてください。 お願いします。

  • 他PCへのファイルコピー

    お世話になります。 Webからファイルアップロードしたいのですが、 ファイルサーバーがWebサーバーとは別になっています。 IISで仮想ディレクトリには設定したのですが、 うまくアップできません。 で、ローカルディレクトリにファイルをアップしてから ファイルコピーしようとしたのですが、 やはりできません。 Set objFSO = Server.CreateObject("Scripting.FileSystemObject") objFSO.CopyFile "C:\test\aaa.txt", "\\server1\c:\temp\aaa.txt",True マシンserver1のtempフォルダをネットワークドライブZにしてみて objFSO.CopyFile "C:\test\aaa.txt", "z:\temp\aaa.txt",True としてみてもダメでした。 どうすればアップできるでしょうか? なにか権限の問題でもあるのでしょうか?

  • 変数で新しいフォルダを作成する方法

    aspでpostされた際に、レコードID(RecID)を名前としたフォルダを 作成したいのですが、下記のように記述しても作成しません。 RecID = 1001 Dim objFSO Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.CreateFolder "c:\Inetpub\wwwroot\testdir\files\" & RecID 動的なフォルダの作成はどのようにしたら実現できますでしょうか。 それとも、そもそも不可能なのでしょうか?よろしくお願いします。

  • OpenTextFile で書き込みできません。

    dim ObjFSO,ObjTS 'オブジェクトを作成します。 Set ObjFSO = Server.CreateObject("Scripting.FileSystemObject") 'ファイルを開きます。 Set ObjTS = ObjFSO.OpenTextFile(filename,1,false) filenameにはC:\Documents and Settings\○○○\デスクトップ\test.csvが入っています。 サーバーのパスにtest.csvを持っていくと問題なく動作しますが、それ以外デスクトップからだと「書き込みできません。」とエラーメッセージができません。 どうしたらいいでしょうか? よろしくお願い致します。

  • FileSystemObject Win2008Server

    FileSystemObject Win2008Server 今までのWin2003ServerをWindows2008サーバーに更新しました。 Accessデータベース関係は今まで通り処理出来るのですが FileSystemObjectを使ったTextファイルからの読み込みや加工が 出来なくなりました。 VBScriptで社内DBを稼働させています。 サーバーや設定の事はあまり詳しくないのですが 何をチェックすればいいのか、ご指導お願いします。 (1)これはエラーになりません Set connectObj = Server.CreateObject("ADODB.Connection") ConnectObj.Open "xxx" 以下Accessの読み書き (2)この実行でエラーになります。 Set fso = Server.CreateObject("Scripting.FileSystemObject") set tso = fso.OpenTextFile(fp,1) この実行でエラーになります。 以下テキストファイルの処理 お手数ですが宜しくお願いします。

  • [asp/vbs]FileExistsのパスの指定方法について教えて下

    [asp/vbs]FileExistsのパスの指定方法について教えて下さい。 下記のような記述をした場合、インターネット上にファイルは存在しているのに 「無し」と判断されてしまいます。("ファイルがありません"と表示される) 表示されるという事はasp自体は動いているのでしょうが、肝心のパスの設定が わからない状態です。 <%@ Language=VBScript %> -------中略------- <% Set objFso = Server.CreateObject("Scripting.FileSystemObject") If objFso.FileExists("image/test.jpg") Then Response.Write "ファイルが存在します" End If Response.Write "ファイルがありません" %> このaspファイルが置かれているディレクトリ上にtest.jpgを置き、 If objFso.FileExists("test.jpg") Then と記述しても、やはり"ファイルがありません"と表示されてしまいます…。 また、フルパス(http://www~~test.jpg)と表示しても駄目でした。 おそらく根本的な問題だとは思うのですが、 どのように表記したら良いか、教えて頂けると助かります。

  • VB6.0 CreateObject以外のファイルI/O

    以前CreateObject("Scripting.FileSystemObject")を使用してファイルを読込む方法、一行ずつ書込む方法を教えていただいたのですが。 環境によってはウイルスチェックに引っかかってしまうようで、別な手段を取らなければならなくなりました。 読込み: Set objFso = CreateObject("Scripting.FileSystemObject") Set objTxtSt = objFso.OpenTextFile(strFilePass, 1) strData = CStr(objTxtSt.ReadAll()) 書込み: Set objFso = CreateObject("Scripting.FileSystemObject") Set objTxtSt = objFso.OpenTextFile(strFilePass, 2, False) Call objTxtSt.WriteLine(strData) 現在の処理は以上です。 上記と同じ処理をCreateObjectを使用せずに作成するにはどのようにすればよろしいでしょうか。

  • Jスクリプトではどうなりますか

    クッキーと最近使用したファイルを削除するスクリプトを書いてます。 VBSでは '------------------------------------ dim Fs Set Fs = WScript.CreateObject("Scripting.FileSystemObject") '最近使ったファイルを削除 Fs.DeleteFile "C:\WINDOWS\Recent\*.*" 'クッキーを削除 On Error Resume Next Fs.DeleteFile "C:\WINDOWS\Cookies\*.txt" msgbox "削除しました。" '------------------------------------ となりますがこれをjスクリプトで書くとどうなりますでしょうか?   

  • vbsスクリプトについて

    いつもありがとうございます。 実行するVBSファイルのカレントディレクトリを取得して、同じディレクトリにAフォルダがなければ Aフォルダを作成するといった下記処理を考えております。 Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FolderExists(Path) = True Then objFSO.DeleteFolder (Path) objFSO.CreateFolder (Path) Else objFSO.CreateFolder (Path) End If Pathの変数にAフォルダまでのフルパスを入れたいのですが 実現できるソースをアドバイスいただけませんでしょうか。 Path = objFSO.CreateFolder (".\A") でパスは取得できるのですが、フォルダの存在チェックの前にフォルダが作られるため だめでした。。 宜しくお願い致します。