 |

25.12.2009, 15:19
|
|
Постоянный
Регистрация: 09.11.2009
Сообщений: 564
С нами:
8686066
Репутация:
0
|
|
Предлагаю размещать пакетные файлы, которые облегчают aдминистрирование серверов.
Обсуждение запрещено! Есть вопрос по скрипту? Задай его отдельной теме. Или автору по ЛС. Выкладываеш скрипт, составь для него подробное описание, в коментариях в самом скрипте. И укажи на какой системе этот скрипт стабильно работает. Пакетный файл для WIN 2008.
Работает на сервере редакции Standart, SP2 + все необходимые KB.
Этот пакетный файл, выполняет Архивацию системного диска в моем случае это "С", на разшаренную в сети папку.
Архивация выполняеться для того, чтоб в случае падения системы, можно было восстановиться из архива.
Скрипт проверяет кол-во сохранённых бекапов.
Если кол-во бекапов превышает установленный лимит удаляет самый старый бекап, и выполняет повторно проверку на кол-во бекапов.
Если кол-во бекапов не превышает установленный лимит выполняеться архивация системы.
В планировщике, назначена задача по расписанию, которая его запускает.
Важное замечание, спасибо lift
Для того, чтоб скрипт коректно работал с русскими символами, в частности в лог файле,
скрипт должен быть сохранен в кодировке utf or DOS.
Код:
Код:
::Включаем расширеный режим обработки команд.
::------------------------------------------
Echo Off
SetLocal EnableExtensions
SetLocal EnableDelayedExpansion
::------------------------------------------
::Сначала удаляем, затем подключаем сетевой диск.
::------------------------------------------
::У меня это диск S:
NET USE /D S: /Y
NET USE S: \\ShareServerName\ShareFolderName /USER:NameUser PasswordUser
::------------------------------------------
::Задаем все необходимые переменные.
::Переходим в корень подключенного сетевого диска.
::------------------------------------------
SET $Disk=S:
SET $TempFile=List.txt
SET $Unit=30 ::Этот параметр определяет кол-во хранящихся бекапов.
SET $BackUpLog=E:\Log_BackUp_System-%DATE:~-10%.txt
CD /D %$Disk%
::------------------------------------------
::Подсчитываем кол-во каталогов на диске и определяем самый старый.
::Задаем параметры переменным.
::------------------------------------------
:Scan_Now
DIR %$Disk% /B /A:D /O-D>%$Disk%\%$TempFile%
SET $Total=0
FOR /F %%D in (%$Disk%\%$TempFile%) do (
SET $Old_Dir=%%D
SET /A $Total+=1
)
::------------------------------------------
::Удаляем временный файл.
::------------------------------------------
DEL %$Disk%\%$TempFile%
::------------------------------------------
::Определям что делать, если каталогов много, старый удаляем.
::Если каталогов допустимое кол-во, приступаем к архивированию.
::------------------------------------------
IF /I %$Total% LEQ %$Unit% (GOTO Start_Back_Up
) ELSE (
RMDIR /S /Q %$Old_Dir%)
GOTO Scan_Now
::------------------------------------------
::Создаем каталог по текущей дате для бэкапа.
::Запускаем WBADMIN.
::------------------------------------------
:Start_Back_Up
MD %$Disk%\%DATE:~-10%
WBADMIN START BACKUP -backupTarget:\\ShareServerName\ShareFolderName\%DATE:~-10% -include:C: -allCritical -quiet >> %$BackUpLog%
::------------------------------------------
EXIT
::Всё конец!!!
|
|
|

07.12.2015, 10:20
|
|
Новичок
Регистрация: 29.10.2015
Сообщений: 10
С нами:
5546861
Репутация:
0
|
|
Для win7, полная очистка временных файлов и кэша системы
Код:
Код:
@echo off
TITLE Repairing Inf Cache
rem change to drive where windows runs
%SystemDrive%
rem change to the \windows\inf folder
cd %SystemRoot%\inf
rem create random directory for backup
set FOLDERNAME=infbk-%RANDOM%
mkdir %FOLDERNAME%
rem list of files which need to be removed
set FILE1=INFPUB.DAT
set FILE2=INFSTOR.DAT
set FILE3=INFSTRNG.DAT
set FILE4=INFCACHE.*
set FILE5=SETUPAPI.*
rem take ownership of the first file
takeown /f %FILE1%
rem grant full control to 'administrators'
icacls %FILE1% /grant administrators:F /t
rem move it to the backup folder
move %FILE1% %FOLDERNAME%
rem same for the other files
takeown /f %FILE2%
icacls %FILE2% /grant administrators:F /t
move %FILE2% %FOLDERNAME%
takeown /f %FILE3%
icacls %FILE3% /grant administrators:F /t
move %FILE3% %FOLDERNAME%
takeown /f %FILE4%
icacls %FILE4% /grant administrators:F /t
move %FILE4% %FOLDERNAME%
takeown /f %FILE5%
icacls %FILE5% /grant administrators:F /t
move %FILE5% %FOLDERNAME%
echo Successfully moved all infcache related files to %FOLDERNAME%
pause
|
|
|

