13
апрель
2023
Использование RAMdisk для ускорения 1с
16:07

Использование RAMdisk для ускорения 1с

13 апрель 2023 16:07

Ускорение запуска 1с в 30-60 раз при переносе файла кеша в диск находящийся в ОЗУ.

Описание проблемы

После перехода на на 1с Предприятие 8.3 значительно упало быстродействие. В связи с чем база данных (файлы 1С8.1CD) перенесены на SSD, и скорость выполнения операций выросла в 2-5 раз. Однако этого оказалось недостаточно: утром при одновременной загрузке нескольких экземпляров программ наблюдалась повышенная нагрузка на жесткий диск с файлами кеша в профилях пользователей (очередь диска от 3 до 50) и длительный вход в программу 1с, доходящий до 25 минут.

Бутылочным горлышком являются файлы кеша, которые используются программой 1с, размещенные в профилях пользователей C:\Users. Перенос их в виртуальный диск (RAMdisK) полностью решал перенеся его на диск в оперативной памяти - RAMdisk.

На различных форумах специалисты пришли к тому же решению, но никто не опубликовал работающие bat (CMD) файлы.

Виртуальный диск в ОЗУ - IMdisk virual disk driver

Загрузка с сайта производителя: imdiskinst_2.0.10.exe

IMdisk - бесплатная программа (лицензий GPL) для Windows NT/2000/XP/Vista/7/8/8.1/10 и Windows Server 2003/2003 R2/2008/2008 R2/2012/2012 R2.

Создание виртуального RAM-диска V: в Windows производится командой:

imdisk -a -t vm -s 2G -m V: -p "/fs:ntfs /q /y"

где:
-a - после создания диска подключить его (Attach): "Подключить виртуальный диск. Этот ключ настроит и подключит виртуальный диск с указанными параметрами и смонтирует его в системе."
-t vm - тип диска: vm "Хранилище для этого типа виртуального диска выделяется из виртуальной памяти"
-s 2G - размер диска 2 Гбайт.
-m V: - будет создана точка монтирования -m виртуального диска в диск с буквой V:
-p "/fs:ntfs /q /y - после создания выполнить его форматирование (параметры /fs:ntfs /q /y как у команды format - быстрое форматирование с подавлением запроса подтверждения)

Принцип работы

  1. Утром в 08:50 или при входе любого пользователя или при загрузке ОС с помощью Планировщика задач производится запуск первого CMD файла "ramdisk.cmd" - проверка и создание виртуального диска V: в ОЗУ объёмом 2 Гбайт и копирование на него с диска C: файлов профилей, папок необходимых для работы 1с. После этого - создание символьной ссылки с папки 1C на жестком диске на такую же папку на виртуальном жестком диске V:

  2. В течение дня при завершении сеансов (т.е. при выходах) пользователей при помощи второго CMD файла производится копирование папки "1C" с находящимися внутри файлами кеша с виртуального диска V: на диск C: в профиль пользователя. Также этот командный файл запускается из планировщика в 18:10 - производится последнее за день копирование профилей 1С с диска V: на диск C:.

Чтобы отличать симолическую ссылку на виртуальный диск папку "1C", исходный физический каталог на жестком диске из которого и в который производится копирование назван "1Cref".

Командный файл №1: ramdisk.cmd

  • для создания виртуального диска и утреннего копирования с диска C: на виртуальный жесткий диск.

@echo OFF
if exist "V:\" (
goto cont
)
else
(
goto makevdisk
)

:makevdisk

imdisk -a -t vm -s 2G -m V: -p "/fs:ntfs /q /y"

ping -n 7 127.0.0.1 >nul

:cont

v:
cd \

if not exist "v:\Users\Ivanov" (
mkdir v:\Users\Ivanov\AppData\Local\1C
icacls "v:\Users\Ivanov\AppData\Local\1C" /setowner Ivanov /T /C /Q
icacls "v:\Users\Ivanov\AppData\Local\1C" /grant:r "Ivanov:(OI)(CI)M" /T
xcopy /e /f /o /s C:\Users\Ivanov\AppData\Local\1Cref v:\Users\Ivanov\AppData\Local\1C
mklink /d C:\Users\Ivanov\AppData\Local\1C v:\Users\Ivanov\AppData\Local\1C
)

