[Server] [No Comment] Пакетные файлы BAT or CMD

Тема в разделе "Windows", создана пользователем Шейла, 25 дек 2009.

Модераторы: ADMiNZ
  1. Шейла

    Шейла

    Регистр.:
    12 май 2008
    Сообщения:
    565
    Симпатии:
    158
    Предлагаю размещать пакетные файлы, которые облегчают 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
    ::Всё конец!!!
     
    Alex KGB и goldshady нравится это.
  2. 3dkiller

    3dkiller Создатель

    Регистр.:
    29 окт 2015
    Сообщения:
    10
    Симпатии:
    4
    Для 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
     
  3. Kitsunebi

    Kitsunebi Создатель

    Регистр.:
    22 июл 2009
    Сообщения:
    24
    Симпатии:
    103
    Два скрипта для копирования и восстановления настроек сетевых адаптеров. Проверялось на 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. Может это и сложно назвать полноценным скриптом, но все же если на компе несколько адаптеров со своими настройками, то он поможет немного облегчить жизнь))
     
  4. Newangel

    Newangel Писатель

    Регистр.:
    17 дек 2015
    Сообщения:
    8
    Симпатии:
    1
    Помогите со скриптом для задания прав на подпапки для конкретного пользователя. Что-то не разобрался с CACLS. Есть Папка с кучей подпапок. Есть 2 группы пользователей full и remote. Remote может читать содержимое корневой папки, но не может входить в эти папки. Remote может войти и изменять файлы только в своей подпапке. Full имеет полный доступ во все подпапки. Пробовал играться с наследованием, что-то не получается. Подпапок много, на каждую долго права менять :(
     
  5. kotktml

    kotktml Писатель

    Регистр.:
    8 июн 2018
    Сообщения:
    12
    Симпатии:
    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%


    Системная


    Возвращает размещение каталога операционной системы.
     

    Вложения:

    • CMDVAR.TXT
      Размер файла:
      7,7 КБ
      Просмотров:
      0
  6. kotktml

    kotktml Писатель

    Регистр.:
    8 июн 2018
    Сообщения:
    12
    Симпатии:
    0
    в приложенном файле .CHM файл о CMD [хелпа для написания BAT/CMD]
     

    Вложения:

  7. Alekxander

    Alekxander Постоялец

    Регистр.:
    3 янв 2018
    Сообщения:
    78
    Симпатии:
    27
    Оставлю здесь. Может кому пригодиться. Для меня очень нужный скрипт. Я например с его помощью перекидываю бекапы баз 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
    Сначала указаны данные для подключения к фтп-серверу.Логин, пароль.
    Потом в строке указаны пути где лежит файл файл.
     
  8. kotktml

    kotktml Писатель

    Регистр.:
    8 июн 2018
    Сообщения:
    12
    Симпатии:
    0
    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 ]
     
  9. kotktml

    kotktml Писатель

    Регистр.:
    8 июн 2018
    Сообщения:
    12
    Симпатии:
    0
    PASSWORD FOR ALL MY ARCHIVES

    1961


    ^
     
  10. kotktml

    kotktml Писатель

    Регистр.:
    8 июн 2018
    Сообщения:
    12
    Симпатии:
    0
    WINDOWS COMMAND REFERENCE COLLECTION - .CHM FILE
     

    Вложения:

    • WinCmdRef.rar
      Размер файла:
      1,9 МБ
      Просмотров:
      0