PDA

Показать полную графическую версию : Автоматизация создания папок и раздача прав доступа NTFS


Страниц : 1 [2]

Friek
09-11-2014, 20:47
icacls тоже как icacls.exe писать?

Iska
09-11-2014, 21:23
Friek, расширение файла желательно указывать всегда. Любые умолчания — зло.

Friek
19-01-2015, 18:36
Долго не работал над скриптом, был в командировке.
Сегодня посидел над ним, и понял, что долго допускал очень важную ошибку с правами доступа.

icacls.exe . /inheritance:r /T /C /L /Q
icacls/exe . /grant Администраторы:(OI)(CI)(M,RX,D,WDAC,WO) Пользователи:(OI)(CI)RX Все:(OI)(CI)RX /T /C /L /Q

обязательно надо поменять местами команды:

icacls.exe . /grant Администраторы:(OI)(CI)(M,RX,D,WDAC,WO) Пользователи:(OI)(CI)RX Все:(OI)(CI)RX /T /C /L /Q
icacls.exe . /inheritance:r /T /C /L /Q

иначе я сначала сам себе запрещаю доступ к папке (папкам и файлам), убирая наследие прав от корневой папки, а потом пытаюсь подставить свои.
Вторая ошибка, это рекурсивное подставление прав: /T - операция выполняется для всех соответствующих файлов и каталогов, расположенных в указанных в имени каталогах.
Этот ключ, как оказалось, мне совсем не нужен, убрав его я смог сгруппировать раздачу NTFS прав к папкам и файлам в отдельный блок скрипта. Возможно это встанет боком, но вроде пока нормально.
В итоге получается, что надо вот так:

icacls.exe . /grant Администраторы:(OI)(CI)(M,RX,D,WDAC,WO) Пользователи:(OI)(CI)RX Все:(OI)(CI)RX /T /C /L /Q
icacls.exe . /inheritance:r /C /L /Q

В некоторых строках, где явно нету символьных ссылок, и связей, я еще убрал ключ /L
В итоге у меня пока есть вот такая версия 3

@echo off
:start
::командный файл будет запущен в каталоге, где лежит, даже от имени администратора
cd /d "%~dp0"

::создание начальных переменных
::SSID моего пользователя
set Sid1=мой SID
::имя моего пользователя, имя будующей папки
set Name1=имя моего пользователя
::переменная для работы непосредственно с папкой имя которой указано в переменной Name1
set FolderName1=%CD%\Users\%Name1%
::переменная для работы непосредственно с публичной папкой
set FolderPublic=%CD%\Users\Public

::создание папок
mkdir "%CD%\Users"
for %%i in ("Documents" "Downloads" "Favorites" "Music" "Pictures" "Videos") do (
mkdir "%CD%\%%~i"
)
mkdir "%CD%\Users\%Name1%"
for %%i in ("Documents" "Downloads" "Favorites" "Music" "Pictures" "Videos") do (
mkdir "%FolderName1%\%%~i"
)
mkdir "%CD%\Users\Public"
for %%i in ("Documents" "Downloads" "Music" "Pictures" "Videos") do (
mkdir "%FolderPublic%\%%~i"
)

