Вы можете добавить команду TAKEOWN .
Попробуйте использовать пример, показанный здесь. Может быть, это я, но пример кода имеет больше смысла, чем предоставленные вами .vbs
.
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
Измените каталог strFile
и domain\everyone
по своему усмотрению .
Кроме того, я склонен думать, что команда Cacls не выполняется с правами администратора насквозь. .VBS
который я использую для повышения команд, файлов, сценариев и т.д. И включает в себя инкапсуляцию команды, которую вы хотите выполнить от имени администратора. Не забывайте, что он также выполняется тихо, но вы можете отключить эту опцию.
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.
Запусти эту команду как админ
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