Você pode adicionar um comando TAKEOWN .
Tente usar o exemplo visto aqui . Talvez seja eu, mas o código de exemplo faz mais sentido do que o .vbs
que você forneceu.
Set WshShell = CreateObject("WScript.Shell")
strFile = "c:\test_folder\test_file.txt"
setPerms = "%COMSPEC% /c echo Y| C:\windows\system32\cacls.exe " & Chr(34) & strFile & Chr(34) & " /G domain\everyone:F"
wscript.echo setPerms
WshShell.run setPerms
Altere o diretório strFile
e domain\everyone
de acordo com sua preferência.
Além disso, estou inclinado a pensar que o comando Cacls não está sendo executado com privilégios de administrador. Este é o script .VBS
que eu uso para elevar comandos, arquivos, scripts, etc ... e envolve encapsar o comando que você quer que seja executado como Admin. Lembre-se também executa silenciosamente, mas você pode tirar essa opção.
bElevate = False
if WScript.Arguments.Count > 0 Then If WScript.Arguments(WScript.Arguments.Count-1) <> "|" then bElevate = True
if bElevate Or WScript.Arguments.Count = 0 Then ElevateUAC
REM run the following script with admin privilages. start point.
EXECUTE ESTE COMANDO COMO ADMINISTRADOR
REM the above script will be run with admin privilages. end point.
Sub ElevateUAC
sParms = " |"
If WScript.Arguments.Count > 0 Then
For i = WScript.Arguments.Count-1 To 0 Step -1
sParms = " " & WScript.Arguments(i) & sParms
Next
End If
Set oShell = CreateObject("Shell.Application")
oShell.ShellExecute "wscript.exe", WScript.ScriptFullName & sParms, , "runas", 1
WScript.Quit
End Sub