Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Автоматизация создания папок и раздача прав доступа NTFS

Ответить
Настройки темы
CMD/BAT - Автоматизация создания папок и раздача прав доступа NTFS

Новый участник


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


Конфигурация

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


Всем добрый вечер. Есть необходимость создать на нескольких флешках и жестких дисках одинаковые папки с одинаковыми правами.
Для этого я попытался написать скрипт, и вроде написал. Он работает, но я столкнулся с некоторыми для меня трудностями.
При запуске готового батника от имени администратора (правой кнопкой мыши по файлу) все операции проводятся не с текущей папкой а с папкой системы C:\Windows\system32
Права администратора мне нужны для того, чтобы сменить владельца с большинства папок с текущего пользователя на группу администраторов.
Сам я не особо в скриптах, но учиться не боюсь
Буду рад помощи от знатоков форума.
Вот сам код:
Код: Выделить весь код
@echo off

rem создание переменных
set Sid1=Мой Sid
set Name1=Имя моего пользователя

rem установка прав доступа NTFS на корневую директорию
rem ВНИМАНИЕ!!! НЕ запускать из системных папок!!!
icacls %CD% /inheritance:r
icacls %CD% /grant *%Sid1%:(OI)(CI)(M,RX,D,WDAC,WO) /T /C /L /Q
icacls %CD% /grant Администраторы:(OI)(CI)(M,RX,D,WDAC,WO) /T /C /L /Q
icacls %CD% /grant Пользователи:(OI)(CI)RX /T /C /L /Q
icacls %CD% /grant Все:(OI)(CI)RX /T /C /L /Q