::создание файлов desktop.ini для дополнительных папок в папке "%CD%"
::создание файла "%CD%\Documents\desktop.ini"
( echo.
echo [.ShellClassInfo]
echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21770
echo IconResource=%SystemRoot%\system32\imageres.dll,-112
echo [ViewState]
echo Mode=
echo Vid=
echo FolderType=Documents
)> "%CD%\Documents\desktop.ini"
::создание файла "%CD%\Downloads\desktop.ini"
( echo.
echo [.ShellClassInfo]
echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21798
echo IconResource=%SystemRoot%\system32\imageres.dll,-184
echo [ViewState]
echo Mode=
echo Vid=
echo FolderType=Generic
)> "%CD%\Downloads\desktop.ini"
::создание файла "%CD%\Favorites\desktop.ini"
( echo.
echo [.ShellClassInfo]
echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21796
echo IconResource=%SystemRoot%\system32\imageres.dll,-115
echo [ViewState]
echo Mode=
echo Vid=
echo FolderType=
)> "%CD%\Favorites\desktop.ini"
::создание файла "%CD%\Music\desktop.ini"
( echo.
echo [.ShellClassInfo]
echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21790
echo InfoTip=@%SystemRoot%\system32\shell32.dll,-12689
echo IconResource=%SystemRoot%\system32\imageres.dll,-108
echo [ViewState]
echo Mode=
echo Vid=
echo FolderType=Music
)> "%CD%\Music\desktop.ini"
::создание файла "%CD%\Pictures\desktop.ini"
( echo.
echo [.ShellClassInfo]
echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21779
echo InfoTip=@%SystemRoot%\system32\shell32.dll,-12688
echo IconResource=%SystemRoot%\system32\imageres.dll,-113
echo [ViewState]
echo Mode=
echo Vid=
echo FolderType=Pictures
)> "%CD%\Pictures\desktop.ini"
::создание файла "%CD%\Videos\desktop.ini"
( echo.
echo [.ShellClassInfo]
echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21791
echo InfoTip=@%SystemRoot%\system32\shell32.dll,-12690
echo IconResource=%SystemRoot%\system32\imageres.dll,-189
echo [ViewState]
echo Mode=
echo Vid=
echo FolderType=Videos
)> "%CD%\Videos\desktop.ini"

::создание файлов desktop.ini для пользовательской папки %Name1%
::создание файла "%FolderName1%\Documents\desktop.ini"
( echo.
echo [.ShellClassInfo]
echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21770
echo IconResource=%SystemRoot%\system32\imageres.dll,-112
echo [ViewState]
echo Mode=
echo Vid=
echo FolderType=Documents
)> "%FolderName1%\Documents\desktop.ini"
::создание файла "%FolderName1%\Downloads\desktop.ini"
( echo.
echo [.ShellClassInfo]
echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21798
echo IconResource=%SystemRoot%\system32\imageres.dll,-184
echo [ViewState]
echo Mode=
echo Vid=
echo FolderType=Generic
)> "%FolderName1%\Downloads\desktop.ini"
::создание файла "%FolderName1%\Favorites\desktop.ini"
( echo.
echo [.ShellClassInfo]
echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21796
echo IconResource=%SystemRoot%\system32\imageres.dll,-115
echo [ViewState]
echo Mode=
echo Vid=
echo FolderType=
)> "%FolderName1%\Favorites\desktop.ini"
::создание файла "%FolderName1%\Music\desktop.ini"
( echo.
echo [.ShellClassInfo]
echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21790
echo InfoTip=@%SystemRoot%\system32\shell32.dll,-12689
echo IconResource=%SystemRoot%\system32\imageres.dll,-108
echo [ViewState]
echo Mode=
echo Vid=
echo FolderType=Music
)> "%FolderName1%\Music\desktop.ini"
::создание файла "%FolderName1%\Pictures\desktop.ini"
( echo.
echo [.ShellClassInfo]
echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21779
echo InfoTip=@%SystemRoot%\system32\shell32.dll,-12688
echo IconResource=%SystemRoot%\system32\imageres.dll,-113
echo [ViewState]
echo Mode=
echo Vid=
echo FolderType=Pictures
)> "%FolderName1%\Pictures\desktop.ini"
::создание файла "%FolderName1%\Videos\desktop.ini"
( echo.
echo [.ShellClassInfo]
echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21791
echo InfoTip=@%SystemRoot%\system32\shell32.dll,-12690
echo IconResource=%SystemRoot%\system32\imageres.dll,-189
echo [ViewState]
echo Mode=
echo Vid=
echo FolderType=Videos
)> "%FolderName1%\Videos\desktop.ini"

::создание файла desktop.ini для папки Users
( echo.
echo [.ShellClassInfo]
echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21813
)> "%CD%\Users\desktop.ini"

::создание файла desktop.ini для папки Public
( echo.
echo [.ShellClassInfo]
echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21816
)> "%CD%\Users\Public\desktop.ini"