17.07.2016, 14:38
|
|
Новичок
Регистрация: 22.07.2009
Сообщений: 24
С нами:
8844180
Репутация:
0
|
|
Два скрипта для копирования и восстановления настроек сетевых адаптеров. Проверялось на Windows XP, Windows 7 (но думаю, что будут работать и в Windows 8, 10, Server).
Первый скрипт копирует имя и все настройки всех сетевых адаптеров вне зависимости от их состояния (вкл/вкл), но только если настройки внесены вручную (если настройки выставлены по DHCP, ни настройки, ни информация и о адаптере не копируется). ВНИМАНИЕ: скрипт не копирует SSID и пароль к WiFi.
Первый скрипт для копирования (я назвал netexport.bat). После выполнения в папке со скриптом будет сформирован файл netsettings.txt с настройками. Код скрипта:
Код:
Код:
@echo off
netsh -c interface dump > netsettings.txt
exit
Второй скрипт (я назвал netimport.bat) восстанавливает настройки сети из сформированого файла netsettings.txt. Для этого нужно в папку со скриптом положить netsettings.txt. Код скрипта:
Код:
Код:
@echo off
start /wait netsh.exe -f netsettings.txt
exit
P.S. Может это и сложно назвать полноценным скриптом, но все же если на компе несколько адаптеров со своими настройками, то он поможет немного облегчить жизнь))
|
|
|

19.04.2018, 18:35
|
|
Новичок
Регистрация: 17.12.2015
Сообщений: 23
С нами:
5477337
Репутация:
0
|
|
Помогите со скриптом для задания прав на подпапки для конкретного пользователя. Что-то не разобрался с CACLS. Есть Папка с кучей подпапок. Есть 2 группы пользователей full и remote. Remote может читать содержимое корневой папки, но не может входить в эти папки. Remote может войти и изменять файлы только в своей подпапке. Full имеет полный доступ во все подпапки. Пробовал играться с наследованием, что-то не получается. Подпапок много, на каждую долго права менять
|
|
|