rem создание папки %CD%\Users:
if exist %CD%\Users goto er1_Users
mkdir %CD%\Users
rem Установка прав доступа NTFS для папки %CD%\Users
icacls %CD%\Users /inheritance:r
icacls %CD%\Users /grant *%Sid1%:(OI)(M,RX,D,WDAC,WO) /T /C /L /Q
icacls %CD%\Users /grant Администраторы:(OI)(CI)(M,RX,D,WDAC,WO) /T /C /L /Q
icacls %CD%\Users /grant Пользователи:(OI)(CI)RX /T /C /L /Q
icacls %CD%\Users /grant Все:(OI)(CI)RX /T /C /L /Q
rem создание файла desktop.ini
@echo.> %CD%\Users\desktop.ini
@echo [.ShellClassInfo]>> %CD%\Users\desktop.ini
@echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21813>> %CD%\Users\desktop.ini
rem применение атрибутов к файлу и папке
attrib +s +h %CD%\Users\desktop.ini
attrib +r %CD%\Users
echo DONE
:createpublic
if exist %CD%\Users\Public goto er1_public
rem создание папки Public в папке Users:
mkdir %CD%\Users\Public
rem Установка прав доступа NTFS для папки Public из папки Users
icacls %CD%\Users\Public /inheritance:r
icacls %CD%\Users\Public /grant *%Sid1%:(OI)(CI)(M,RX,D,WDAC,WO) /T /C /L /Q
icacls %CD%\Users\Public /grant Администраторы:RX /T /C /L /Q
icacls %CD%\Users\Public /grant Администраторы:(OI)(CI)(M,RX,D,WDAC,WO) /T /C /L /Q
icacls %CD%\Users\Public /grant Пользователи:(OI)(CI)RX /T /C /L /Q
icacls %CD%\Users\Public /grant "Прошедшие проверку":(OI)(CI)(IO)(M,RX,D) /T /C /L /Q
rem создание файла Users\Public\desktop.ini
@echo.> %CD%\Users\Public\desktop.ini
@echo [.ShellClassInfo]>> %CD%\Users\Public\desktop.ini
@echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21816>> %CD%\Users\Public\desktop.ini
rem применение атрибутов к файлу и папке
attrib +s +h %CD%\Users\Public\desktop.ini
attrib +r %CD%\Users\Public
rem создание основных папок в папке Public в папке Users
mkdir %CD%\Users\Public\Documents
rem создание файла %CD%\Users\Public\Documents\desktop.ini
@echo.> %CD%\Users\Public\Documents\desktop.ini
@echo [.ShellClassInfo]>> %CD%\Users\Public\Documents\desktop.ini
@echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21801>> %CD%\Users\Public\Documents\desktop.ini
@echo [ViewState]>> %CD%\Users\Public\Documents\desktop.ini
@echo Mode=>> %CD%\Users\Public\Documents\desktop.ini
@echo Vid=>> %CD%\Users\Public\Documents\desktop.ini
@echo FolderType=Documents>> %CD%\Users\Public\Documents\desktop.ini
rem применение атрибутов к файлу и папке
attrib +s +h %CD%\Users\Public\Documents\desktop.ini
attrib +r %CD%\Users\Public\Documents
mkdir %CD%\Users\Public\Downloads
rem создание файла %CD%\Users\Public\Downloads\desktop.ini
@echo.> %CD%\Users\Public\Downloads\desktop.ini
@echo [.ShellClassInfo]>> %CD%\Users\Public\Downloads\desktop.ini
@echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21808>> %CD%\Users\Public\Downloads\desktop.ini
@echo [ViewState]>> %CD%\Users\Public\Downloads\desktop.ini
@echo Mode=>> %CD%\Users\Public\Downloads\desktop.ini
@echo Vid=>> %CD%\Users\Public\Downloads\desktop.ini
@echo FolderType=Generic>> %CD%\Users\Public\Downloads\desktop.ini
rem применение атрибутов к файлу и папке
attrib +s +h %CD%\Users\Public\Downloads\desktop.ini
attrib +r %CD%\Users\Public\Downloads
mkdir %CD%\Users\Public\Music
rem создание файла %CD%\Users\Public\Music\desktop.ini
@echo.> %CD%\Users\Public\Music\desktop.ini
@echo [.ShellClassInfo]>> %CD%\Users\Public\Music\desktop.ini
@echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21803>> %CD%\Users\Public\Music\desktop.ini
@echo InfoTip=@%SystemRoot%\system32\shell32.dll,-12689>> %CD%\Users\Public\Music\desktop.ini
@echo [ViewState]>> %CD%\Users\Public\Music\desktop.ini
@echo Mode=>> %CD%\Users\Public\Music\desktop.ini
@echo Vid=>> %CD%\Users\Public\Music\desktop.ini
@echo FolderType=Music>> %CD%\Users\Public\Music\desktop.ini
rem применение атрибутов к файлу и папке
attrib +s +h %CD%\Users\Public\Music\desktop.ini
attrib +r %CD%\Users\Public\Music
mkdir %CD%\Users\Public\Pictures
rem создание файла %CD%\Users\Public\Pictures\desktop.ini
@echo.> %CD%\Users\Public\Pictures\desktop.ini
@echo [.ShellClassInfo]>> %CD%\Users\Public\Pictures\desktop.ini
@echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21802>> %CD%\Users\Public\Pictures\desktop.ini
@echo InfoTip=@%SystemRoot%\system32\shell32.dll,-12688>> %CD%\Users\Public\Pictures\desktop.ini
@echo [ViewState]>> %CD%\Users\Public\Pictures\desktop.ini
@echo Mode=>> %CD%\Users\Public\Pictures\desktop.ini
@echo Vid=>> %CD%\Users\Public\Pictures\desktop.ini
@echo FolderType=Pictures>> %CD%\Users\Public\Pictures\desktop.ini
rem применение атрибутов к файлу и папке
attrib +s +h %CD%\Users\Public\Pictures\desktop.ini
attrib +r %CD%\Users\Public\Pictures
mkdir %CD%\Users\Public\Videos
rem создание файла %CD%\Users\Public\Videos\desktop.ini
@echo.> %CD%\Users\Public\Videos\desktop.ini
@echo [.ShellClassInfo]>> %CD%\Users\Public\Videos\desktop.ini
@echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21804>> %CD%\Users\Public\Videos\desktop.ini
@echo InfoTip=@%SystemRoot%\system32\shell32.dll,-12690>> %CD%\Users\Public\Videos\desktop.ini
@echo [ViewState]>> %CD%\Users\Public\Videos\desktop.ini
@echo Mode=>> %CD%\Users\Public\Videos\desktop.ini
@echo Vid=>> %CD%\Users\Public\Videos\desktop.ini
@echo FolderType=Videos>> %CD%\Users\Public\Videos\desktop.ini
rem применение атрибутов к файлу и папке
attrib +s +h %CD%\Users\Public\Videos\desktop.ini
attrib +r %CD%\Users\Public\Videos
echo DONE
:createname1
if exist %CD%\Users\%Name1% goto er1_name1
rem создание папки %Name1% в папке %CD%\Users:
mkdir %CD%\Users\%Name1%
rem Установка прав доступа NTFS для папки %Name1% из папки Users
icacls %CD%\Users\%Name1% /inheritance:r
icacls %CD%\Users\%Name1% /grant *%Sid1%:(OI)(CI)(M,RX,D,WDAC,WO) /T /C /L /Q
rem создание основных папок в папке %Name1% в папке %CD%\Users:
mkdir %CD%\Users\%Name1%\Documents
rem создание файла %CD%\Users\%Name1%\Documents\desktop.ini
@echo.> %CD%\Users\%Name1%\Documents\desktop.ini
@echo [.ShellClassInfo]>> %CD%\Users\%Name1%\Documents\desktop.ini
@echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21770>> %CD%\Users\%Name1%\Documents\desktop.ini
@echo IconResource=%SystemRoot%\system32\imageres.dll,-112>> %CD%\Users\%Name1%\Documents\desktop.ini
@echo [ViewState]>> %CD%\Users\%Name1%\Documents\desktop.ini
@echo Mode=>> %CD%\Users\%Name1%\Documents\desktop.ini
@echo Vid=>> %CD%\Users\%Name1%\Documents\desktop.ini
@echo FolderType=Documents>> %CD%\Users\%Name1%\Documents\desktop.ini
rem применение атрибутов к файлу и папке
attrib +s +h %CD%\Users\%Name1%\Documents\desktop.ini
attrib +r %CD%\Users\%Name1%\Documents
mkdir %CD%\Users\%Name1%\Downloads
rem создание файла %CD%\Users\%Name1%\Downloads\desktop.ini
@echo.> %CD%\Users\%Name1%\Downloads\desktop.ini
@echo [.ShellClassInfo]>> %CD%\Users\%Name1%\Downloads\desktop.ini
@echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21798>> %CD%\Users\%Name1%\Downloads\desktop.ini
@echo IconResource=%SystemRoot%\system32\imageres.dll,-184>> %CD%\Users\%Name1%\Downloads\desktop.ini
@echo [ViewState]>> %CD%\Users\%Name1%\Downloads\desktop.ini
@echo Mode=>> %CD%\Users\%Name1%\Downloads\desktop.ini
@echo Vid=>> %CD%\Users\%Name1%\Downloads\desktop.ini
@echo FolderType=Generic>> %CD%\Users\%Name1%\Downloads\desktop.ini
rem применение атрибутов к файлу и папке
attrib +s +h %CD%\Users\%Name1%\Downloads\desktop.ini
attrib +r %CD%\Users\%Name1%\Downloads
mkdir %CD%\Users\%Name1%\Favorites
rem создание файла %CD%\Users\%Name1%\Favorites\desktop.ini
@echo.> %CD%\Users\%Name1%\Favorites\desktop.ini
@echo [.ShellClassInfo]>> %CD%\Users\%Name1%\Favorites\desktop.ini
@echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21796>> %CD%\Users\%Name1%\Favorites\desktop.ini
@echo IconResource=%SystemRoot%\system32\imageres.dll,-115>> %CD%\Users\%Name1%\Favorites\desktop.ini
rem применение атрибутов к файлу и папке
attrib +s +h %CD%\Users\%Name1%\Favorites\desktop.ini
attrib +r %CD%\Users\%Name1%\Favorites
mkdir %CD%\Users\%Name1%\Music
rem создание файла %CD%\Users\%Name1%\Music\desktop.ini
@echo.> %CD%\Users\%Name1%\Music\desktop.ini
@echo [.ShellClassInfo]>> %CD%\Users\%Name1%\Music\desktop.ini
@echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21790>> %CD%\Users\%Name1%\Music\desktop.ini
@echo InfoTip=@%SystemRoot%\system32\shell32.dll,-12689>> %CD%\Users\%Name1%\Music\desktop.ini
@echo IconResource=%SystemRoot%\system32\imageres.dll,-108>> %CD%\Users\%Name1%\Music\desktop.ini
@echo [ViewState]>> %CD%\Users\%Name1%\Music\desktop.ini
@echo Mode=>> %CD%\Users\%Name1%\Music\desktop.ini
@echo Vid=>> %CD%\Users\%Name1%\Music\desktop.ini
@echo FolderType=Music>> %CD%\Users\%Name1%\Music\desktop.ini
rem применение атрибутов к файлу и папке
attrib +s +h %CD%\Users\%Name1%\Music\desktop.ini
attrib +r %CD%\Users\%Name1%\Music
mkdir %CD%\Users\%Name1%\Pictures
rem создание файла %CD%\Users\%Name1%\Pictures\desktop.ini
@echo.> %CD%\Users\%Name1%\Pictures\desktop.ini
@echo [.ShellClassInfo]>> %CD%\Users\%Name1%\Pictures\desktop.ini
@echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21779>> %CD%\Users\%Name1%\Pictures\desktop.ini
@echo InfoTip=@%SystemRoot%\system32\shell32.dll,-12688>> %CD%\Users\%Name1%\Pictures\desktop.ini
@echo IconResource=%SystemRoot%\system32\imageres.dll,-113>> %CD%\Users\%Name1%\Pictures\desktop.ini
@echo [ViewState]>> %CD%\Users\%Name1%\Pictures\desktop.ini
@echo Mode=>> %CD%\Users\%Name1%\Pictures\desktop.ini
@echo Vid=>> %CD%\Users\%Name1%\Pictures\desktop.ini
@echo FolderType=Pictures>> %CD%\Users\%Name1%\Pictures\desktop.ini
rem применение атрибутов к файлу и папке
attrib +s +h %CD%\Users\%Name1%\Pictures\desktop.ini
attrib +r %CD%\Users\%Name1%\Pictures
mkdir %CD%\Users\%Name1%\Videos
rem создание файла %CD%\Users\%Name1%\Videos\desktop.ini
@echo.> %CD%\Users\%Name1%\Videos\desktop.ini
@echo [.ShellClassInfo]>> %CD%\Users\%Name1%\Videos\desktop.ini
@echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21791>> %CD%\Users\%Name1%\Videos\desktop.ini
@echo InfoTip=@%SystemRoot%\system32\shell32.dll,-12690>> %CD%\Users\%Name1%\Videos\desktop.ini
@echo IconResource=%SystemRoot%\system32\imageres.dll,-189>> %CD%\Users\%Name1%\Videos\desktop.ini
@echo [ViewState]>> %CD%\Users\%Name1%\Videos\desktop.ini
@echo Mode=>> %CD%\Users\%Name1%\Videos\desktop.ini
@echo Vid=>> %CD%\Users\%Name1%\Videos\desktop.ini
@echo FolderType=Videos>> %CD%\Users\%Name1%\Videos\desktop.ini
rem применение атрибутов к файлу и папке
attrib +s +h %CD%\Users\%Name1%\Videos\desktop.ini
attrib +r %CD%\Users\%Name1%\Videos
echo DONE
rem создание дополнительных папок
mkdir %CD%\Documents
rem создание файла %CD%\Documents\desktop.ini
@echo.> %CD%\Documents\desktop.ini
@echo [.ShellClassInfo]>> %CD%\Documents\desktop.ini
@echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21770>> %CD%\Documents\desktop.ini
@echo [ViewState]>> %CD%\Documents\desktop.ini
@echo Mode=>> %CD%\Documents\desktop.ini
@echo Vid=>> %CD%\Documents\desktop.ini
@echo FolderType=Documents>> %CD%\Documents\desktop.ini
rem применение атрибутов к файлу и папке
attrib +s +h %CD%\Documents\desktop.ini
attrib +r %CD%\Documents
mkdir %CD%\Downloads
rem создание файла %CD%\Downloads\desktop.ini
@echo.> %CD%\Downloads\desktop.ini
@echo [.ShellClassInfo]>> %CD%\Downloads\desktop.ini
@echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21798>> %CD%\Downloads\desktop.ini
@echo [ViewState]>> %CD%\Downloads\desktop.ini
@echo Mode=>> %CD%\Downloads\desktop.ini
@echo Vid=>> %CD%\Downloads\desktop.ini
@echo FolderType=Generic>> %CD%\Downloads\desktop.ini
rem применение атрибутов к файлу и папке
attrib +s +h %CD%\Downloads\desktop.ini
attrib +r %CD%\Downloads
mkdir %CD%\Favorites
rem создание файла %CD%\Favorites\desktop.ini
@echo.> %CD%\Favorites\desktop.ini
@echo [.ShellClassInfo]>> %CD%\Favorites\desktop.ini
@echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21796>> %CD%\Favorites\desktop.ini
rem применение атрибутов к файлу и папке
attrib +s +h %CD%\Favorites\desktop.ini
attrib +r %CD%\Favorites
mkdir %CD%\Music
rem создание файла %CD%\Music\desktop.ini
@echo.> %CD%\Music\desktop.ini
@echo [.ShellClassInfo]>> %CD%\Music\desktop.ini
@echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21790>> %CD%\Music\desktop.ini
@echo InfoTip=@%SystemRoot%\system32\shell32.dll,-12689>> %CD%\Music\desktop.ini
@echo [ViewState]>> %CD%\Music\desktop.ini
@echo Mode=>> %CD%\Music\desktop.ini
@echo Vid=>> %CD%\Music\desktop.ini
@echo FolderType=Music>> %CD%\Music\desktop.ini
rem применение атрибутов к файлу и папке
attrib +s +h %CD%\Music\desktop.ini
attrib +r %CD%\Music
mkdir %CD%\Pictures
rem создание файла Pictures\desktop.ini
@echo.> %CD%\Pictures\desktop.ini
@echo [.ShellClassInfo]>> %CD%\Pictures\desktop.ini
@echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21779>> %CD%\Pictures\desktop.ini
@echo InfoTip=@%SystemRoot%\system32\shell32.dll,-12688>> %CD%\Pictures\desktop.ini
@echo [ViewState]>> %CD%\Pictures\desktop.ini
@echo Mode=>> %CD%\Pictures\desktop.ini
@echo Vid=>> %CD%\Pictures\desktop.ini
@echo FolderType=Pictures>> %CD%\Pictures\desktop.ini
rem применение атрибутов к файлу и папке
attrib +s +h %CD%\Pictures\desktop.ini
attrib +r %CD%\Pictures
mkdir %CD%\Videos
rem создание файла %CD%\Videos\desktop.ini
@echo.> %CD%\Videos\desktop.ini
@echo [.ShellClassInfo]>> %CD%\Videos\desktop.ini
@echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21791>> %CD%\Videos\desktop.ini
@echo InfoTip=@%SystemRoot%\system32\shell32.dll,-12690>> %CD%\Videos\desktop.ini
@echo [ViewState]>> %CD%\Videos\desktop.ini
@echo Mode=>> %CD%\Videos\desktop.ini
@echo Vid=>> %CD%\Videos\desktop.ini
@echo FolderType=Videos>> %CD%\Videos\desktop.ini
rem применение атрибутов к файлу и папке
attrib +s +h %CD%\Videos\desktop.ini
attrib +r %CD%\Videos

