У меня есть сценарий, который я использовал в другой Windows 2008, чтобы удалить резервную копию конфигураций IIS7 и создать новую:
SET DEST=C:\Backup\Web\IIS7
SET BACKUPNAME=IIS7-CONFIGS
%windir%\system32\inetsrv\appcmd.exe delete backup "%BACKUPNAME%"
%windir%\system32\inetsrv\appcmd.exe add backup "%BACKUPNAME%"
robocopy %windir%\system32\inetsrv\backup "%DEST%" /MIR /R:6 /W:10 /ZB
Но на новом сервере Windows 2008 я получаю отказ в доступе при удалении:
ERROR ( hresult:80070005, message:Command execution failed.
Access is denied.
)
У меня отключен UAC, и я практически скопировал все настройки со старого сервера (включая роль пользователя как администратора). Что мне не хватает?
У меня была аналогичная проблема
%systemroot%\system32\inetsrv\APPCMD.EXE migrate config "Default Web Site/MyWebApp"
Я получал 80070005 Доступ запрещен.
Я узнал, что проблема связана с тем, что мой web.config доступен только для чтения (поскольку я использовал систему управления исходным кодом, которая загружала файлы только для чтения, не проверенные разработчиками).
Удаление атрибута только для чтения из web.config решило проблему.
Я полагаю, вам нужно удалить атрибут только для чтения из некоторого файла конфигурации, который должен быть затронут вышеуказанными командами.
Я бы начал с запуска Process Monitor и посмотрел, есть ли ЗАПРЕЩЕННЫЙ ДОСТУП. Затем я смотрел в Process Monitor, для какой учетной записи пользователя произошел ЗАПРЕЩЕННЫЙ ДОСТУП, и давал необходимое разрешение.
+1 за очень красивый сценарий и хорошее использование команды robocopy.