if not exist "v:\Users\Petrov" (
mkdir v:\Users\Petrov\AppData\Local\1C
icacls "v:\Users\Petrov\AppData\Local\1C" /setowner Petrov /T /C /Q
icacls "v:\Users\Ivanov\AppData\Local\1C" /grant:r "Petrov:(OI)(CI)M" /T
xcopy /e /f /o /s C:\Users\Petrov\AppData\Local\1Cref v:\Users\Petrov\AppData\Local\1C
mklink /d C:\Users\Petrov\AppData\Local\1C v:\Users\Petrov\AppData\Local\1C
)

Где ключи утитилиты icacls:
/setowner - сменить владельца файла или каталога
/С - продолжать выполнение при ошибках,
/T - сменить владельца для подкаталогов и файлов в них,
/Q - подавить сообщение об успешном выполнении
/grant:r - дать право с заменой существующих прав,
"Petrov:(OI)(CI)M" /T` - пользователь и его права:

  • (OI) - наследование объекта,
  • (CI) - наследование контейнера,
  • M - доступ на изменение (модификацию).

Строка прав "Petrov:(OI)(CI)M" заключается в CMD файле в кавычки, иначе при запуске CMD файла будет ошибка "Непредвиденное появление: (CI)M".

Следует отметить, что имя профиля и имя пользователя не всегда совпадают,
поэтому нужно тщательно проверить это и исправить команду, т.к. возможен слудующий вариант
icacls "v:\Users\Петров\AppData\Local\1C" /setowner Petrov /C /L /Q.


Командный файл №2: ramdisk2.cmd

  • для вечернего копирования файлов кешей обратно.

@echo OFF
v:
cd \

if exist "v:\Users\Ivanov\AppData\Local\1C" (
xcopy /e /o /s /y v:\Users\Ivanov\AppData\Local\1C C:\Users\Ivanov\AppData\Local\1Cref
)

if exist "v:\Users\Petrov\AppData\Local\1C" (
xcopy /e /o /s /y v:\Users\Petrov\AppData\Local\1C C:\Users\Petrov\AppData\Local\1Cref
)

Замечание: оба файла в Планировщике задач должны запускаться от имени пользователя Администратор.

Результат

Раньше время загрузки составляло до 25 минут. Скорость запуска программы после ввода пароля теперь составляет 30 секунд.
Также исчезла нагрузка на головки жесткого диска при запуске 1с (уменьшился износ механики НЖМД).
На фотографии в начале статьи измеренная скорость виртуального жесткого диска программой CrystalDiskMark.
Размера диска 2 Гбайт хватает для хранения кешей 1с (занятое пространство 29%, свободно 71%).


Cправка команды imdisk (перевод)

Программа управления драйвером виртуального диска ImDisk.
Для авторских прав и благодарностей введите imdisk --version

Синтакс:
imdisk -a -t type -m mountpoint [-n] [-o opt1[,opt2 ...]] [-f|-F file]
[-s size] [-b offset] [-v partition] [-S sectorsize] [-u unit]
[-x sectors/track] [-y tracks/cylinder] [-p "format-parameters"] [-P]
imdisk -d|-D [-u unit | -m mountpoint] [-P]
imdisk -R -u unit
imdisk -l [-u unit | -m mountpoint]
imdisk -e [-s size] [-o opt1[,opt2 ...]] [-u unit | -m mountpoint]

-a Подключить виртуальный диск. Это настроит и подключит виртуальный диск
с указанными параметрами и прикрепит к системе.

-d Отсоединить виртуальный диск от системы и освободите все ресурсы.
Используйте -D для принудительного удаления, даже если устройство используется.

-R Экстренное удаление зависших виртуальных дисков. Следует использовать
только в крайнем случае, когда с виртуальным диском возникла какая-то проблема,
из-за которой невозможно безопасно отсоединить его. Это может случиться, например,
с виртуальными дисками прокси-типа, когда происходит сбой связи прокси.
Обратите внимание, что это не попытка размонтировать файловую систему
или каким-либо образом заблокировать том, поэтому существует потенциальный риск
потери данных. Используйте с осторожностью!

-e Редактировать существующий виртуальный диск.
Наряду с параметром -s увеличивает размер существующего виртуального диска.
Обратите внимание, что даже если диск может быть успешно расширен,
существующая на нем файловая система может быть расширена только для заполнения
нового размера без повторного форматирования, если вы используете Windows 2000
или более позднюю версию, а текущая файловая система - NTFS.
Наряду с параметром -o изменяет характеристики носителя для существующего
виртуального диска. Параметры, которые можно изменить на существующих виртуальных дисках,
указывают, должен ли носитель виртуального диска быть доступным для записи и/или съемным.

-t type
Выбор резервного хранилища для виртуального диска. Где type принимает значения:

vm Хранилище для этого типа виртуального диска выделяется
из виртуальной памяти в системном процессе. Если файл указан с ключом -f,
этот файл загружается в память, выделенную для образа диска.

file Файл, указанный с параметром -f file, становится резервным хранилищем для этого
виртуального диска.

proxy Фактическое резервное хранилище для этого типа виртуального диска
контролируется сервером хранения ImDisk, доступ к которому осуществляется
драйвером на этой машине путем отправки запроса ввода-вывода хранилища
через именованный канал, указанный с помощью -f.

-f file или -F file
Имя файла для использования в качестве резервного хранилища для
виртуального диска файлового типа, чтобы инициализировать виртуальный диск
типа vm или имя именованного канала для ввода-вывода связи клиент/сервер
для виртуальных дисков прокси-типа. Для прокси типа виртуальных дисков "файл"
может быть COM-портом или удаленным сервером, адрес которого указан в опции -o
и включает "ip" или "comm". Вместо использования ключа -f для указания путей в стиле 'DOS',
таких как C:\dir\image.bin или \server\share\image.bin, вы можете использовать ключ -F для
указания нативных путей в стиле 'NT', таких как
\Device\Harddisk0\Partition1\image.bin. Это позволяет указывать файлы на дисках
или коммуникационных устройствах, которым в данный момент не присвоены буквы дисков.

-l Список настроенных устройств. Если указано с -u или -m, отобразить сведения
об этом конкретном устройстве.

-n При распечатке имён устройств ImDisk, выводить только номер элемента без префикса \Device\ImDisk.

-s size
Размер виртуального диска. Размер - это количество байтов, если не указан суффикс
b, k, m, g, t, K, M, G или T, который обозначает количество 512-байтовых блоков,
тысяч байт, миллионов байт, миллиардов байт, триллионов байт,
килобайт, мегабайт, гигабайт и терабайт соответственно. Суффикс
также может быть %, чтобы указать процент свободной физической памяти, который
может быть использован при создании виртуальных дисков типа vm. Не необязательно
указывать размер, пока не используется файл для инициализации виртуального диска в
типе file виртуального диска, который в действительности не существует или когда
виртуальный диск типа vm создается без файла образа инициализации используя -f или -F.
Если размер указывается при создании файлового типа виртуального диска,
размер файла используемый в качестве резервного хранилища для виртуального диска,
будет настроен в соответствии с размером указанным для этой опцией размера.

Размер может быть отрицательным числом, чтобы указать размер свободного физического память
минус этот размер. Если вы, например, укажете -400М, размер виртуального диска будет равен
объему свободной физической памяти минус 400 МБ.

-b offset
Указывает смещение в файле образа, где начинается виртуальный диск.
Все смещения операций ввода-вывода на виртуальном диске будут совершаться
относительно этого смещения. Этот параметр особенно полезен при установке
определенного раздела в файле образа, который содержит образ полного жесткого
диска, а не только один раздел. Этот параметр не действует, когда производится
создание пустого виртуального диска типа vm. При создании vm типа виртуальный
диск с предварительно загруженным файлом образа, указанным с параметрами -f или -F,
параметр -b указывает смещение в файле образа для загрузки при типе диска vm,
с которого начинается загрузка виртуального диска.

Укажите смещение как auto, чтобы автоматически выбирать смещение для нескольких известных
форматов файлов образа диска, отличные от необработанных. В настоящее время поддерживается
автоматический выбор для файлов образов Nero .nrg и Microsoft .sdi.

-v partition
Указывает, какой раздел монтировать при монтировании файла необработанного образа жесткого диска,
содержащего основную загрузочную запись (MBR) и разделы.

Разделы нумеруются в том порядке, в котором они находятся в основной таблице разделов,
а затем в расширенных таблицах разделов.

-S sectorsize
Размер сектора для виртуального дискового устройства. Значение по умолчанию – 512 байт,
за исключением устройств типа CD-ROM/DVD-ROM, где используется 2048 байт по умолчанию.

-x sectors/track
См. описание опции -y ниже.

-y tracks/cylinder
Опции -x и -y могут использоваться для указания синтетической геометрии.
Это полезно для создания загрузочных образов для последующей загрузки в
физические устройства. Значения по умолчанию зависят от указанного типа устройства.
с опцией . Если указана опция 'fd', значения по умолчанию основаны на размере
виртуального диска, например. изображение 1440K получает 2 дорожек/цилиндр
и 18 секторов/дорожку.

-p "format-parameters"
Если указан параметр -p, вызывается команда 'format' для создания
файловой системы при создании нового виртуального диска.
"format-parameters" должны быть строкой для команды format, заключенной в
двойные кавычки. Строка добавляется в командную строку, которая запускает
'format'. Обычно вы указываете что-то вроде "/fs:ntfs /q /y", то есть создать файловую
систему NTFS с быстрым форматированием и без взаимодействия с пользователем.

-o option
Установить или сбросить параметры:.

ro Создает виртуальный диск только для чтения. Для виртуальных дисков типа vm это
опция может использоваться только в том случае, если также указана опция -f.

rw Указывает, что виртуальный диск должен быть доступен для чтения и записи. Это
настройка по умолчанию. Её можно использовать с параметром -e для установки
существующему виртуальному диску только для чтения доступа для записи.

sparse Задает "sparse" атрибут NTFS для файла образа. Это не влияет на прокси
или виртуальные диски типа vm.

rem Указывает, что устройство должно быть создано с характеристиками съемного носителя.
Этот параметр изменяет свойства устройства, возвращённого драйвером в систему.
Например, это влияет на некоторые файловые системы операции записи в кеш.

fix Указывает, что характеристики носителя виртуального диска должны быть как у
фиксированного носителя, в отличие от съемного носителя, указанного с помощью rem варианта.
Фиксированный носитель является настройкой по умолчанию. Вариант исправления можно использовать
с параметром -e, чтобы установить существующий съемный виртуальный диск как фиксированный.

saved Очищает флаг 'image modified' у существующего виртуального диска. Этот
флаг устанавливается драйвером, когда образ изменяется и отображается
в выводе -l для виртуального диска. Вариант «saved» действителен только
с параметром .

Обратите внимание, что виртуальные дисководы гибких дисков или CD/DVD-ROM
всегда доступны только для чтения и съемные устройства, которые нельзя изменить.

cd Создает виртуальный CD-ROM/DVD-ROM. Это значение по умолчанию, если имя файла,
указанное с параметром -f, заканчивается расширенияии .iso, .nrg или .bin.

fd Создает виртуальную дискету. Это значение по умолчанию, если размер
виртуальный диска любой из: 160К, 180К, 320К, 360К, 640К, 720К, 820К, 1200К,
1440К, 1680К, 1722К, 2880К, 123264К или 234752К.

hd Создает виртуальный раздел фиксированного диска. Это значение по умолчанию,
если расширение или размер файла не соответствует критериям для выбора
по умолчанию вариантов cd или fd.

raw Создает объект устройства с «неизвестным» типом устройства. Система не будет
попытаться сделать что-то самостоятельно с такими устройствами, это может быть
полезно в сочетании со сторонними драйверами, которые могут обеспечить дополнительные
объекты устройства, использующих это виртуальное дисковое устройство в качестве резервного хранилища.

ip Может использоваться только с виртуальными дисками типа proxy. При таком варианте
компонент службы пользовательского режима инициализируется для подключения к ImDisk
сервер хранения, использующий TCP/IP. С этой опцией ключ -f указывает
удаленный хост, за которым может следовать двоеточие и номер порта для
подключиться к нему.

comm Может использоваться только с виртуальными дисками прокси-типа. При таком варианте
компонент службы пользовательского режима инициализируется для подключения к ImDisk
сервер хранения через COM-порт. С этой опцией ключ -f указывает COM-порт для подключения,
за которым может следовать двоеточие, пробел, а затем строка настроек устройства с тем же
синтаксисом, что и в команде MODE.

shm Может использоваться только с виртуальными дисками прокси-типа.
При таком варианте драйвер связывается с сервером хранения на том же компьютере,
используя разделяемый блок памяти для передачи данных ввода-вывода.

awe Может использоваться только с виртуальными дисками файлового типа. При таком варианте
драйвер копирует содержимое файла образа в физическую память. Никаких изменений
записывается в файл образа. Если этот параметр используется в сочетании с
имя файла изображения, блок физической памяти будет использоваться без загрузки
на него файл изображения. В этом случае параметр -s необходим для указания
размер блока памяти. Для этой опции требуется драйвер awealloc, который
требуется Windows 2000 или более поздними версиями.

bswap Указывает драйверу поменять местами каждую пару байтов, считанных из или записанных в
файл образа. Полезно при изучении файлов образов из некоторых встроенных систем.
и аналогичных, где данные хранятся в обратном порядке байтов.

shared Указывает драйверу открывать файл изображения в режиме совместной записи, даже если
изображение открыто для записи. Это может быть полезно для монтирования каждого раздела
образа со многими разделами, в виде отдельных виртуальных дисков с разными смещениями и размерами
в файле образа. Это может привести к повреждению файловых систем. если используется
с неправильными параметрами смещения и размера, используйте его с осторожностью!

par Параллельный ввод-вывод. Действителен для виртуальных дисков файлового типа.
С этим установленным флагом драйвер отправляет запросы на чтение и запись для виртуального диска непосредственно вниз
к драйверу файловой системы, который обрабатывает файл образа, в пределах того же
контекста потока, поскольку исходный запрос был сделан. В некоторых сценариях этот
флаг может повысить производительность, особенно при использовании нескольких слоев
виртуальных дисков, поддерживаемых файлами образов, хранящимися на других виртуальных дисках,
сетевых файловых ресурсах или подобных хранилищах.

Этот флаг поддерживается не во всех сценариях в зависимости от других драйверов,
которыми необходимо выполнить запросы к файлу образа. Это также может ухудшить
производительность или привести к сбою чтения и записи, если базовые драйверы
не могут обрабатывать запросы ввода-вывода одновременно.

buf Буферизованный ввод-вывод. Действителен для виртуальных дисков файлового типа.
С этим установленным флагом драйвер открывает файл изображения в режиме буферизованного
ввода-вывода. Обычно это меньше эффективно, но может потребоваться, например,
если смонтировать файл образа с меньшим размером сектора, чем на том, на котором находится файл образа.

-u unit
Вместе с ключом -a запрашивает конкретный номер устройства для устройства ImDisk.
вместо автоматического распределения. Наряду с -d или -l указывает
номер элемента виртуального диска для удаления или запроса.

-m mountpoint
Указывает букву диска или точку подключения для нового виртуального диска,
виртуальный диск для запроса или виртуальный диск для удаления. При создании
нового виртуального диска, вы можете указать #: как точку монтирования, и в этом случае
автоматически используется первая неиспользуемая буква диска.

-P Постоянный. Наряду с ключом -a сохраняет параметры реестра для повторного создания
тот же виртуальный диск автоматически при загрузке драйвера, что обычно
происходит во время запуска системы. Наряду с -d или -D существующие такие
настройки удаляемого виртуального диска также удаляются из реестра.
Существуют некоторые ограничения на то, какие настройки могут быть сохранены таким образом.
Доступны только функции, непосредственно реализованные в драйвере уровня ядра.
сохранены, поэтому, например, ключ -p для форматирования виртуального диска не будет сохранён.

Справка команды icacls

ICACLS имя /save ACL_файл [/T] [/C] [/L] [/Q]
сохранение DACL файлов и папок, соответствующих имени, в ACL-файл для
последующего использования с командой /restore. Обратите внимание, что
метки SACL, владельца и целостности не сохраняются.

ICACLS каталог [/substitute SidOld SidNew [...]] /restore ACL_файл
[/C] [/L] [/Q]

применение сохраненных DACL к файлам в каталоге.

ICACLS имя /setowner пользователь [/T] [/C] [/L] [/Q]
изменение владельца всех соответствующих имен. Этот параметр не
предназначен для принудительной смены владельца
использовать программу takeown.exe.

ICACLS имя /findsid Sid [/T] [/C] [/L] [/Q]
поиск всех соответствующих имен, которые включают в себя ACL,
явно содержащие данный Sid.

ICACLS имя /verify [/T] [/C] [/L] [/Q]
поиск всех файлов, чьи ACL не являются каноническими или длина которых
не соответствует количеству ACE.

ICACLS имя /reset [/T] [/C] [/L] [/Q]
замена ACL унаследованными по умолчанию ACL для всех соответствующих
файлов.

ICACLS имя [/grant[:r] Sid:разрешение[...]]
[/deny Sid:разрешение [...]]
[/remove[:g|:d]] Sid[...]] [/T] [/C] [/L] [/Q]
[/setintegritylevel уровень:политика[...]]

/grant[:r] Sid:разрешение - предоставление указанных прав доступа
пользователя. При использовании параметра :r эти разрешения заменяют
любые ранее предоставленные явные разрешения. Если параметр :r не
используется, разрешения добавляются к любым ранее предоставленным
явным разрешениям.

/deny Sid:разрешение - явный отзыв указанных прав доступа пользователя.
ACE явного отзыва добавляется для заявленных разрешений,
и любое явное предоставление этих же разрешений удаляется.

/remove[:[g|d]] Sid - удаление всех вхождений Sid в ACL. При использовании
параметра :g удаляются все вхождения предоставленных прав в этом Sid.
При использовании параметра :d удаляются все вхождения отозванных
прав в этом Sid.

/setintegritylevel [(CI)(OI)]уровень - явное добавление ACE уровня
целостности ко всем соответствующим файлам. Уровень может принимать
одно из следующих значений:
L[ow]: низкий
M[edium]: средний
H[igh]: высокий

Перед уровнем могут указываться параметры наследования для ACE
целостности, которые применяются только к каталогам.

/inheritance:e|d|r
e - включение наследования
d - отключение наследования и копирование ACE
r - удаление всех унаследованных ACE

Примечание:
Идентификаторы SID могут быть представлены либо в числовой форме, либо в
форме понятного имени. Если задана числовая форма, добавьте ***** в начало
SID.

/T - операция выполняется для всех соответствующих файлов и каталогов,
расположенных в указанных в имени каталогах.

/C - выполнение операции продолжается при любых файловых ошибках.
Сообщения об ошибках по-прежнему выводятся на экран.

/L - операция выполняется над самой символической ссылкой,
а не над ее целевым объектом.

/Q - команда ICACLS подавляет сообщения об успешном выполнении.

ICACLS сохраняет канонический порядок записей ACE:
Явные отзывы
Явные предоставления
Унаследованные отзывы
Унаследованные предоставления

разрешение - это маска разрешения, которая может задаваться в одной из
двух форм:
последовательность простых прав:
N - доступ отсутствует
F - полный доступ
M - доступ на изменение
RX - доступ на чтение и выполнение
R - доступ только на чтение
W - доступ только на запись
D - доступ на удаление
список отдельных прав, разделенный запятыми и заключенный в скобки:
DE - удаление
RC - чтение
WDAC - запись DAC
WO - смена владельца
S - синхронизация
AS - доступ к безопасности системы
MA - максимально возможный
GR - общее чтение
GW - общая запись
GE - общее выполнение
GA - все общие
RD - чтение данных, перечисление содержимого папки
WD - запись данных, создание файлов
AD - добавление данных и вложенных каталогов
REA - чтение дополнительных атрибутов
WEA - запись дополнительных атрибутов
X - выполнение файлов и обзор папок
DC - удаление вложенных объектов
RA - чтение атрибутов
WA - запись атрибутов
права наследования могут предшествовать любой форме и применяются
только к каталогам:
(OI) - наследование объектами
(CI) - наследование контейнерами
(IO) - только наследование
(NP) - запрет на распространение наследования
(I) - наследование разрешений от родительского контейнера

Примеры:

icacls c:\windows* /save ACL_файл /T

  • сохранение ACL для всех файлов в каталоге c:\windows
    и его подкаталогов в ACL-файл.

    icacls c:\windows\ /restore ACL_файл

  • восстановление ACL из ACL-файла для всех файлов в каталоге
    c:\windows и его подкаталогах.

    icacls файл /grant Administrator:(D,WDAC)

  • предоставление пользователю Administrator разрешений на удаление
    и запись DAC для файла.

    icacls файл /grant *S-1-1-0:(D,WDAC)

  • предоставление пользователю с SID S-1-1-0 разрешений на удаление
    и запись DAC для файла.

Справка команды xcopy

Копирование файлов и структур каталогов.

XCOPY источник [целевой_объект] [/A | /M] [/D[:дата]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B]
[/EXCLUDE:файл1[+файл2][+файл3]...]

источник Копируемые файлы.
целевой_объект Расположение или имена новых файлов.
/A Копирование только файлов с установленным архивным атрибутом
сам атрибут при этом не изменяется.
/M Копирование только файлов с установленным архивным атрибутом
после копирования атрибут снимается.
/D:m-d-y Копирование файлов, измененных не ранее указанной даты.
Если дата не указана, заменяются только конечные файлы,
более старые, чем исходные.
/EXCLUDE:файл1[+файл2][+файл3]...
Список файлов, содержащих строки. Каждая строка должна
располагаться в отдельной строке. Если какая-либо из строк
совпадает с любой частью абсолютного пути к копируемому файлу,
такой файл исключается из операции копирования. Например,
указав строку \obj\ или .obj, можно исключить все файлы из
папки obj или все файлы с расширением OBJ соответственно.
/P Вывод запросов перед созданием каждого нового файла.
/S Копирование только непустых каталогов с подкаталогами.
/E Копирование каталогов с подкаталогами, включая пустые.
Эквивалентен сочетанию ключей /S /E. Совместим с ключом /T.
/V Проверка размера каждого нового файла.
/W Вывод запроса на нажатие клавиши перед копированием.
/C Продолжение копирования вне зависимости от наличия ошибок.
/I Если целевой объект не существует и копируется несколько
файлов, считается, что целевой объект задает каталог.
/Q Запрет вывода имен копируемых файлов.
/F Вывод полных имен исходных и целевых файлов.
/L Вывод имен копируемых файлов.
/G Копирование зашифрованных файлов в целевой каталог, не
поддерживающий шифрование.
/H Копирование, среди прочих, скрытых и системных файлов.
/R Перезапись файлов, предназначенных только для чтения.
/T Создание структуры каталогов без копирования файлов. Пустые
каталоги и подкаталоги не включаются в процесс копирования. Для
создания пустых каталогов и подкаталогов используйте сочетание
ключей /T /E.
/U Копирование только файлов, уже имеющихся в целевом каталоге.
/K Копирование атрибутов. При использовании команды XСOPY обычно
сбрасываются атрибуты "Только для чтения".
/N Использование коротких имен при копировании.
/O Копирование сведений о владельце и данных ACL.
/X Копирование параметров аудита файлов (подразумевает
ключ /O).
/Y Подавление запроса подтверждения на перезапись существующего
целевого файла.
/-Y Запрос подтверждения на перезапись существующего целевого
файла.
/Z Копирование сетевых файлов с возобновлением.
/B Копирование символической ссылки вместо ее целевого объекта.
/J Копирование с использованием небуферизованного ввода/вывода.
Рекомендуется для очень больших файлов.

Ключ /Y можно установить через переменную среды COPYCMD.
Ключ /-Y командной строки переопределяет такую установку.



Похожие публикации