Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 30.06.2020
Сообщений: 7
1

Создание скрипта в bat файле

30.06.2020, 02:35. Просмотров 310. Ответов 13

Есть условный локальный диск (для примера возьмем D), в нем есть две папки A и B. Есть два пользователя (U1 и U2) - U1 имеет доступ только в папку A, а U2 в A и B. Задача состоит в том, чтобы сделать скрипт, который переносил бы (то бишь командой move) ВСЁ содержимое (то есть и файлы и папки) из папки B в А, при этом U1 имел такие же права для взаимодействия с перенесенными файлами, какие прописаны ему для папки A. Скрипта также не должен трогать недокопированные файлы (возможно система и сама прекрасно сообщит, что файл занят и тогда можно не делать лишнюю работу, но это нужно проверить обязательно). Проверка должна осуществляться каждые 2 минуты
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.06.2020, 02:35
Ответы с готовыми решениями:

При запуске sh-скрипта из bat-файла команда clang из sh-скрипта неверно работает
Я запускаю через bat.файл sh.скрипт в котором находится одна команда clang code.c -o code.exe ...

Создание BAT-файла с помощью VBS-скрипта
Всем большой привет! Помогите создать файл bat через скрипт vbs и записать в него код. пример...

Как вызвать в одном bat-файле другой bat-файл?
Здравствуйте, уважаемые форумчане. Подскажите, пожалуйста, каким образом надо прописать в одном...

Вызов одного bat в другом bat файле несколько раз
Доброго времени суток. Подскажите: есть два бат-файла, установлена система radius, приходят архивы....

13
3130 / 1773 / 589
Регистрация: 26.04.2015
Сообщений: 5,869
30.06.2020, 14:24 2
Цитата Сообщение от Thegoldenmars Посмотреть сообщение
U1 имеет доступ только в папку A
допустим полный доступ
Цитата Сообщение от Thegoldenmars Посмотреть сообщение
ВСЁ содержимое (то есть и файлы и папки) из папки B в А
Цитата Сообщение от Thegoldenmars Посмотреть сообщение
при этом U1 имел такие же права для взаимодействия с перенесенными файлами, какие прописаны ему для папки A
ко всем перенесенным файлам и папкам, если они окажутся в папке A (где мы выше договорились что у U1 будет полный доступ) будет полный доступ.
Поставьте задачу как-то по другому чтобы было понятнее что кому запрещено и должно остаться запрещено.
0
0 / 0 / 0
Регистрация: 30.06.2020
Сообщений: 7
30.06.2020, 14:32  [ТС] 3
вобщем есть две папки, у первого пользователя есть доступ только к папке 1 и к ее файлам, нужно сделать скрипт, который будет давать права на открытие, редактирование и т.д на файлы из второй папки, при этом все файлы должны переносится из второй папки командой move. а так же скрипт должен проверять, какие файлы сейчас открыты у других пользователей.
0
3130 / 1773 / 589
Регистрация: 26.04.2015
Сообщений: 5,869
30.06.2020, 17:21 4
еще более непонятно
Цитата Сообщение от Thegoldenmars Посмотреть сообщение
скрипт, который будет давать права на открытие, редактирование и т.д на файлы из второй папки
давать права время от времени (на всю папку (вторую) и когда конкретно, каждые 2мин то давать то нет?) или постоянно на конкретные файлы (имена) из второй папки
------
Цитата Сообщение от Thegoldenmars Посмотреть сообщение
при этом все файлы должны переносится из второй папки
это на что влияет или должно влиять?
Цитата Сообщение от Thegoldenmars Посмотреть сообщение
какие файлы сейчас открыты у других пользователей
давайте разберемся с временем
- если пользователь уже открыл что-то, значит у него был допуск на открытие этого файла или всей папки
- если еще не открыл и надо успеть запретить что-то, то надо отследить это что-то по имени/пути на существование (т.е. появился в папке А файл ааа.txt запретить открывать этот файл или всю папку, правда на момент нахождения в папке не знаю сработает ли) , при этом надо еще следить и за пользователями? Только на конкретных будет распространяться это ограничение?
0
0 / 0 / 0
Регистрация: 30.06.2020
Сообщений: 7
30.06.2020, 18:41  [ТС] 5
Цитата Сообщение от alpap Посмотреть сообщение
давать права время от времени (на всю папку (вторую) и когда конкретно, каждые 2мин то давать то нет?) или постоянно на конкретные файлы (имена) из второй папки
давать на все перемещенные файлы
Цитата Сообщение от alpap Посмотреть сообщение
это на что влияет или должно влиять?
это не особо влияет, можно не учитывать
Цитата Сообщение от alpap Посмотреть сообщение
если еще не открыл и надо успеть запретить что-то, то надо отследить это что-то по имени/пути на существование (т.е. появился в папке А файл ааа.txt запретить открывать этот файл или всю папку, правда на момент нахождения в папке не знаю сработает ли) , при этом надо еще следить и за пользователями? Только на конкретных будет распространяться это ограничение?
нет, запрет во время нахождения давать не надо, и да, это ограничение будет работать на отдельных пользователей
0
3130 / 1773 / 589
Регистрация: 26.04.2015
Сообщений: 5,869
30.06.2020, 19:36 6
Цитата Сообщение от Thegoldenmars Посмотреть сообщение
давать на все перемещенные файлы
например создаете примерно такую задачу в планировщике:
Кликните здесь для просмотра всего текста