::создание файлов desktop.ini для общих папок в папке "%CD\Users"
::создание файла "%FolderPublic%\Documents\desktop.ini"
( echo.
echo [.ShellClassInfo]
echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21801
echo [ViewState]
echo Mode=
echo Vid=
echo FolderType=Documents
)> "%FolderPublic%\Documents\desktop.ini"
::создание файла "%FolderPublic%\Downloads\desktop.ini"
( echo.
echo [.ShellClassInfo]
echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21808
echo [ViewState]
echo Mode=
echo Vid=
echo FolderType=Generic
)> "%FolderPublic%\Downloads\desktop.ini"
::создание файла "%FolderPublic%\Music\desktop.ini"
( echo.
echo [.ShellClassInfo]
echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21803
echo InfoTip=@%SystemRoot%\system32\shell32.dll,-12689
echo [ViewState]
echo Mode=
echo Vid=
echo FolderType=Music
)> "%FolderPublic%\Music\desktop.ini"
::создание файла "%FolderPublic%\Pictures\desktop.ini"
( echo.
echo [.ShellClassInfo]
echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21802
echo InfoTip=@%SystemRoot%\system32\shell32.dll,-12688
echo [ViewState]
echo Mode=
echo Vid=
echo FolderType=Pictures
)> "%FolderPublic%\Pictures\desktop.ini"
::создание файла "%FolderPublic%\Videos\desktop.ini"
( echo.
echo [.ShellClassInfo]
echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21804
echo InfoTip=@%SystemRoot%\system32\shell32.dll,-12690
echo [ViewState]
echo Mode=
echo Vid=
echo FolderType=Videos
)> "%FolderPublic%\Videos\desktop.ini"

::работа с аттрибутами
::установка атрибутов к файлу desktop.ini в папке Users
attrib.exe +s +h "%CD%\Users\desktop.ini"
attrib.exe +r "%CD%\Users"
::установка атрибутов к файлу desktop.ini в папке Users
attrib.exe +s +h "%FolderPublic%\desktop.ini"
attrib.exe +r "%FolderPublic%"
::установка атрибутов к файлам desktop.ini и к их дочерним папкам
for %%i in ("Documents" "Downloads" "Favorites" "Music" "Pictures" "Videos") do (
attrib.exe +s +h "%CD%\%%~i\desktop.ini"
attrib.exe +r "%CD%\%%~i"
)
::установка атрибутов к файлам desktop.ini и к их дочерним папкам
for %%i in ("Documents" "Downloads" "Favorites" "Music" "Pictures" "Videos") do (
attrib.exe +s +h "%FolderName1%\%%~i\desktop.ini"
attrib.exe +r "%FolderName1%\%%~i"
)
::установка атрибутов к файлам desktop.ini и к их дочерним папкам
for %%i in ("Documents" "Downloads" "Music" "Pictures" "Videos") do (
attrib.exe +s +h "%FolderPublic%\%%~i\desktop.ini"
attrib.exe +r "%FolderPublic%\%%~i"
)

::создание символьных ссылок (связей) из %Name1% в дополнительных папках
mklink /j "%CD%\Documents\Документы - %Name1%" "%FolderName1%\Documents"
mklink /j "%CD%\Downloads\Загрузки - %Name1%" "%FolderName1%\Downloads"
mklink /j "%CD%\Favorites\Избранное - %Name1%" "%FolderName1%\Favorites"
mklink /j "%CD%\Music\Музыка - %Name1%" "%FolderName1%\Music"
mklink /j "%CD%\Pictures\Изображения - %Name1%" "%FolderName1%\Pictures"
mklink /j "%CD%\Videos\Видео - %Name1%" "%FolderName1%\Videos"
::создание символьных ссылок (связей) из общей папки в дополнительных папках
mklink /j "%CD%\Documents\Общие документы" "%FolderPublic%\Documents"
mklink /j "%CD%\Downloads\Общие загруженные файлы" "%FolderPublic%\Downloads"
mklink /j "%CD%\Music\Общая музыка" "%FolderPublic%\Music"
mklink /j "%CD%\Pictures\Общие изображения" "%FolderPublic%\Pictures"
mklink /j "%CD%\Videos\Общие видео" "%FolderPublic%\Videos"

