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

Компьютерный форум 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

 

Ветеран


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

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


Цитата Friek:
При запуске готового батника от имени администратора (правой кнопкой мыши по файлу) все операции проводятся не с текущей папкой а с папкой системы C:\Windows\system32 »

Чтобы пакетный файл, запущенный от имени администратора, работал в директории, в которой находится сам, нужно в его начале (сразу после "@echo off") вставить строку
Код: Выделить весь код
cd /d "%~dp0"
.
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:53, 08-11-2014 | #2



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

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


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


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

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


Цитата Georgio:
Код: Выделить весь код
cd /d "%~dp0"
»
Спасибо, это работает, но теперь не создаются файлы и папки, где нужны права доступа, конкретного пользователя, наверное, придется сначала давать на все файлы/папки права администратора, потом их отзывать
А можно как нибудь упростить мой код, например раздавать права по условию всем файлам/папкам рекурсивно и без наследства?

Отправлено: 08:11, 08-11-2014 | #3


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


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

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


Код: Выделить весь код
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 создание файла %CD%\Users\%Name1%\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%\Users\%Name1%\Documents\desktop.ini
Это правильно будет же? Хочу немного упростить все. Это будет так называемая версия 2 скрипта )

Отправлено: 08:44, 08-11-2014 | #4


Ветеран


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

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


Цитата Friek:
А можно как нибудь упростить мой код, например раздавать права по условию всем файлам/папкам рекурсивно и без наследства? »

Код: Выделить весь код
icacls "%cd%\*"  /grant:r ... /c /l /q /t



Цитата Friek:
Это правильно будет же? Хочу немного упростить все. Это будет так называемая версия 2 скрипта ) »

Friek, конечно, это будет правильно, а вот в третьей версии пакетного файла нужно будет использовать циклы с оператором "for", что сократит код ещё в несколько раз.

Отправлено: 13:20, 08-11-2014 | #5


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


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

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


Цитата Georgio:
Friek, конечно, это будет правильно, а вот в третьей версии пакетного файла нужно будет использовать циклы с оператором "for", что сократит код ещё в несколько раз. »
Хочу до этого тоже дойти, а то из всех моих больших задуманных проектов ни один не дописал

Отправлено: 15:13, 08-11-2014 | #6


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


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

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


Готовая вторая версия выглядит так
Код: Выделить весь код
@echo off
cd /d "%~dp0"

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

rem установка прав доступа NTFS на корневую папку
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 создание папки 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 для папки Users
(	echo.
	echo [.ShellClassInfo]
	echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21813
)> "%CD%\Users\desktop.ini"
rem установка атрибутов к файлу desktop.ini в папке Users
attrib +s +h "%CD%\Users\desktop.ini"
attrib +r "%CD%\Users"

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"
mkdir "%CD%\Users\%Name1%\Downloads"
mkdir "%CD%\Users\%Name1%\Favorites"
mkdir "%CD%\Users\%Name1%\Music"
mkdir "%CD%\Users\%Name1%\Pictures"
mkdir "%CD%\Users\%Name1%\Videos"
echo папки пользователя %Name1% созданы
rem создание файлов desktop.ini для пользовательской папки %Name1%
rem создание файла "%CD%\Users\%Name1%\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%\Users\%Name1%\Documents\desktop.ini"
rem создание файла "%CD%\Users\%Name1%\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%\Users\%Name1%\Downloads\desktop.ini"
rem создание файла "%CD%\Users\%Name1%\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%\Users\%Name1%\Favorites\desktop.ini"
rem создание файла "%CD%\Users\%Name1%\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%\Users\%Name1%\Music\desktop.ini"
rem создание файла "%CD%\Users\%Name1%\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%\Users\%Name1%\Pictures\desktop.ini"
rem создание файла "%CD%\Users\%Name1%\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%\Users\%Name1%\Videos\desktop.ini"
rem установка атрибутов к файлам desktop.ini и к их дочерним папкам
attrib +s +h "%CD%\Users\%Name1%\Documents\desktop.ini"
attrib +r "%CD%\Users\%Name1%\Documents"
attrib +s +h "%CD%\Users\%Name1%\Downloads\desktop.ini"
attrib +r "%CD%\Users\%Name1%\Downloads"
attrib +s +h "%CD%\Users\%Name1%\Favorites\desktop.ini"
attrib +r "%CD%\Users\%Name1%\Favorites"
attrib +s +h "%CD%\Users\%Name1%\Music\desktop.ini"
attrib +r "%CD%\Users\%Name1%\Music"
attrib +s +h "%CD%\Users\%Name1%\Pictures\desktop.ini"
attrib +r "%CD%\Users\%Name1%\Pictures"
attrib +s +h "%CD%\Users\%Name1%\Videos\desktop.ini"
attrib +r "%CD%\Users\%Name1%\Videos"

