2016-01-06 2 views
0

бегаю последующей сценарий с правами администратора:Почему я не могу удалить папку в «программных файлах»?

Dim FSO 
Set FSO = WScript.CreateObject("Scripting.FileSystemObject") 

Dim tempName, fullTempName, tempFolder 
tempName = FSO.GetTempName 
fullTempName = "c:\program files\" + tempName 
Set tempFolder = fso.CreateFolder(fullTempName) 
tempFolder.Attributes = 0 
tempFolder.Delete(True) 

я могу создать папку, но я не могу удалить его. Я получаю сообщение об ошибке:

Microsoft VBScript runtime error: Permission denied.

в переводе с немецкого:

Laufzeitfehler in Microsoft VBScript: Erlaubnis verweigert.

переустановку атрибутов не имеет никакого эффекта. Он продолжается 16 (только для чтения). Почему эта ошибка возникает и как ее разрешить?

+1

* «Разрешение отказано» * - кажется довольно понятным. – Lankymart

+0

@ Lankymart Нет, это не понятно, потому что я создал файл раньше. Если у меня нет разрешений, то createFolder также должен потерпеть неудачу. – Horcrux7

+0

Не сказал, что у вас нет прав, только потому, что вы можете создать, автоматически не означает, что вы также можете удалить. В сценарии говорится, что это проблема с разрешением, поэтому вероятный капюшон - это проблема с разрешением. Проверьте разрешения NTFS для этой папки. – Lankymart

ответ

0

Я нашел следующее обходное решение. Я заменяю строку «tempFolder.Delete» на:

Dim wshShell 
Set wshShell = CreateObject("WScript.Shell") 
wshShell.Run wshShell.ExpandEnvironmentStrings("%SystemRoot%\system32\cmd.exe /c rd """ & fullTempName & """"), 0 
Смежные вопросы