::работа с правами доступа NTFS
::установка прав доступа NTFS к символьным ссылкам (связям) из %Name1% в дополнительных папках
icacls.exe "%CD%\Documents\Документы - %Name1%" /grant:r *%Sid1%:(M,RX,D,WDAC,WO) /C /L /Q
icacls.exe "%CD%\Documents\Документы - %Name1%" /inheritance:r /C /L /Q
icacls.exe "%CD%\Downloads\Загрузки - %Name1%" /grant:r *%Sid1%:(M,RX,D,WDAC,WO) /C /L /Q
icacls.exe "%CD%\Downloads\Загрузки - %Name1%" /inheritance:r /C /L /Q
icacls.exe "%CD%\Favorites\Избранное - %Name1%" /grant:r *%Sid1%:(M,RX,D,WDAC,WO) /C /L /Q
icacls.exe "%CD%\Favorites\Избранное - %Name1%" /inheritance:r /C /L /Q
icacls.exe "%CD%\Music\Музыка - %Name1%" /grant:r *%Sid1%:(M,RX,D,WDAC,WO) /C /L /Q
icacls.exe "%CD%\Music\Музыка - %Name1%" /inheritance:r /C /L /Q
icacls.exe "%CD%\Pictures\Изображения - %Name1%" /grant:r *%Sid1%:(M,RX,D,WDAC,WO) /C /L /Q
icacls.exe "%CD%\Pictures\Изображения - %Name1%" /inheritance:r /C /L /Q
icacls.exe "%CD%\Videos\Видео - %Name1%" /grant:r *%Sid1%:(M,RX,D,WDAC,WO) /C /L /Q
icacls.exe "%CD%\Videos\Видео - %Name1%" /inheritance:r /C /L /Q
::установка прав доступа NTFS к символьным ссылкам (связям) из общей папки в дополнительных папках
icacls.exe "%CD%\Documents\Общие документы" /grant:r *%Sid1%:(M,RX,D,WDAC,WO) Администраторы:(M,RX,D,WDAC,WO) Пользователи:RX Все:RX "Прошедшие проверку":(OI)(CI)(IO)(M,RX,D) /C /L /Q
icacls.exe "%CD%\Documents\Общие документы" /inheritance:r /C /L /Q
icacls.exe "%CD%\Downloads\Общие загруженные файлы" /grant:r *%Sid1%:(M,RX,D,WDAC,WO) Администраторы:(M,RX,D,WDAC,WO) Пользователи:RX "Прошедшие проверку":(OI)(CI)(IO)(M,RX,D) Все:RX /C /L /Q
icacls.exe "%CD%\Downloads\Общие загруженные файлы" /inheritance:r /C /L /Q
icacls.exe "%CD%\Music\Общая музыка" /grant:r *%Sid1%:(M,RX,D,WDAC,WO) Администраторы:(M,RX,D,WDAC,WO) Пользователи:RX Все:RX "Прошедшие проверку":(OI)(CI)(IO)(M,RX,D) /C /L /Q
icacls.exe "%CD%\Music\Общая музыка" /inheritance:r /C /L /Q
icacls.exe "%CD%\Pictures\Общие изображения" /grant:r *%Sid1%:(M,RX,D,WDAC,WO) Администраторы:(M,RX,D,WDAC,WO) Пользователи:RX Все:RX "Прошедшие проверку":(OI)(CI)(IO)(M,RX,D) /C /L /Q
icacls.exe "%CD%\Pictures\Общие изображения" /inheritance:r /C /L /Q
icacls.exe "%CD%\Videos\Общие видео" /grant:r *%Sid1%:(M,RX,D,WDAC,WO) Администраторы:(M,RX,D,WDAC,WO) Пользователи:RX Все:RX "Прошедшие проверку":(OI)(CI)(IO)(M,RX,D) /C /L /Q
icacls.exe "%CD%\Videos\Общие видео" /inheritance:r /C /L /Q
::установка прав доступа NTFS для папки %Name1% из папки Users
icacls.exe "%FolderName1%" /grant:r *%Sid1%:(OI)(CI)(M,RX,D,WDAC,WO) /C /Q
icacls.exe "%FolderName1%" /inheritance:r /C /Q
::установка прав доступа NTFS для папки Public из папки Users
icacls.exe "%FolderPublic%" /grant:r *%Sid1%:(OI)(CI)(IO)(M,RX,D,WDAC,WO) Администраторы:(OI)(CI)(M,RX,D,WDAC,WO) Пользователи:(OI)(CI)RX "Прошедшие проверку":(OI)(CI)(IO)(M,RX,D) /C /Q
icacls.exe "%FolderPublic%" /inheritance:r /C /Q
::установка прав доступа NTFS для папки "%CD%\Users"
icacls.exe "%CD%\Users" /grant:r Администраторы:(OI)(CI)(M,RX,D,WDAC,WO) Пользователи:(OI)(CI)RX Все:(OI)(CI)RX /C /Q
icacls.exe "%CD%\Users" /inheritance:r /C /Q
::установка прав доступа NTFS на корневую папку (точка указывает на текущий каталог)
icacls.exe . /grant:r Администраторы:(OI)(CI)(M,RX,D,WDAC,WO) Пользователи:(OI)(CI)RX Все:(OI)(CI)RX /C /L /Q
icacls.exe . /inheritance:r /C /Q