rem создание символьных ссылок (связей) из общей папки в дополнительных папках и установка прав доступа NTFS к этим ссылкам
mklink /j "%CD%\Documents\Общие документы" "%CD%\Users\Public\Documents"
icacls "%CD%\Documents\Общие документы" /inheritance:r
icacls "%CD%\Documents\Общие документы" /grant *%Sid1%:(M,RX,D,WDAC,WO) /T /C /L /Q
icacls "%CD%\Documents\Общие документы" /grant Администраторы:(M,RX,D,WDAC,WO) /T /C /L /Q
icacls "%CD%\Documents\Общие документы" /grant Пользователи:RX /T /C /L /Q
icacls "%CD%\Documents\Общие документы" /grant Все:RX /T /C /L /Q
mklink /j "%CD%\Downloads\Общие загруженные файлы" "%CD%\Users\Public\Downloads"
icacls "%CD%\Downloads\Общие загруженные файлы" /inheritance:r
icacls "%CD%\Downloads\Общие загруженные файлы" /grant *%Sid1%:(M,RX,D,WDAC,WO) /T /C /L /Q
icacls "%CD%\Downloads\Общие загруженные файлы" /grant Администраторы:(M,RX,D,WDAC,WO) /T /C /L /Q
icacls "%CD%\Downloads\Общие загруженные файлы" /grant Пользователи:RX /T /C /L /Q
icacls "%CD%\Downloads\Общие загруженные файлы" /grant Все:RX /T /C /L /Q
mklink /j "%CD%\Music\Общая музыка" "%CD%\Users\Public\Music"
icacls "%CD%\Music\Общая музыка" /inheritance:r
icacls "%CD%\Music\Общая музыка" /grant *%Sid1%:(M,RX,D,WDAC,WO) /T /C /L /Q
icacls "%CD%\Music\Общая музыка" /grant Администраторы:(M,RX,D,WDAC,WO) /T /C /L /Q
icacls "%CD%\Music\Общая музыка" /grant Пользователи:RX /T /C /L /Q
icacls "%CD%\Music\Общая музыка" /grant Все:RX /T /C /L /Q
mklink /j "%CD%\Pictures\Общие изображения" "%CD%\Users\Public\Pictures"
icacls "%CD%\Pictures\Общие изображения" /inheritance:r
icacls "%CD%\Pictures\Общие изображения" /grant *%Sid1%:(M,RX,D,WDAC,WO) /T /C /L /Q
icacls "%CD%\Pictures\Общие изображения" /grant Администраторы:(M,RX,D,WDAC,WO) /T /C /L /Q
icacls "%CD%\Pictures\Общие изображения" /grant Пользователи:RX /T /C /L /Q
icacls "%CD%\Pictures\Общие изображения" /grant Все:RX /T /C /L /Q
mklink /j "%CD%\Videos\Общие видео" "%CD%\Users\Public\Videos"
icacls "%CD%\Videos\Общие видео" /inheritance:r
icacls "%CD%\Videos\Общие видео" /grant *%Sid1%:(M,RX,D,WDAC,WO) /T /C /L /Q
icacls "%CD%\Videos\Общие видео" /grant Администраторы:(M,RX,D,WDAC,WO) /T /C /L /Q
icacls "%CD%\Videos\Общие видео" /grant Пользователи:RX /T /C /L /Q
icacls "%CD%\Videos\Общие видео" /grant Все:RX /T /C /L /Q

