none
フォルダ削除でVB6とVBSで結果が異なる RRS feed

  • 質問

  • お世話になります。
    フォルダ削除処理でVB6とVBSで結果が異なるケースに遭遇しました。

     

    [VB6]
    'プログラム名 folder_del.exe
    Sub Main()
        Dim fso As FileSystemObject
        Dim tempPath As String
        Set fso = CreateObject("Scripting.FileSystemObject")
        tempPath = "D:\test"
        If fso.FolderExists(tempPath) Then
            fso.DeleteFolder (tempPath)
        End If
        Set fso = Nothing
    End Sub


    [VBS]
    'プログラム名 folder_del.vbs
    Set objCommand = WScript.CreateObject("WScript.Shell")
    Set objExec = objCommand.Exec("folder_del.exe")
    Set objCommand = Nothing


    [環境]
    ・OSはWINDOWS-XP。
    ・Administratorsの権限を持つIDでログオン。
    ・Dドライブ直下にtestフォルダを作成。
    ・testフォルダ内にtest.txtファイルを作成(中身は任意)。
    ・testフォルダのユーザをEveryoneのみにする。
    ・Everyoneの権限を以下のようにする。
    ・許可は『読み取りと実行』、『フォルダの内容の一覧表示』、『読み取り』をチェックする。
    ・拒否は『書き込み』をチェックする。

     


    この状態で、folder_del.exeを実行すると必ず『実行時エラー'70'書き込みできません』になります(想定通り)。
    しかし、folder_del.vbsを実行すると、『実行時エラー'70'書き込みできません』になるケース(想定通り)とtestフォルダを削除してしまうケース(想定外)があるのです。
    ちなみに、テストマシン4台中2台が削除される。

     

    なぜ、folder_del.exeとfolder_del.vbsで結果が異なる場合があるのでしょうか?

    2007年5月17日 9:54

回答

  • お世話になります。

     

    その後、XP計8台でテストをした結果、ネットに繋がっていないマシン(3台)のみ発生することが分かりました。
    たぶん、何かのパッチが当たっていないのが原因だと推察します。

    2007年5月18日 6:36