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

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


Но это для меня еще сложно :D, буду разбираться

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



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

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


Ветеран


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

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


Friek, ничего страшного, пробуйте. Не боги горшки обжигают. Всё придёт со временем.

Суть в том, что переход от линейной «простыни» к структурному коду делает последний нагляднее и понятнее.

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


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


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

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


Iska, я так понял, код:
Скрытый текст
[code]
@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
[\code]

используется только для пользователя %name1%, а для Public папки нужно его дублировать?

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


Ветеран


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

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


Friek, возможно. Я не вникал в Ваш код в деталях. Это просто образцы — как можно сделать, не следуйте им слепо.

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


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


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

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


Простите, возник вопрос...
С при использовании cd /d "%~dp0" в начале скрипта использование переменной %CD% отпадает? Или она обязательна?

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


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


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

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


Например если я батник кладу в корень флешки то часть кода, а именно:

Код: Выделить весь код
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 установка прав доступа NTFS на корневую папку
icacls ./ /inheritance:r
icacls ./ /grant *%Sid1%:(OI)(CI)(M,RX,D,WDAC,WO) /T /C /L /Q
icacls ./ /grant Администраторы:(OI)(CI)(M,RX,D,WDAC,WO) /T /C /L /Q
icacls ./ /grant Пользователи:(OI)(CI)RX /T /C /L /Q
icacls ./ /grant Все:(OI)(CI)RX /T /C /L /Q
вроде бы работает нормально, но правильно ли это?

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


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


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

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


Цитата Iska:
Код: Выделить весь код
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"
) 

»
attrib.exe обязательно с .exe? без неё вроде бы работает, или могут быть проблемы?

Отправлено: 00:02, 09-11-2014 | #17


Ветеран


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

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


Цитата Friek:
код, немного переделанный вот так:
Код: Выделить весь код
rem установка прав доступа NTFS на корневую папку
icacls ./ /inheritance:r
icacls ./ /grant *%Sid1%:(OI)(CI)(M,RX,D,WDAC,WO) /T /C /L /Q
icacls ./ /grant Администраторы:(OI)(CI)(M,RX,D,WDAC,WO) /T /C /L /Q
icacls ./ /grant Пользователи:(OI)(CI)RX /T /C /L /Q
icacls ./ /grant Все:(OI)(CI)RX /T /C /L /Q
вроде бы работает нормально, но правильно ли это? »

Если и работает, то Вам повезло с командой "ICACLS". Если уж ставить слеш после точки, то обратный ("\"), но в данном случае он излишен.

Вот так короче:

Код: Выделить весь код
icacls . /inheritance:r /c /l /q /t
icacls . /grant Администраторы:(OI)(CI)(M,RX,D,WDAC,WO) Пользователи:(OI)(CI)RX Все:(OI)(CI)RX /c /l /q /t
.

Отправлено: 00:34, 09-11-2014 | #18


Ветеран


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

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


Цитата Friek:
attrib.exe обязательно с .exe? без неё вроде бы работает, или могут быть проблемы? »
Желательно.

Отправлено: 00:48, 09-11-2014 | #19


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


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

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


Цитата Georgio:
Если и работает, то Вам повезло с командой "ICACLS". Если уж ставить слеш после точки, то обратный ("\"), но в данном случае он излишен. »
Странно, действительно работает, я вроде бы первый раз тоже только точки делал, но ошибки были, что путь не найден, а сейчас работает

Цитата Georgio:
Код: Выделить весь код
icacls . /inheritance:r /c /l /q /t
icacls . /grant Администраторы:(OI)(CI)(M,RX,D,WDAC,WO) Пользователи:(OI)(CI)RX Все:(OI)(CI)RX /c /l /q /t »
Тоже работает )

Последний раз редактировалось Friek, 09-11-2014 в 10:15.


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



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




 
Переход