お世話になります。
フォルダ削除処理で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で結果が異なる場合があるのでしょうか?