rem создание папки Public в папке "%CD%\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 создание файла desktop.ini для папки Public
(	echo.
	echo [.ShellClassInfo]
	echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21816
)> "%CD%\Users\Public\desktop.ini"
rem установка атрибутов к файлу desktop.ini в папке Users
attrib +s +h "%CD%\Users\Public\desktop.ini"
attrib +r "%CD%\Users\Public"
rem создание общих папок в папке "%CD%\Users\Public"
mkdir "%CD%\Users\Public\Documents"
mkdir "%CD%\Users\Public\Downloads"
mkdir "%CD%\Users\Public\Music"
mkdir "%CD%\Users\Public\Pictures"
mkdir "%CD%\Users\Public\Videos"
echo общие папки в "%CD%\Users\Public" созданы
rem создание файлов desktop.ini для общих папок в папке "%CD\Users"
rem создание файла "%CD%\Users\Public\Documents\desktop.ini"
(	echo.
	echo [.ShellClassInfo]
	echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21801
	echo [ViewState]
	echo Mode=
	echo Vid=
	echo FolderType=Documents
)> "%CD%\Users\Public\Documents\desktop.ini"
rem создание файла "%CD%\Users\Public\Downloads\desktop.ini"
(	echo.
	echo [.ShellClassInfo]
	echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21808
	echo [ViewState]
	echo Mode=
	echo Vid=
	echo FolderType=Generic
)> "%CD%\Users\Public\Downloads\desktop.ini"
rem создание файла "%CD%\Users\Public\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
)> "%CD%\Users\Public\Music\desktop.ini"
rem создание файла "%CD%\Users\Public\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
)> "%CD%\Users\Public\Pictures\desktop.ini"
rem создание файла "%CD%\Users\Public\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
)> "%CD%\Users\Public\Videos\desktop.ini"
rem установка атрибутов к файлам desktop.ini и к их дочерним папкам
attrib +s +h "%CD%\Users\Public\Documents\desktop.ini"
attrib +r "%CD%\Users\Public\Documents"
attrib +s +h "%CD%\Users\Public\Downloads\desktop.ini"
attrib +r "%CD%\Users\Public\Downloads"
attrib +s +h "%CD%\Users\Public\Music\desktop.ini"
attrib +r "%CD%\Users\Public\Music"
attrib +s +h "%CD%\Users\Public\Pictures\desktop.ini"
attrib +r "%CD%\Users\Public\Pictures"
attrib +s +h "%CD%\Users\Public\Videos\desktop.ini"
attrib +r "%CD%\Users\Public\Videos"

rem создание дополнительных папок в корневой папке "%CD%"
mkdir "%CD%\Documents"
mkdir "%CD%\Downloads"
mkdir "%CD%\Favorites"
mkdir "%CD%\Music"
mkdir "%CD%\Pictures"
mkdir "%CD%\Videos"
echo дополнительные папки в корневой папке "%CD%" созданы
rem создание файлов desktop.ini для дополнительных папок в папке "%CD%"
rem создание файла "%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"
rem создание файла "%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"
rem создание файла "%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"
rem создание файла "%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"
rem создание файла "%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"
rem создание файла "%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"
rem установка атрибутов к файлам desktop.ini и к их дочерним папкам
attrib +s +h "%CD%\Documents\desktop.ini"
attrib +r "%CD%\Documents"
attrib +s +h "%CD%\Downloads\desktop.ini"
attrib +r "%CD%\Downloads"
attrib +s +h "%CD%\Favorites\desktop.ini"
attrib +r "%CD%\Favorites"
attrib +s +h "%CD%\Music\desktop.ini"
attrib +r "%CD%\Music"
attrib +s +h "%CD%\Pictures\desktop.ini"
attrib +r "%CD%\Pictures"
attrib +s +h "%CD%\Videos\desktop.ini"
attrib +r "%CD%\Videos"

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

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

rem установка прав доступа NTFS к символьным ссылкам (связям) из общей папки в дополнительных папках
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
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
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
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
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 удалить лишние права
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 "%CD%" /remove:g *%Sid1%

:exit
pause
Продолжу сжимать код, надо посмотреть, что там команда for делает

Отправлено: 16:39, 08-11-2014 | #7


Ветеран


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

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


