Показаны сообщения с ярлыком скрипты. Показать все сообщения
Показаны сообщения с ярлыком скрипты. Показать все сообщения

среда, 7 июня 2017 г.

Запуск программ в скрытом режиме

Для запуска программы без GUI или запуск консольного приложения, например bat скрипта, есть способ запуска их через js скрипт следующим образом:
создайте текстовый файл с расширением js и вставьте в него этот код -
var activex = new ActiveXObject("WScript.Shell"); activex.Run("notepad", 0, true);
у вас запустится блокнот, увидеть его можно только в запущенных процессах через диспетчер задач.
Таким же образом запускаются bat скрипты:
var activex = new ActiveXObject("WScript.Shell");activex.Run("test.bat", 0, true);
при этом консольного окна видно не будет.

понедельник, 10 апреля 2017 г.

Скрипт подключения сетевых дисков

Как-то давно была поставлена задача подключать все общие сетевые ресурсы(сетевые диски) в домене Active Derectory автоматически, а не руками каждый раз при создании новой учетной записи. Написал Vbs скрипт. Скрипт рабочий и используется по сей день.
Скрипт проверяет:  подключены ли соответствующие диски?
Правильно для дисков прописан путь?
Если не подключен - подключает.
Если не правильно подключен - отключает и подключает правильно
Если подключен - оставляет как есть (не отключает диск и не подключает заново).
Все диски (вне зависимости от статуса) переименовываются.

пятница, 7 апреля 2017 г.

Как удалить шары admin$, C$ , D$ и т.д.


Общие файловые ресурсы (shares) используют для удаленного доступа к файлам. Но, кроме обычной "шары" есть еще административные ресурсы. Доступ к ним может быть выглядеть примерно так: \\«имя компьютера»\C$. Эти сетевые ресурсы доступны только для пользователя с правами администратора для данного компьютера.
share
Это очень удобно в плане администрирования. Например администратор в домене Windows может легко попасть на диск C компьютера Васи. Для параноиков которые хотят удалить данные ресурсы:  после удаления их в панели управления компьютером, они после перезагрузки появятся снова. Поэтому нужно добавить в реестр пару ключей. Привожу пример bat скрипта (подправить под свои данные) который удаляет административные шары.


REM Disable Admin Shares: IPC$, ADMIN$, C$, D$, E$
REG ADD HKLM\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters /f /v AutoShareWks /t REG_DWORD /d 0
REG ADD HKLM\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters /f /v AutoShareServer /t REG_DWORD /d 0
REG ADD HKLM\SYSTEM\SYSTEM\CurrentControlSet\Control\Lsa" /f /v restrictanonymous /t REG_DWORD /d 1@echo.
net share admin$ /delete
net share C$ /delete
net share D$ /delete
net share E$ /delete


пятница, 24 марта 2017 г.

linux backup mysql ftp

Скрипта бэкапа:
Делаем дамп базы MySQL и укладываем его и еще  каталог с сайтом в архив, при этом в параметрах указываем какие каталоги пропускать. Потом устанавливаем соединение с FTP сервером и копируем наш архив на удаленный сервер.