:exit
pause

Friek
19-01-2015, 20:47
никак не пойму, почему это не работает

@echo off
cd /d "%~dp0"

for %%i in ("Documents\Общие документы" "Downloads\Общие загруженные файлы" "Music\Общая музыка" "Pictures\Общие изображения" "Videos\Общие видео") do (
icacls.exe "%CD%\%%~i" /grant:r *%Sid1%:(M,RX,D,WDAC,WO) Администраторы:(M,RX,D,WDAC,WO) Пользователи:RX Все:RX /C /L /Q
icacls.exe "%CD%\%%~i" /inheritance:r /C /L /Q
)

Friek
20-01-2015, 15:45
Ну вот, если владельцем корневого каталога (диска) является не группа администраторов или не администратор, и у него нет полного доступа, то при запуске скрипта от имени администратора не выполняются две последние строки раздачи прав

::установка прав доступа NTFS на корневую папку (точка указывает на текущий каталог)
icacls.exe . /grant:r Администраторы:(OI)(CI)(M,RX,D,WDAC,WO) Пользователи:(OI)(CI)RX Все:(OI)(CI)RX /C /L /Q
icacls.exe . /inheritance:r /C /Q

Недостаточно прав. Но, свежеотформатированная флешка делает меня владельцем, а права для группы "Все" делает полным доступом, и все работает.

Friek
23-01-2015, 18:25
Привязал процедуры к скрипту получилась версия 4

@echo off
:start
::командный файл будет запущен в каталоге, где лежит, даже от имени администратора
cd /d "%~dp0"

::создание начальных переменных
::SID моего пользователя
set Sid1=мой SID
::имя моего пользователя, имя будущей папки
set Name1=Имя папки
::переменная для работы непосредственно с папкой имя которой указано в переменной Name1
set FolderName1=%CD%\Users\%Name1%
::переменная для работы непосредственно с публичной папкой
set FolderPublic=%CD%\Users\Public

::создание папок
mkdir "%CD%\Users"
for %%i in ("Documents" "Downloads" "Favorites" "Music" "Pictures" "Videos") do (
mkdir "%CD%\%%~i"
)
mkdir "%CD%\Users\%Name1%"
for %%i in ("Documents" "Downloads" "Favorites" "Music" "Pictures" "Videos") do (
mkdir "%FolderName1%\%%~i"
)
mkdir "%CD%\Users\Public"
for %%i in ("Documents" "Downloads" "Music" "Pictures" "Videos") do (
mkdir "%FolderPublic%\%%~i"
)