Цитата Friek:
Продолжу сжимать код, надо посмотреть, что там команда for делает »
Например однотипное:
Цитата Friek:
Код: Выделить весь код
mkdir "%CD%\Documents"
mkdir "%CD%\Downloads"
mkdir "%CD%\Favorites"
mkdir "%CD%\Music"
mkdir "%CD%\Pictures"
mkdir "%CD%\Videos"
»
меняется на:
Код: Выделить весь код
for %%i in ("Documents" "Downloads" "Favorites" "Music" "Pictures" "Videos") do (
	mkdir "%CD%\%%~i"
)
А такое:
Цитата Friek:
Код: Выделить весь код
attrib +s +h "%CD%\Users\Public\Documents\desktop.ini"
attrib +r "%CD%\Users\Public\Documents"
attrib +s +h "%CD%\Users\Public\Downloads\desktop.ini"
attrib +r "%CD%\Users\Public\Downloads"
attrib +s +h "%CD%\Users\Public\Music\desktop.ini"
attrib +r "%CD%\Users\Public\Music"
attrib +s +h "%CD%\Users\Public\Pictures\desktop.ini"
attrib +r "%CD%\Users\Public\Pictures"
attrib +s +h "%CD%\Users\Public\Videos\desktop.ini"
attrib +r "%CD%\Users\Public\Videos"
»
на:
Код: Выделить весь код
set sRootPath=%CD%\Users\Public

for %%i in ("Documents" "Downloads" "Music" "Pictures" "Videos") do (
	attrib.exe +s +h "%sRootPath%\%%~i\desktop.ini"
	attrib.exe +r    "%sRootPath%\%%~i"
)
Кстати, а где в последнем «Favorites» ?! А то можно было бы во всех:
Скрытый текст
Код: Выделить весь код
for %%i in ("Documents" "Downloads" "Favorites" "Music" "Pictures" "Videos") do …
заменить на однократное:
Код: Выделить весь код
set sFolders="Documents" "Downloads" "Favorites" "Music" "Pictures" "Videos"
и по месту:
Код: Выделить весь код
for %%i in (%sFolders%) do …

Естественно, и более крупные куски однотипного вида, наподобие:
Код: Выделить весь код
rem создание файла "%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"
подлежат подобной же нормализации.
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:30, 08-11-2014 | #8


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


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

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


Спасибо, изменю это.

Цитата Iska:
Кстати, а где в последнем «Favorites» ?! А то можно было бы во всех: »
в папке Public по умолчанию на windows 7 папка Favorites скрытая, и у нее нет внутри файла desktop.ini

Цитата Iska:
rem создание файла "%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" »
у всех папок разные строчные параметры LocalizedResourceName и IconResource

Отправлено: 18:48, 08-11-2014 | #9


Ветеран


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

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


Цитата Friek:
у всех папок разные строчные параметры LocalizedResourceName и IconResource »
Для подобных вещей можно использовать процедуру:
Скрытый текст
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set Name1=SomeUser

call :CreateDesktopIni "%Name1%" "Documents" "-21770" ""       "-112" "Documents"
call :CreateDesktopIni "%Name1%" "Downloads" "-21798" ""       "-184" "Generic"
call :CreateDesktopIni "%Name1%" "Favorites" "-21796" ""       "-115" ""
call :CreateDesktopIni "%Name1%" "Music"     "-21790" "-12689" "-108" "Music"
call :CreateDesktopIni "%Name1%" "Pictures"  "-21779" "-12688" "-113" "Pictures"
call :CreateDesktopIni "%Name1%" "Videos"    "-21791" "-12690" "-189" "Videos"

endlocal
exit /b 0

:CreateDesktopIni
	set sUser=%~1
	set sFolder=%~2
	set sLocalizedResourceNameNumber=%~3
	set sInfoTipNumber=%~4
	set sIconResourceNumber=%~5
	set sFolderType=%~6
	
	if defined sUser (
		>"%CD%\Users\%sUser%\%sFolder%\desktop.ini" (
			echo [.ShellClassInfo]
			echo LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,%sLocalizedResourceNameNumber%
			if defined sInfoTipNumber echo InfoTip=@%SystemRoot%\system32\shell32.dll,%sInfoTipNumber%
			echo IconResource=%SystemRoot%\system32\imageres.dll,%sIconResourceNumber%
			echo [ViewState]
			echo Mode=
			echo Vid=
			echo FolderType=%sFolderType%
		)
	)
	exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:28, 08-11-2014 | #10



Компьютерный форум 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




 
Переход