rem создание символьных ссылок (связей) из %Name1% в дополнительных папках и установка прав доступа NTFS к этим ссылкам
mklink /j "%CD%\Documents\Документы - %Name1%" "%CD%\Users\%Name1%\Documents"
icacls "%CD%\Documents\Документы - %Name1%" /inheritance:r
icacls "%CD%\Documents\Документы - %Name1%" /grant *%Sid1%:(M,RX,D,WDAC,WO) /T /C /L /Q
mklink /j "%CD%\Downloads\Загрузки - %Name1%" "%CD%\Users\%Name1%\Downloads"
icacls "%CD%\Downloads\Загрузки - %Name1%" /inheritance:r
icacls "%CD%\Downloads\Загрузки - %Name1%" /grant *%Sid1%:(M,RX,D,WDAC,WO) /T /C /L /Q
mklink /j "%CD%\Favorites\Избранное - %Name1%" "%CD%\Users\%Name1%\Favorites"
icacls "%CD%\Favorites\Избранное - %Name1%" /inheritance:r
icacls "%CD%\Favorites\Избранное - %Name1%" /grant *%Sid1%:(M,RX,D,WDAC,WO) /T /C /L /Q
mklink /j "%CD%\Music\Музыка - %Name1%" "%CD%\Users\%Name1%\Music"
icacls "%CD%\Music\Музыка - %Name1%" /inheritance:r
icacls "%CD%\Music\Музыка - %Name1%" /grant *%Sid1%:(M,RX,D,WDAC,WO) /T /C /L /Q
mklink /j "%CD%\Pictures\Изображения - %Name1%" "%CD%\Users\%Name1%\Pictures"
icacls "%CD%\Pictures\Изображения - %Name1%" /inheritance:r
icacls "%CD%\Pictures\Изображения - %Name1%" /grant *%Sid1%:(M,RX,D,WDAC,WO) /T /C /L /Q
mklink /j "%CD%\Videos\Видео - %Name1%" "%CD%\Users\%Name1%\Videos"
icacls "%CD%\Videos\Видео - %Name1%" /inheritance:r
icacls "%CD%\Videos\Видео - %Name1%" /grant *%Sid1%:(M,RX,D,WDAC,WO) /T /C /L /Q

