Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


vasya00, Вы уже создали подобную тему ("CMD_BAT - Не работает cacls..."), но почему-то уклонились от диалога.

Там речь шла о применении команды CACLS в Windows XP:
Цитата vasya00:
Пытаюсь выполнить:
Код: Выделить весь код
cacls "%USERPROFILE%\ђ*Ў®зЁ© бв®«" /T /E /P %USERNAME%:N
<...>
Но в ответ только:
Цитата:
C:\REG>cacls "C:\Documents and Settings\Kaktus\Рабочий стол" /T /E /P Kaktus:N
обработан каталог: C:\Documents and Settings\Kaktus\Рабочий стол
Отказано в доступе.
<...> »
Теперь выясняется, что в Windows XP эта команда "отлично работает":
Цитата vasya00:
Код: Выделить весь код
cacls "%USERPROFILE%\desktop" /T /E /P %USERNAME%:N
<...>
это отлично работает но только на XP, но а на windows 7, совершенно не работает.. »
Что же произошло, что она теперь заработала? Ещё мне просто интересно, как у Вас теперь загружается Рабочий стол, если "Отказано в доступе" (самому эксперементировать не хочется).

Ну, ладно, теперь о Windows 7.

Команда CACLS с параметрами /T /E /P %USERNAME%:N тоже работает, но не так, как в Windows XP. При открытии "обработанной" папки вместо привычных звука и окошка "Отказано в доступе" система предлагает продолжить: "У вас нет разрешений на доступ к этой папке. Чтобы получить постоянный доступ к этой папке, нажмите кнопку "Продолжить"."

Есть ещё в Windows 7 команда ICACLS с более широкими возможностями по сравнению с CACLS:
Код: Выделить весь код
ICACLS /?
.

Но результат выполнения команды, отзывающей указанные права доступа пользователя, например:
Код: Выделить весь код
ICACLS "%USERPROFILE%\Desktop" /deny %USERNAME%:F
, будет тот же: "Продолжить".

Чтобы предоставить указанные права доступа пользователю, нужно воспользлваться командой:
Код: Выделить весь код
ICACLS "%USERPROFILE%\Desktop" /grant:r %USERNAME%:F
.

В Windows 7 есть папки, при попытке отрытия которых происходит тот же "эффект", что и в Windows XP ("Бамс!" и "Отказано в доступе"). Самая, пожалуй, известная из них -- это папка System Volume Information. Так вот, чтобы не разбираться, у каких пользователей какие разрешения отзывать, а каким какие предоставлять, можно воспользоваться готовым набором параметров безопасности папки System Volume Information (сделать это при помощи созданного утилитой icacls.exe для этой папки и "подредактированного" для другой папки файла ACL также не удаётся).

Предлагаю вот какое решение:

1) сделать бэкап папки, к которой будут применены новые свойства (только папка со всеми её атрибутами без содержимого):
Код: Выделить весь код
ROBOCOPY "%USERPROFILE%\Desktop" "E:\Desktop" /COPYALL /DCOPY:T /XF *.* /XD *.*
;

2) для отзыва разрешений на доступ скопировать атрибуты папки System Volume Information на нужную папку (только свойства (!) -- больше ничего не копируется):
Код: Выделить весь код
ROBOCOPY "С:\System Volume Information" "%USERPROFILE%\Desktop" /MIR /COPY:S /XF *.* /XD *.*
;

3) для возвращения свойств (и, соответсвенно, получения доступа) скопировать атрибуты бэкапа:
Код: Выделить весь код
ROBOCOPY "E:\Desktop" "%USERPROFILE%\Desktop" /COPYALL /DCOPY:T /XF *.* /XD *.*
.

BAT-файлы или командную строку с данными командами запускать от имени администратора.

P.S. Проверял, но не на папке Рабочий стол.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:38, 25-05-2013 | #3