Код
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2020-06-30T19:06:13.3933894</Date>
    <Author>Домен\Пользователь</Author>
  </RegistrationInfo>
  <Triggers>
    <LogonTrigger>
      <Repetition>
        <Interval>PT2M</Interval>
        <Duration>P1D</Duration>
        <StopAtDurationEnd>false</StopAtDurationEnd>
      </Repetition>
      <Enabled>true</Enabled>
      <UserId>Домен\Пользователь</UserId>
    </LogonTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>Домен\Пользователь</UserId>
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
    <UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>P3D</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>C:\Papka\name.bat</Command>
      <WorkingDirectory>C:\Papka</WorkingDirectory>
    </Exec>
  </Actions>
</Task>

для запуска каждые 2мин такого "C:\papka\name.bat"
Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
set "papkaA=C:\papkaA"
set "papkaB=C:\papkaB"
 
for /f "delims=" %%a in ('dir /a-d/b/s "%papkaA%"') do set "d=%%a"& call :# "%%a" "%%d:%papkaA%=%papkaB%%%"
pause& exit
 
:#
 if exist "%~2" for %%u in (U1 U2 U3) do icacls "%~2" /grant:r "%%u":(RC,S,GR,GW,GE,RD,REA,X,RA) /t
exit /b
прописываете пути, домен\польз, юзеров и какие разрешения давать.

Добавлено через 2 минуты
но если файл перемещен а 2мин еще не прошли. то дыра в безопасности есть
0
0 / 0 / 0
Регистрация: 30.06.2020
Сообщений: 7
04.07.2020, 19:54  [ТС] 7
А можно ли реализовать, чтобы права папки применялись на перенесенные файлы ? и как
то есть права назначаются не в скрипте, а берутся из папки, в которую переносятся
0
3130 / 1773 / 589
Регистрация: 26.04.2015
Сообщений: 5,869
05.07.2020, 04:52 8
Цитата Сообщение от Thegoldenmars Посмотреть сообщение
берутся из папки, в которую переносятся
речь о наследовании? Но оно применяется только к каталогам, файлам надо назначать что требуется.
0
0 / 0 / 0
Регистрация: 30.06.2020
Сообщений: 7
06.07.2020, 00:38  [ТС] 9
Нужно права папки дать перенесенным в нее файлам
0
3130 / 1773 / 589
Регистрация: 26.04.2015
Сообщений: 5,869
06.07.2020, 23:43 10
Цитата Сообщение от Thegoldenmars Посмотреть сообщение
права папки дать перенесенным в нее файлам
как в cmd вы это представляете:
вот например:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
set "f=C:\Papka"
 
for /f "tokens=*" %%a in ('icacls "%f%"^|find ":"') do set "s=%%a"& call :# "%%s:%f% =%%"
 
pause& exit
 
:#
 echo %1