11.06.2018, 01:41
|
|
Новичок
Регистрация: 10.06.2018
Сообщений: 1
С нами:
4172685
Репутация:
0
|
|
ПЕРЕМЕННЫЕ ДЛЯ КОМАНДНОЙ СТРОКИ WINDOWS - могут пригодиться крафтить CMD/BAT
Тип
Описание
%ALLUSERSPROFILE%
Локальная
Возвращает размещение профиля «All Users».
%APPDATA%
Локальная
Возвращает используемое по умолчанию размещение данных приложений.
%CD%
Локальная
Возвращает путь к текущей папке.
%CMDCMDLINE%
Локальная
Возвращает строку команд, с помощью которой был запущен данный экземпляр Cmd.exe.
%CMDEXTVERSION%
Системная
Возвращает номер версии текущих расширений обработчика команд.
%COMPUTERNAME%
Системная
Возвращает имя компьютера.
%COMSPEC%
Системная
Возвращает путь к исполняемой командной оболочке.
%DATE%
Системная
Возвращает текущие данные. Использует тот же формат, что и команда date /t. Создается командой Cmd.exe.
%ERRORLEVEL%
Системная
Возвращает код ошибки последней использовавшейся команды. Значение, не равное нуля, обычно указывает на наличие ошибки.
%HOMEDRIVE%
Системная
Возвращает имя диска локальной рабочей станции, связанного с основным каталогом пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».
%HOMEPATH%
Системная
Возвращает полный путь к основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».
%HOMESHARE%
Системная
Возвращает сетевой путь к общему основному каталогу пользователя. Задается на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».
%LOGONSEVER%
Локальная
Возвращает имя контроллера домена, который проверял подлинность текущей сессии.
%NUMBER_OF_PROCESSORS%
Системная
Задает количество процессоров, установленных на компьютере.
%OS%
Системная
Возвращает имя операционной системы. При использовании Windows 2000 имя операционной системы отображается как Windows_NT.
%PATH%
Системная
Указывает путь поиска для исполняемых файлов.
%PATHEXT%
Системная
Возвращает список расширений файлов, которые рассматриваются операционной системой как исполняемые.
%PROCESSOR_ARCHITECTURE%
Системная
Возвращает архитектуру процессора. Значения: x86, IA64.
%PROCESSOR_IDENTFIER%
Системная
Возвращает описание процессора.
%PROCESSOR_LEVEL%
Системная
Возвращает номер модели процессора, установленного на компьютере.
%PROCESSOR_REVISION%
Системная
Возвращает номер модификации процессора.
%PROMPT%
Локальная
Возвращает параметры командной строки для текущего интерпретатора. Создается командой Cmd.exe.
%RANDOM%
Системная
Возвращает произвольное десятичное число от 0 до 32767. Создается командой Cmd.exe.
%SYSTEMDRIVE%
Системная
Возвращает имя диска, содержащего корневой каталог Windows XP (т. е. системный каталог).
%SYSTEMROOT%
Системная
Возвращает размещение системного каталога Windows XP.
%TEMP% и %TMP%
Системная и пользовательская
Возвращает временные папки, по умолчанию используемые приложениями, которые доступны пользователям, выполнившим вход в систему. Некоторые приложения требуют переменную TEMP, другие — переменную TMP.
%TIME%
Системная
Возвращает текущее время. Использует тот же формат, что и команда time /t. Создается командой Cmd.exe.
%USERDOMAIN%
Локальная
Возвращает имя домена, содержащего список учетных записей пользователей.
%USERNAME%
Локальная
Возвращает имя пользователя, выполнившего вход в систему.
%USERPROFILE%
Локальная
Возвращает размещение профиля для текущего пользователя.
%WINDIR%
Системная
Возвращает размещение каталога операционной системы.
в приложенном файле .CHM файл о CMD [хелпа для написания BAT/CMD]
OPEN EXPLORER.EXE
IN ADDRESS FIELD ENTER:
ftp://ftplogin:ftppassword@FTPSERVER.COM
or
ftp://ftplogin:ftppassword@IP-ADDRESS_OF_FTP [like this: ftp://kotktml:1961@93.123.145.48 ]
PASSWORD FOR ALL MY ARCHIVES
1961
^
WINDOWS COMMAND REFERENCE COLLECTION - .CHM FILE
CRAZY BSOD SCREENSAVER
.BAT or .CMD TO .EXE?
COMPILER!
SHUTDOWN COUNTDOWN ABORT COMMAND:
"shutdown -a"
SHUTDOWN WINDOWS AND SWITCH OFF THE COMPUTER
"shutdown -t 00 -s"
SHUTDOWN WINDOWS AND REBOOT THE COMPUTER
"shutdown -t 00 -r"
COMMAND LINE VARIABLES (WINXP AND SERVER 2003)
OEM INFO (WINXP) EDIT SCRIPT
@echo off
rem магические слова
MS-DOS WITH NTFS AND TCP/IP
QEMM - 512MB CAPABLE
BOOTABLE CD
.ISO FORMAT
DOWNLOAD:
http://m.turbobit.net/rvlqo1e5rluj.html
|
|
|

11.06.2018, 11:36
|
|
Постоянный
Регистрация: 03.01.2018
Сообщений: 538
С нами:
4399544
Репутация:
0
|
|
Оставлю здесь. Может кому пригодиться. Для меня очень нужный скрипт. Я например с его помощью перекидываю бекапы баз 1С на ФТП-сервер. Работает на Windows Server 2008/2008R2, Windows Server 2016.
Нужна маленькая прога для соединения с фтп-сервером. WinSCP
Установка WinSCP проста.Описывать не буду.
1.Батник.
Код:
Код:
set datetimef=%date:~-4%_%date:~3,2%_%date:~0,2%
set back_filename=bu_work_backup_%datetimef%_*.bak
"C:\Program Files (x86)\WinSCP\winscp.com" /ini=nul /script="C:\Program Files (x86)\WinSCP\buback.txt"
В первой строке выбирается самый последний файл по дате и времени, потому как в моём случае имя бекапа файла состоит из названия бекапа и добавляется дата и время. Это уже Скуль так делает бекап.
Потом указание название файла вместе с расширением. В примере - это база bu_work_backup.bak.
В третьей строке путь к файлу скрипта и к текстовому файлу, в котором указаны данные для подключения к ФТП-серверу.
2.Текстовик.
Код:
Код:
option batch on
option confirm off
# open ftp connection
open ftp://логин:пароль@адрес сервера
put G:\Backup\bu_work\%back_filename% /backup/bu_work/
# "/" Backup
exit
Сначала указаны данные для подключения к фтп-серверу.Логин, пароль.
Потом в строке указаны пути где лежит файл файл.
|
|
|