#!/bin/bash
to_cat=/backup/wordpress
web_cat=/var/www/*
date_time=`date +"%Y-%m-%d_%H-%M"`
/usr/bin/mysqldump -uUser -pPassword DataBase> $to_cat/mysql_$date_time.sql
/bin/tar -czf $to_cat/arh_$date_time.tar.gz $web_cat  $to_cat/mysql_$date_time.sql --exclude '/var/www/forum' --exclude '/var/www/old' --exclude '/var/www/zakaz'  > /dev/null 2>&1
rm $to_cat/mysql_$date_time.sql
# удалении копий, которые старше 3 дней
find $to_cat -name '*.gz' -mtime +3 -delete
#копирование резервного архива на удаленный FTP-сервер
ftpuser='user'
password='Password'
ftpserver='192.168.1.1'
#Переходим в папку где лежать архивные копии
cd /backup/wordpress
dir
ftp -in $ftpserver << EOF
user $ftpuser $password
bin
passive
#переходим в папку на фтп
cd wordpress
mput arh_$date_time.tar.gz
quit
EOF

понедельник, 20 января 2014 г.

Удаление в заданной папке всех фалов и подпапок

Скрипт был взят тут
vbscript:
Main
 
Sub Main
                Dim oFSO
                Dim sDirectoryPath
                Dim oFolder
                Dim oDelFolder
                Dim oFileCollection
                Dim oFile
                Dim oFolderCollection
 
                Set oFSO = CreateObject("Scripting.FileSystemObject")
                sDirectoryPath = "C:\ЗДЕСЬ\ТВОЙ\ПУТЬ\К_ПАПКЕ"
                set oFolder = oFSO.GetFolder(sDirectoryPath)
                set oFolderCollection = oFolder.SubFolders
                set oFileCollection = oFolder.Files
 
                For each oFile in oFileCollection
                               oFile.Delete(True)
                Next
 
                For each oDelFolder in oFolderCollection
                                oDelFolder.Delete(True)
                Next
 
                Set oFSO = Nothing
                Set oFolder = Nothing
                Set oFileCollection = Nothing
                Set oFile = Nothing         
 
End Sub

nnbackup + синхронизация

Синхронизация фалов с помощью nnbackup. Свежая версия скачать nnbackup.
Bat script:
@echo off
rem ITvolna Январь 2014г
rem При создании задачи в "шедулере" важно указать рабочий каталог!
rem  Однонаправленная синхронизация директории w:\Departments\

rem Синхронизация проводиться одну сторону (новые и измененные файлы копируются из исходного каталога в приемный - команда sync). PS: что бы в две стороны (сначала новые и измененные файлы копируются из исходного каталога в приемный, а затем, наоборот, из приемного каталога в исходный - команда sync2).
:: -i папка источник
:: -ad - копировать в приемный каталог не только все новые файлы из исходного каталога и все файлы с более "новой" датой создания или модификации, но и файлы, чья дата создания/модификации изменилась в противоположную сторону или не изменилась вовсе, но при этом изменился размер файла;
:: -da -удалять в приемном каталоге файлы, отсутствующие в исходном каталоге. Удаление происходит после завершения копирования новых и обновленных файлов;
:: -s учитывать вложенные каталоги;
:: -o приемный каталог;
:: -e копировать пустые каталоги;
:: -sa Копировать права NTFS
:: -c игнорировать файловые ошибки при копировании;
:: -v отображать пути копируемых фалов на консоли
:: -x Исключить файлы и каталоги из списка
:: -dx @Exception_departments.txt - список исключений
:: -log - запись вывода в лог-файл.

rem Исходный каталог
set SOURCEDIR=w:\Departments\
::set SOURCEDIR=\\?\w:\Departments
rem Приемный каталог
set BACKUPDIR=\\192.168.1.9\d$\Backup\Departments
"c:\Program Files\nnBackup\nnbackup.exe" sync -i "%SOURCEDIR%"  -o "%BACKUPDIR%" -s -e -sa -ad -da -c -v -dx @Exception_departments.txt -log "C:\Program Files\scripts\nnbackup\log\Departments_%DATE%.log"
exit

среда, 11 декабря 2013 г.

7zip backup

Первый скрипт
@echo off
rem скрипт бэкапа
::Что архивировать
set out=D:\Buhgalteria\
::Путь копирования на сервер хранения
set puth_srv=\\srv\r$\Buhgalteria\

:: Описание парметров-  a - ключ создания архива; -mx9 - степень сжатия архива;
:: -ssw - позволяет архивировать открытые для чтения файлы
:: -mx0 - без компрессии; -mx1 - очень быстрая компрессия; -mx3 - быстрая нормальная компрессия;
:: -mx5 - нормальная компрессия; -mx7 - максимальная компрессия; -mx9 - Ультра компрессия;
:: -mmt-4 число потоков или -mmt=on
:: Упаковываем и копируем по сети
start /wait "BackUP Buhgalteria" /min  "c:\Program Files\7-zip\7z.exe" a -t7z -ssw -mx3 -mmt=4 "%puth_srv%\Buhgalteria_%DATE%.7z" "%out%"
exit

Второй скрипт
@echo off
::Удаляем бэкапы старше 7 дней
forfiles.exe /P r:\servers_backup\muradm\Buhgalteria\ /S /M *.* /D -8 /C "cmd /c del /q /f @FILE"
exit

вторник, 10 декабря 2013 г.

Удаление backup старше 7 дней

@echo off
::Удаляем бэкапы старше 7 дней
forfiles.exe /P r:\week_backup_sql\ /S /M *.* /D -7 /C "cmd /c del /q /f @FILE"
exit

среда, 5 июня 2013 г.

Резервное копирование БД mysql

Создание дампа:
mysqldump --opt -u имя_пользователя -p -h имя_сервера_БД --add-drop-table имя_базы > dump.sql 
 Восстановление:
mysql -u имя_пользователя -p -h имя_сервера_БД имя_базы < dump.sql 
Дополнительные опции утилиты mysqldump.
--password=your_pass — параметр для ввода пароля без запроса.
--add-drop-table — опция, которая добавляет команду DROP TABLE перед созданием таблиц. Перед восстановлением таблиц из дампа, таблицы с таким же именем в рабочей базе данных будут удалены и пересозданы из резервной копии. Рекомендуется использовать для предотвращения возможных ошибок после восстановления;
--add-locks — опция, которая добавляет команды LOCK TABLES перед выполнением и UNLOCK TABLE после выполнения каждого дампа таблицы. Применяется для ускорения доступа к MySQL;
--quote-names — опция, сообщающая утилите о необходимости ставить кавычки для названий таблиц и столбцов.
Опции --quick и --opt рекомендуется использовать, если база данных MySQL слишком большая для того, чтобы целиком поместиться в памяти.

пятница, 26 апреля 2013 г.

Тестирование скорости в локальной сети Ethernet

Для тестирования скорости будим использовать Iperf — кроссплатформенная консольная клиент-серверная программа — генератор TCP и UDP трафика для тестирования пропускной способности локальной или распределённой сети. Iperf не требует установки. Iperf для измерения ёмкости канала пользуются даже крупные провайдеры.
Запуск серверной части на порту 8887: iperf -s -p 8887
Запуск клиентской части: iperf -c 192.168.1.1 -p 8887 -t 180
Параметр -t 180 указывает, что тестирование будет продолжаться 180 секунд.

Скрипт для запуска на клиенте:
@echo off
chcp 1251
echo %COMPUTERNAME% >> \\192.168.5.3\"_ДляВсех"\iperf\test\test.txt
\\192.168.5.3\"_ДляВсех"\iperf\iperf.exe -c 192.168.5.10 -p 8887 -t 30 >> \\192.168.5.3\"_ДляВсех"\iperf\test\test.txt
Exit

Пути с русскими буквами


Пути с русскими буквами можно прописать так:
@echo off 
title 1 
chcp 1251 
copy C:\"Documents and Settings"\Admin\"Рабочий стол"\1.txt 

В таких папках где содержаться пробелы Documents and Settings, нужно ставить кавычки "Documents and Settings"

четверг, 4 апреля 2013 г.

Дифференциальный backup с помощью 7zip


@echo off
rem задаем переменные, вроде все понятно
SET Z="C:\Program Files\7-Zip\7z.exe"
rem Папка для хранения бэкапов
SET BACKUPDIR=r:\servers_backup\adm\work\7zip\
rem каталог который бэкапить
SET SOURCEDIR=y:\
rem переменная для задания имени файла
SET filename=work_diff_
rem с переменной TIME1 пришлось извращаться, потому что дефолтная TIME содежит двоеточия,
rem которые не могут содержаться в именах файлов и папок.
rem Также от значения часа берется только вторая цифра, например если 12 часов - в H1 зпишется 2,
rem потому что если часы состоят из одной цифры, а выводятся две - начинаются косяки.
FOR /F "TOKENS=*" %%A IN ('TIME/T') DO SET TIME1=%%A
SET H1=%TIME1:~0,2%
SET M1=%TIME1:~3,2%
set TIME1=%H1%-%M1%

среда, 6 марта 2013 г.

Двунаправленная синхронизация с помощью nnbackup


Двунаправленная синхронизация с помощью nnbackup

@echo
rem Скрипт двунаправленной синхронизации (накопительная), что бы удалить файл или каталог, нужно удалить
rem их в папке приемника и в папке источника
rem -i папка источник
rem -s учитывать вложенные каталоги;
rem -o приемный каталог;
rem -e копировать пустые каталоги;
rem -c игнорировать файловые ошибки при копировании;
rem -v отображать пути копируемых фалов
"C:\Program Files (x86)\nnBackup\nnbackup.exe" sync2 -i c:\Temp\1\ -o c:\Temp\2\ -s -v -e -c -ts -ad -log "c:\Program Files\scripts\sync\arch.log"

SQL backup + 7zip


Скрипт создает backup sql базы, а затем с помощью 7zip архивируем backup
Sql script
DECLARE @pathName NVARCHAR(512)
SET @pathName = 'C:\temp_backup\gismurom\bd_is.bak'
BACKUP DATABASE [bd_is] TO DISK = @pathName WITH NOFORMAT, INIT, NAME = N 'bd_is', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO

Bat script
@echo off
sqlcmd.exe -S server\SQL2008 -U sa -P passkey -i bd_is.sql
set h=%TIME:~0,2%
set m=%TIME:~3,2%
set s=%TIME:~6,2%
set curtime=%h%-%m%-%s%
:: Откуда брать
set P0=C:\Temp\b
:: Куда архивировать
set P1=C:\Temp\arch
:: Backup all folders
start /wait "BackUP sql base" /min  "c:\Program Files\7-zip\7z.exe" a -mmt "%P1%\sql_%DATE%_%curtime%.zip" "%P0%\*.bak"
::Удаляем то что заархивировалось
del "%P0%\*.bak" 2>>"%P1%\log_file.%date%.txt"
::Удаляем старые бэкапы
forfiles.exe -p %P1%\ -s -m *.* -d -2 -c "cmd /c del @FILE"
exit

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


'Скрипт пишет в файл, если файла нет, то метод OpenTextFile создаст его
Sub CreateFile()
  Dim fso, f
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.OpenTextFile("C:\Temp\writefile.txt",8) '1-чтение 2-для записи 8 - дозапись
  ' Записать строку с переводом на новую строку.
  f.WriteLine("Тестирование qwerty")
  ' Записать три пустых строки в файл.    
  'tf.WriteBlankLines(3)
  ' Записать строку
  f.Write ("Это тест")
  f.Close
End Sub
CreateFile()


'Скрипт создания и записи данных в файл
Sub CreateFile()
  Dim fso, tf
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set tf = fso.CreateTextFile("C:\Temp\writefile.txt", True)
  ' Записать строку с переводом на новую строку.
  tf.WriteLine("Тестирование 1, 2, 3.")
  ' Записать три пустых строки в файл.    
  tf.WriteBlankLines(3)
  ' Записать строку
  tf.Write ("Это тест")
  tf.Close
End Sub
CreateFile()

Запись в файл MAC-адреса


'17/02/2013 ITVolna
'Скрипт записи в файл новых значений пары - имя пк и его MAC
'Скрипт содержит две функции:macfunc - определения MAC и MACWrite - Записи MAC в файл
'
'
set WshShell = CreateObject("WScript.Shell")
Set objNetwork = CreateObject("WScript.Network")
strComputer = objNetwork.ComputerName 'Имя ПК

' функция опеределения MAC адреса сетевой карты, в функцию должно передаваться имя ПК
Function macfunc(strComputer)
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set IPConfigSet = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE")
For Each IPConfig In IPConfigSet
'MAC адрес
   strMACAddress = IPConfig.MACAddress(i)
   macfunc=strMACAddress 'Возвращенное значение
Next
End Function

'Объявляем функцию записи в файл МАК адреса
Function MACWrite()
  Dim fso, f
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.OpenTextFile("C:\Temp\writefile.txt",8) '1-чтение 2-для записи 8 - дозапись
  ' Записать строку с переводом на новую строку.
  f.WriteLine(strComputer & ": "&+macfunc(strComputer)) 'Пишем имя ПК и MAC
  f.Close
End Function

' Процедура которая открывает файл и ищет в нем строку с именем ПК и MAC адресом, если MAC Машины и имя ПК совпадает со значением из файла, то выходим из скрипта
' Если такого МАК адреса нет, то пишем в файл MAC данной машины
Sub OpenFileScan()
  Dim fso, f, readmac
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.OpenTextFile("C:\Temp\writefile.txt",1) '1-чтение 2-для записи 8 - дозапись
If fso.FileExists("C:\Temp\writefile.txt") Then 'Файл со списком ПК
set readfile = FSO.OpenTextFile("C:\Temp\writefile.txt",1) 'Чтаем файл
While Not readfile.AtEndOfStream 'Читаем построчно, пока не конец файла
    readmac=readfile.ReadLine
s=strComputer & ": "&+macfunc(strComputer)
If s=readmac Then ' Если имя ПК и соответствующий ему мак адрес в файле есть то выходим из скрипта
WScript.Quit 'выход
End If
Wend
MACWrite() ' Вызываем функцию записи в файл Имя ПК и его MAC адреса
End If
End Sub

OpenFileScan()

Изменение DNS


'15/02/2013 ITVolna
'Скрипт читает файл со списком пк, имя пк передается в функцию ipfunc
'которая назначает данному компьютеру dns сервера (первичный и вторичный)
'Т.о списку ПК присваивается заданные dns параметры
On Error Resume Next 'Пропуск ошибок
dim readfile, readpc, i
set WshShell = CreateObject("WScript.Shell")
set WshNet = WScript.CreateObject("WScript.Network")
Set objNetwork = CreateObject("WScript.Network")
strComputer = objNetwork.ComputerName
set fso=CreateObject("Scripting.FileSystemObject")
'strComputer = "."

If fso.FileExists("c:\temp\scr\pc.txt") Then 'Файл со списком ПК
set readfile = FSO.OpenTextFile("c:\temp\scr\pc.txt",1) 'Чтаем файл
While Not readfile.AtEndOfStream 'Читаем построчно, пока не конец файла
    readpc=readfile.ReadLine
strComputer=readpc
ipfunc(readpc) 'Вызываем функцию назначения DNS
Wend
else WScript.Quit 'выход
End If

'Объявляем функцию
Function ipfunc(readpc)
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colNetCards = objWMIService.ExecQuery _
    ("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
For Each objNetCard in colNetCards
    arrDNSServers = Array("192.168.5.2" , "192.168.5.3")
    objNetCard.SetDNSServerSearchOrder(arrDNSServers)
Next
End Function

Имя PC, ip, шлюза и DNS


'15/02/2013 ITVolna
'Скрипт выводит имя ПК, ip, шлюза и DNS

set WshShell = CreateObject("WScript.Shell")
set WshNet = WScript.CreateObject("WScript.Network")
Set objNetwork = CreateObject("WScript.Network")
'Получаем имя ПК
strComputer = objNetwork.ComputerName
'MsgBox strComputer

'Получаем Сетевые настройки
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set IPConfigSet = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE")
For Each IPConfig In IPConfigSet
'Ip-адрес
  For i=LBound(IPConfig.IPAddress) to UBound(IPConfig.IPAddress)
      strIP = strIP & "  " & IPConfig.IPAddress(i)
  Next
'Шлюз по умолчанию
  For i=LBound(IPConfig.DefaultIPGateway) to UBound(IPConfig.DefaultIPGateway)
      strIPGateway = strGateway & "  " & IPConfig.DefaultIPGateway(i)
  Next
'MAC адрес
   strDNS = strMACAddress & "  " & IPConfig.MACAddress(i)
  For i=LBound(IPConfig.DNSServerSearchOrder) to UBound(IPConfig.DNSServerSearchOrder)
      strDNS = strDNS & "  " & IPConfig.DNSServerSearchOrder(i)
  Next
Next

MsgBox  strComputer & strMACAddress & strDNS & strIPGateway & strIP