::создание файла desktop.ini для папки Users
call :CreateDesktopIni "%CD%\Users" "-21813" "" "" ""
::создание файлов desktop.ini для пользовательской папки %Name1%
call :CreateDesktopIni "%FolderName1%\Documents" "-21770" "" "-112" "Documents"
call :CreateDesktopIni "%FolderName1%\Downloads" "-21798" "" "-184" "Generic"
call :CreateDesktopIni "%FolderName1%\Favorites" "-21796" "" "-115" ""
call :CreateDesktopIni "%FolderName1%\Music" "-21790" "-12689" "-108" "Music"
call :CreateDesktopIni "%FolderName1%\Pictures" "-21779" "-12688" "-113" "Pictures"
call :CreateDesktopIni "%FolderName1%\Videos" "-21791" "-12690" "-189" "Videos"
::создание файла desktop.ini для папки Public из папки Users
call :CreateDesktopIni "%FolderPublic%" "-21816" "" "" ""
::создание файлов desktop.ini для общих папок в папке Users
call :CreateDesktopIni "%FolderPublic%\Documents" "-21801" "" "" "Documents"
call :CreateDesktopIni "%FolderPublic%\Downloads" "-21808" "" "" "Generic"
call :CreateDesktopIni "%FolderPublic%\Music" "-21803" "-12689" "" "Music"
call :CreateDesktopIni "%FolderPublic%\Pictures" "-21802" "-12688" "" "Pictures"
call :CreateDesktopIni "%FolderPublic%\Videos" "-21804" "-12690" "" "Videos"
::создание файлов desktop.ini для дополнительных папок в текущей папке
call :CreateDesktopIni "%CD%\Documents" "-21770" "" "-112" "Documents"
call :CreateDesktopIni "%CD%\Downloads" "-21798" "" "-184" "Generic"
call :CreateDesktopIni "%CD%\Favorites" "-21796" "" "-115" ""
call :CreateDesktopIni "%CD%\Music" "-21790" "-12689" "-108" "Music"
call :CreateDesktopIni "%CD%\Pictures" "-21779" "-12688" "-113" "Pictures"
call :CreateDesktopIni "%CD%\Videos" "-21791" "-12690" "-189" "Videos"
goto start2

:CreateDesktopIni
set sFolder=%~1
set sLocalizedResourceNameNumber=%~2
set sInfoTipNumber=%~3
set sIconResourceNumber=%~4
set sFolderType=%~5

if defined sFolder (
>"%sFolder%\desktop.ini" (
echo.
echo [.ShellClassInfo]
echo LocalizedResourceName=@%%SystemRoot%%\system32\shell32.dll,%sLocalizedResourceNameNumber%
if defined sInfoTipNumber echo InfoTip=@%%SystemRoot%%\system32\shell32.dll,%sInfoTipNumber%
if defined sIconResourceNumber echo IconResource=%%SystemRoot%%\system32\imageres.dll,%sIconResourceNumber%
echo [ViewState]
echo Mode=
echo Vid=
echo FolderType=%sFolderType%
)
)
exit /b 0

:start2
::работа с атрибутами
::установка атрибутов к файлу desktop.ini в папке Users
attrib.exe +s +h "%CD%\Users\desktop.ini"
attrib.exe +r "%CD%\Users"
::установка атрибутов к файлу desktop.ini в папке Users
attrib.exe +s +h "%FolderPublic%\desktop.ini"
attrib.exe +r "%FolderPublic%"
::установка атрибутов к файлам desktop.ini и к их дочерним папкам
for %%i in ("Documents" "Downloads" "Favorites" "Music" "Pictures" "Videos") do (
attrib.exe +s +h "%CD%\%%~i\desktop.ini"
attrib.exe +r "%CD%\%%~i"
)
::установка атрибутов к файлам desktop.ini и к их дочерним папкам
for %%i in ("Documents" "Downloads" "Favorites" "Music" "Pictures" "Videos") do (
attrib.exe +s +h "%FolderName1%\%%~i\desktop.ini"
attrib.exe +r "%FolderName1%\%%~i"
)
::установка атрибутов к файлам desktop.ini и к их дочерним папкам
for %%i in ("Documents" "Downloads" "Music" "Pictures" "Videos") do (
attrib.exe +s +h "%FolderPublic%\%%~i\desktop.ini"
attrib.exe +r "%FolderPublic%\%%~i"
)