06.11.2018, 13:25
|
|
Новичок
Регистрация: 05.11.2018
Сообщений: 13
С нами:
3959151
Репутация:
0
|
|
Cкрипт инкрементного резервного копирования общей папки.
Работает на win2k8 win2k12 win2k16
В системе требуется установленный 7zip
В планировщике ставим ежедневный запуск full.bat
Если полный архив отсутствует - скрипт создаст полный б'кап
Если уже есть полный архив - будет создан инкремент с отбором по атрибуту "архивный". Если сегодняшний инкремент уже есть (например ПК днем перезагрузили), то скрипт ничего не делает.
В планировщике ставим запуск dellfull.bat например раз в месяц. Этот скрипт сотрет прежний полный бэкап, что послужит сигналом к полному очищению папки хранения бэкапов и запуску создания свежего полного архива
full.bat
Код:
Код:
rem ************ блок настроек скрипта************
rem установка параметров
rem что копируем
set source=D:\Documents
rem временная папка, используется для создания инкрементов, сама очищается
set zipertmp=E:\zipertmp
rem куда копируем
set destination=E:\docs_backup
rem указываем путь до архиватора 7-zip
set ziper="C:\Program Files\7-Zip\7z.exe"
rem ***********************************************
rem определяем дату и записываем в переменную
for /F "tokens=1-3 usebackq delims=. " %%1 in (`date /t`) do set mydate=%%1.%%2.%%3
rem ***********************************************
rem **********блок создания инкрементов ***********
rem если есть полный архив, то делаем инкремент и выходим. Если полный архив отсутствует - переходим в раздел создания полного архива
if not exist %destination%\full_**********.zip goto createfull
rem Если уже есть сегодняшний инкремент, то ничего делать не надо
if exist %destination%\incr_%mydate%.zip goto gdby
rem делаем инкремент
rd %zipertmp% /S /Q
mkdir %zipertmp%
robocopy %source% %zipertmp% /S /Z /M
%ziper% a %destination%\incr_%mydate%.zip %zipertmp%\* -mx1 -pfj38drnvhfy462390g7
rd %zipertmp% /S /Q
:gdby
exit
rem *************************************************
rem ************ блок создания полного архива ************
:createfull
rem очищаяем папку назначения
rd %destination% /S /Q
mkdir %destination%
rem Делаем полный архив 7зипом
%ziper% a %destination%\full_%mydate%.zip %source%\* -mx1 -pfj38drnvhfy462390g7
rem Снимаем атрибут "архивный" со всех файлов в целевом каталоге
cd /d %source%
attrib -A *.* /S /D
exit
rem ******************************************************
dellfull.bat
Код:
Код:
set destination=E:\docs_backup
del %destination%\full_**********.zip /q /a
Автоматический бэкап виртуальных машин Hyper-V 2012R2 и 2016R2
Резервное копирование на лету без остановки гостевых ОС. Скрипт сначала экспортирует ВМ, потом зажимает их архиватором 7zip, и на последок чистит за собой хвосты + следит за количеством одновременно хранимых архивов. Внимательно следите за переменными, чтобы они указывали в реально существующие каталоги + обязательно наличие 7zip установленного в систему с параметрами по умолчанию.
backup.bat
Код:
Код:
rem --- start script ---
rem Блок настроек скрипта
rem назначаем глубину кол-ва архивов, например хранить 2 последних
set depth=2
rem Назначим уровень сжатия [0 | 1 | 3 | 5 | 7 | 9 ], по умолчанию 7zip использует 5
set cmprslvl=3
rem выбираем из всего многообразия нужную нам гостевую машину, по имени как она значится в Hyper-V оснастке
set vmname=km-bts01
rem Указываем промежуточный каталог куда ВМ будет экспортирована перед архивированием
set temp=e:\temp
rem Указываем куда складывать бэкапы
set vault=e:\backup\hyper-v
rem ************************************************
rem Все, дальше ничего не трогаем
set /a depth=%depth%-1
rem define date time variables for building the folder name
for /F "tokens=1-3 usebackq delims=. " %%1 in (`date /t`) do set mydate=%%1.%%2.%%3
for /F "tokens=1-3 usebackq delims=: " %%1 in (`time /t`) do set mytime=%%1-%%2
set timestamp=%mydate%_%mytime%
rem В файлик складываем список содержимого %vault%, отсортированного по дате, самые новые вверху
dir %vault% /O:-D /B>%temp%\dir%vmname%.txt
rem Отберем только интересующие нас файлы по шаблону имени.
rem Потом просто пропускаем %depth% кол-во строк, остальное удалим.
for /f "usebackq skip=%depth%" %%i in (`findstr "%vmname%" %temp%\dir%vmname%.txt`) do del %vault%\%%i /q /f
rem Запускаем резервное копирование
echo y|powershell.exe Set-ExecutionPolicy Unrestricted
powershell.exe Export-VM -Name %vmname% -Path "%temp%\%vmname%_%timestamp%"
echo y|powershell.exe Set-ExecutionPolicy Restricted
:: Архивируем и складываем куда следует, проверяй правильность пути до архиватора
"c:\Program Files\7-Zip\7z.exe" a "%vault%\%vmname%_%timestamp%.zip" "%temp%\%vmname%_%timestamp%\*" -mx%cmprslvl%
:: Чистим за собой
dir %temp% /O:-D /B>%temp%\dir%vmname%.txt
for /f "usebackq skip=%depth%" %%i in (`findstr "%vmname%" %temp%\dir%vmname%.txt`) do rmdir %temp%\%%i /q /s
::rmdir "%temp%\%vmname%_%timestamp%" /q /s
rem --- end script ---
|
|
|