rem удалить лишние права
rem icacls %CD%\Users\Public /remove:g *%Sid1%
rem icacls %CD%\Users /remove:g *%Sid1%
rem icacls "Documents\Общие документы" /remove:g *%Sid1% /L
rem icacls "Downloads\Общие загруженные файлы" /remove:g *%Sid1% /L
rem icacls "Music\Общая музыка" /remove:g *%Sid1% /L
rem icacls "Pictures\Общие изображения" /remove:g *%Sid1% /L
rem icacls "Videos\Общие видео" /remove:g *%Sid1% /L
rem icacls .\ /remove:g *%Sid1%

goto exit

:er1_Users
echo Папка %CD%\Users уже существует, папка пропущена
goto createpublic

:er1_public
echo Папка %CD%\Users уже существует, папка пропущена
goto createname1

:er1_name1
echo Папка %CD%\Users\%Name1% уже существует, папка пропущена
goto exit

:exit
pause

Отправлено: 00:07, 08-11-2014

 

Новый участник


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

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


icacls тоже как icacls.exe писать?

Отправлено: 20:47, 09-11-2014 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


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

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


Friek, расширение файла желательно указывать всегда. Любые умолчания — зло.

Отправлено: 21:23, 09-11-2014 | #22


Новый участник


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

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