::создание символьных ссылок (связей) из %Name1% в дополнительных папках
mklink /j "%CD%\Documents\Документы - %Name1%" "%FolderName1%\Documents"
mklink /j "%CD%\Downloads\Загрузки - %Name1%" "%FolderName1%\Downloads"
mklink /j "%CD%\Favorites\Избранное - %Name1%" "%FolderName1%\Favorites"
mklink /j "%CD%\Music\Музыка - %Name1%" "%FolderName1%\Music"
mklink /j "%CD%\Pictures\Изображения - %Name1%" "%FolderName1%\Pictures"
mklink /j "%CD%\Videos\Видео - %Name1%" "%FolderName1%\Videos"
::создание символьных ссылок (связей) из общей папки в дополнительных папках
mklink /j "%CD%\Documents\Общие документы" "%FolderPublic%\Documents"
mklink /j "%CD%\Downloads\Общие загруженные файлы" "%FolderPublic%\Downloads"
mklink /j "%CD%\Music\Общая музыка" "%FolderPublic%\Music"
mklink /j "%CD%\Pictures\Общие изображения" "%FolderPublic%\Pictures"
mklink /j "%CD%\Videos\Общие видео" "%FolderPublic%\Videos"

::работа с правами доступа NTFS
::установка прав доступа NTFS к символьным ссылкам (связям) из %Name1% в дополнительных папках
icacls.exe "%CD%\Documents\Документы - %Name1%" /grant:r *%Sid1%:(M,RX,D,WDAC,WO) /C /L /Q /inheritance:r /C /L /Q
icacls.exe "%CD%\Downloads\Загрузки - %Name1%" /grant:r *%Sid1%:(M,RX,D,WDAC,WO) /C /L /Q /inheritance:r /C /L /Q
icacls.exe "%CD%\Favorites\Избранное - %Name1%" /grant:r *%Sid1%:(M,RX,D,WDAC,WO) /C /L /Q /inheritance:r /C /L /Q
icacls.exe "%CD%\Music\Музыка - %Name1%" /grant:r *%Sid1%:(M,RX,D,WDAC,WO) /C /L /Q /inheritance:r /C /L /Q
icacls.exe "%CD%\Pictures\Изображения - %Name1%" /grant:r *%Sid1%:(M,RX,D,WDAC,WO) /C /L /Q /inheritance:r /C /L /Q
icacls.exe "%CD%\Videos\Видео - %Name1%" /grant:r *%Sid1%:(M,RX,D,WDAC,WO) /C /L /Q /inheritance:r /C /L /Q
::установка прав доступа NTFS к символьным ссылкам (связям) из общей папки в дополнительных папках
icacls.exe "%CD%\Documents\Общие документы" /grant:r "Прошедшие проверку":(OI)(CI)(IO)(M,RX) /C /L /Q
icacls.exe "%CD%\Downloads\Общие загруженные файлы" /grant:r "Прошедшие проверку":(OI)(CI)(IO)(M,RX) /C /L /Q
icacls.exe "%CD%\Music\Общая музыка" /grant:r "Прошедшие проверку":(OI)(CI)(IO)(M,RX) /C /L /Q
icacls.exe "%CD%\Pictures\Общие изображения" /grant:r "Прошедшие проверку":(OI)(CI)(IO)(M,RX) /C /L /Q
icacls.exe "%CD%\Videos\Общие видео" /grant:r "Прошедшие проверку":(OI)(CI)(IO)(M,RX) /C /L /Q
::установка прав доступа NTFS для папки %Name1% из папки Users
icacls.exe "%FolderName1%" /grant:r *%Sid1%:(OI)(CI)(M,RX,D,WDAC,WO) /C /Q /inheritance:r /C /Q
::установка прав доступа NTFS для папки Public из папки Users
icacls.exe "%FolderPublic%" /grant:r "Прошедшие проверку":(OI)(CI)(IO)(M,RX) /C /Q
::установка прав доступа NTFS на корневую папку (точка указывает на текущий каталог)
icacls.exe . /grant:r Администраторы:(OI)(CI)(M,RX,D,WDAC,WO) Все:(OI)(CI)RX /C /Q /inheritance:r /C /Q

:exit
pause




© OSzone.net 2001-2012