09.11.2018, 14:18
|
|
Новичок
Регистрация: 05.11.2018
Сообщений: 13
С нами:
3959151
Репутация:
0
|
|
1. Скрипт на BAT инкрементного копирования файлов.
В системе требуется установленный 7zip
В планировщике ставим ежедневный запуск full.bat
Если полный архив отсутсвует - скрипт создаст полный бэкап
Если уже есть полный архив - будет создан инкремент с отбором по атрибуту "архивный". Если сегодняшний инкремент уже есть (например ПК днем перезагрузили), то скрипт ничего не делает.
В планировщике ставим запуск dellfull.bat например раз в месяц. Этот скрипт сотрет прежний полный бэкап, что послужит сигналом к полному очищению папки хранения бэкапов и запуску создания свежего полного архива
full.bat
Код:
Код:
rem ************ блок настроек скрипта************
rem установка параметров
rem что копируем
set source=D:\Documents
rem временная папка, используется для создания инкрементов, сама очищается
set zipertmp=E:\zipertmp
rem куда копируем
set destination=E:\docs_backup
rem указываем путь до архиватора 7-zip
set ziper="C:\Program Files\7-Zip\7z.exe"
rem ***********************************************
rem определяем дату и записываем в переменную
for /F "tokens=1-3 usebackq delims=. " %%1 in (`date /t`) do set mydate=%%1.%%2.%%3
rem ***********************************************
rem **********блок создания инкрементов ***********
rem если есть полный архив, то делаем инкремент и выходим. Если полный архив отсутствует - переходим в раздел создания полного архива
if not exist %destination%\full_**********.zip goto createfull
rem Если уже есть сегодняшний инкремент, то ничего делать не надо
if exist %destination%\incr_%mydate%.zip goto gdby
rem делаем инкремент
rd %zipertmp% /S /Q
mkdir %zipertmp%
robocopy %source% %zipertmp% /S /Z /M
%ziper% a %destination%\incr_%mydate%.zip %zipertmp%\* -mx5
rd %zipertmp% /S /Q
:gdby
exit
rem *************************************************
rem ************ блок создания полного архива ************
:createfull
rem очищаяем папку назначения
rd %destination% /S /Q
mkdir %destination%
rem Делаем полный архив 7зипом
%ziper% a %destination%\full_%mydate%.zip %source%\* -mx5
rem Снимаем атрибут "архивный" со всех файлов в целевом каталоге
cd /d %source%
attrib -A *.* /S /D
exit
rem ******************************************************
dellfull.bat
Код:
Код:
set destination=E:\docs_backup
del %destination%\full_**********.zip /q /a
|
|
|

07.12.2018, 18:09
|
|
Новичок
Регистрация: 15.05.2016
Сообщений: 24
С нами:
5260314
Репутация:
0
|
|
Чистка всех журналов
Код:
Код:
for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"
|
|
|

10.02.2019, 18:37
|
|
Участник форума
Регистрация: 13.04.2016
Сообщений: 160
С нами:
5306802
Репутация:
0
|
|
Подскажите, тут и заказы на скрипты можно писать? Или только выкладывать?
//В шапке есть только "Нельзя обсуждать".
|
|
|
|
 |
Предыдущая тема
Следующая тема
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|