exit /b
права я выставил такие
Код
"NULL SID:(DENY)(Rc,S,DC)"
"Домен\Пользов:(DENY)(W,RD,REA,X,DC)"
"BUILTIN\Администраторы:(F)"
"Домен\Пользовo:(RX,W,DC)"
"NT AUTHORITY\Прошедшие проверку:(DENY)(W,RD,REA,X,DC)"
"NT AUTHORITY\система:(DENY)(S,X)"
"BUILTIN\Пользователи:(DENY)(W,RD,REA,X,DC)"
"Домен\None:(Rc,S,RA)"
"NT AUTHORITY\Прошедшие проверку:(RX,W,DC)"
"NT AUTHORITY\система:(RX,W,DC)"
"BUILTIN\Пользователи:(RX,W,DC)"
"Все:(Rc,S,RA)"
"NULL SID:(OI)(CI)(IO)(DENY)(Rc,S,REA,WEA,X,DC)"
"СОЗДАТЕЛЬ-ВЛАДЕЛЕЦ:(OI)(CI)(IO)(F)"
"Домен\Пользов:(OI)(CI)(IO)(RX,W,DC)"
"ГРУППА-СОЗДАТЕЛЬ:(OI)(CI)(IO)(Rc,S,RA)"
"NT AUTHORITY\Прошедшие проверку:(OI)(CI)(IO)(RX,W,DC)"
"NT AUTHORITY\система:(OI)(CI)(IO)(RX,W,DC)"
"BUILTIN\Пользователи:(OI)(CI)(IO)(RX,W,DC)"
"Все:(OI)(CI)(IO)(Rc,S,RA)"
чтобы передать это файлам надо весь синтаксис icacls в код загнать и проверку делать по каждому пункту?
Я говорю еще раз - проще дать на перемещенные файлы (я показал как их отследить) необходимые права, можно сразу на этапе составления кода делать, давать папке какие-то права и те же параллельно и файлам, оказавшимся в этой папке.

Добавлено через 3 минуты
выставлял между прочим: chmod 700 C:\Papka (в терминале Linux)
0
0 / 0 / 0
Регистрация: 30.06.2020
Сообщений: 7
07.07.2020, 15:41  [ТС] 11
Синтаксис необязательно проверять.Я понимаю, что лучше в скрипте права давать просто у меня случай с большим количеством папок для разных пользователей.
как этот скрипт вообще в конечном итоге выгялдит ?
0
2700 / 1233 / 212
Регистрация: 10.12.2013
Сообщений: 4,167
07.07.2020, 16:50 12
Thegoldenmars,
не стоит тратить время на разговоры в социальных форумах нмв.
в интернете есть абсолютно ВСЯ техническая документация Microsoft по интересующему тебя вопросу.
+ ещё имеются технические форумы, где тоже не надо разговаривать, просто искать, читать, пробовать.

Другое дело, что всем этим надо уметь пользоваться и иметь соотв. уровень. На эти умения и имения может уйти не меньше года.
0
0 / 0 / 0
Регистрация: 30.06.2020
Сообщений: 7
07.07.2020, 23:25  [ТС] 13
Я всё понимаю, просто это единственное поручение, которое мне дали, до этого я вообще не занимался скриптами и это всё надо сделать в короткий срок, я бы не писал, если бы не было временного ограничения.
0
3130 / 1773 / 589
Регистрация: 26.04.2015
Сообщений: 5,869
07.07.2020, 23:49 14
Цитата Сообщение от Thegoldenmars Посмотреть сообщение
просто это единственное поручение, которое мне дали
в армии тоже могут дать только единственное поручение - вырыть окоп для стрельбы стоя с лошади, оно тоже непростое и также никому ненужное в конечном итоге или как минимум непонятное, хотя, ... тут даже понятнее чем в вашем поручении, вы сами до сих пор не можете толком пояснить что надо или почему именно так надо и какая от этого польза или почему нельзя по-другому и никакие выше пояснения и примеры воспринимать не желаете, потому как не пытались это донести до того кто поставил такую задачу (ведь могли и отправить с ведром вакуума набрать слиганца)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.07.2020, 23:49

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Можно ли получить имя bat-файла в этом же bat-файле?
Запускаю прогу со входными аргументами из батника. Последний аргумент - имя выходного файла. Хочу...

Как экранировать кавычки в bat файле или же создать .bat для создания ярлыков?
Нужно размножить ярлыки с разными параметрами запуска(профиля для chrome) у меня не получается...

Выполнение условия в bat файле по наличию текста в определённом файле
Задача: найти опеределённую строчку текста в файле и если она совпадает с искомой, то выполнить...

Упрощение .bat скрипта
Доброго времени суток! Есть скрипт по скрыванию папок. Необходимо его упростить. В этом деле полный...

Запуск bat скрипта с пониженными привилегиями
Привет ☺ Как в bat скрипте, который запускается с правами администратора прописать запуск...

Автоматический запуск скрипта через BAT
Доброго времени суток. Есть скрипт: парсер, который выдирает с форума новые сообщения с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.