Долго не работал над скриптом, был в командировке.
Сегодня посидел над ним, и понял, что долго допускал очень важную ошибку с правами доступа.
Код: Выделить весь код
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

Отправлено: 18:36, 19-01-2015 | #23


Новый участник


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

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


никак не пойму, почему это не работает
Код: Выделить весь код
@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
)

Отправлено: 20:47, 19-01-2015 | #24


Новый участник


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

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


Ну вот, если владельцем корневого каталога (диска) является не группа администраторов или не администратор, и у него нет полного доступа, то при запуске скрипта от имени администратора не выполняются две последние строки раздачи прав
Код: Выделить весь код
::установка прав доступа 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
Недостаточно прав. Но, свежеотформатированная флешка делает меня владельцем, а права для группы "Все" делает полным доступом, и все работает.

Отправлено: 15:45, 20-01-2015 | #25


Новый участник


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

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


Привязал процедуры к скрипту получилась версия 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

Последний раз редактировалось Friek, 23-01-2015 в 22:36. Причина: первый раз скрипт выложил не полный + исправление грубых грамматических ошибок


Отправлено: 18:25, 23-01-2015 | #26



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Автоматизация создания папок и раздача прав доступа NTFS

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Копирование папок и файлов с правами доступа NTFS TERMINAL AutoIt 1 15-06-2012 09:30
[решено] Перенос прав доступа общих папок Evgeniy_Spartak Microsoft Windows NT/2000/2003 7 15-02-2012 01:35
Ограничение прав доступа до папок (Организационный вопрос) tarasov.evgeny Хочу все знать 4 13-07-2011 00:40
Разное - Поддерживает ли SymantecGhost(из под DOS) полное копирование NTFS прав доступа? Lexius Другие серверные продукты 3 22-07-2010 00:51
Автоматизация создания вложенных папок PhantomLo Хочу все знать 1 06-08-2009 20:25




 
Переход