scripts:cmd
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
scripts:cmd [03.04.2018 14:53] – [Синхронизация папок с сетевого хранилища на USB-диск + ведение лога] viacheslav | scripts:cmd [30.07.2024 19:21] (текущий) – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ===== Установка и удаление программ, | ||
+ | ==== Удалить Dameware client ==== | ||
+ | <code dos> | ||
+ | Net Stop DWMRCS | ||
+ | Net Stop DNTUS26 | ||
+ | C: | ||
+ | C: | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Удалить менеджер браузеров Яндекса ==== | ||
+ | FIXME | ||
+ | <code dos> | ||
+ | msiexec /X {42C06229-B704-4375-BF63-3E22FEAC736C} /quiet /norestart | ||
+ | </ | ||
+ | ==== Замена Яндекс-браузера в профиле на " | ||
+ | [[https:// | ||
+ | |||
+ | Удалить ярлыки и папки из профиля пользователя: | ||
+ | <code dos> | ||
+ | rem Windows 7 и выше | ||
+ | del " | ||
+ | del " | ||
+ | rmdir " | ||
+ | rmdir " | ||
+ | rmdir " | ||
+ | rmdir " | ||
+ | # Перестроить кэш значков | ||
+ | ie4uinit.exe -ClearIconCache | ||
+ | |||
+ | rem Windows XP | ||
+ | del " | ||
+ | del " | ||
+ | rmdir " | ||
+ | rmdir " | ||
+ | rmdir " | ||
+ | rmdir " | ||
+ | </ | ||
+ | |||
+ | Если нужно удалить " | ||
+ | <code dos> | ||
+ | wmic product where name=" | ||
+ | rem грохнуть сервис апдейтов - он остаётся после деинсталляции | ||
+ | sc delete YandexBrowserService | ||
+ | </ | ||
+ | ==== Почистить временные папки в Windows 7 на удалённой машине ==== | ||
+ | <code dos> | ||
+ | @echo off | ||
+ | set /P COMP=Введите имя компьютера: | ||
+ | set /P USER=Введите имя папки профиля пользователя: | ||
+ | del " | ||
+ | del " | ||
+ | dir " | ||
+ | pause | ||
+ | </ | ||
+ | |||
+ | ==== Почистить временные папки в Windows XP на удалённой машине ==== | ||
+ | <code dos> | ||
+ | @echo off | ||
+ | set /P COMP=Введите имя компьютера: | ||
+ | set /P USER=Введите имя папки профиля пользователя: | ||
+ | del " | ||
+ | del " | ||
+ | dir " | ||
+ | pause | ||
+ | </ | ||
+ | ===== WMIC ===== | ||
+ | ==== Выгрузить список программ на удалённой машине ==== | ||
+ | <code dos> | ||
+ | @echo off | ||
+ | set /P COMP=Введите имя компьютера: | ||
+ | rem Не помню, зачем это было нужно | ||
+ | rem set DATESTAMP=%DATE: | ||
+ | rem set TIMESTAMP=%TIME: | ||
+ | rem set DATEANDTIME=%DATESTAMP%_%TIMESTAMP% | ||
+ | wmic / | ||
+ | rem Более детализированный список | ||
+ | rem wmic / | ||
+ | </ | ||
+ | |||
+ | ==== Удалить программу через WMIC ==== | ||
+ | <code dos> | ||
+ | @echo off | ||
+ | title Деинсталляция программ | ||
+ | set /P COMP=Введите имя компьютера: | ||
+ | rem По ID | ||
+ | set /P PROG=Введите ID программы: | ||
+ | wmic / | ||
+ | rem По вендору | ||
+ | wmic / | ||
+ | rem По имени программы | ||
+ | set /P PROG=Введите точное название программы (например, | ||
+ | wmic / | ||
+ | pause | ||
+ | </ | ||
+ | |||
+ | ===== Прочее ===== | ||
+ | ==== Узнать ОС и её разрядность на компьютере в домене ==== | ||
+ | <code dos> | ||
+ | @echo off | ||
+ | cls | ||
+ | set /P COMP=Введите имя компьютера: | ||
+ | wmic / | ||
+ | pause | ||
+ | </ | ||
+ | |||
+ | ==== Вывести температуру процессора ==== | ||
+ | Запускать с повышенными привилегиями | ||
+ | <code dos> | ||
+ | @echo off | ||
+ | for /f " | ||
+ | echo %HunDegCel: | ||
+ | pause | ||
+ | </ | ||
+ | ==== Список процессов на удалённом компе ==== | ||
+ | <code dos> | ||
+ | @echo off | ||
+ | set /P COMP=Введите имя компьютера: | ||
+ | tasklist /S %COMP% | ||
+ | pause | ||
+ | </ | ||
+ | |||
+ | ==== Прибить удалённый процесс ==== | ||
+ | <code dos> | ||
+ | @echo off | ||
+ | set /P COMP=Введите имя компьютера: | ||
+ | set /P PROC=Введите имя процесса, | ||
+ | taskkill /S %COMP% /F /IM %PROC% /T | ||
+ | </ | ||
+ | |||
+ | ==== Вызвать синий экран на удалённой машине ==== | ||
+ | <code dos> | ||
+ | @echo off | ||
+ | title BSOD | ||
+ | set /P COMP=Введите имя компьютера: | ||
+ | wmic / | ||
+ | </ | ||
+ | |||
+ | ==== Узнать версию IE ==== | ||
+ | <code dos> | ||
+ | reg query " | ||
+ | </ | ||
+ | |||
+ | ===== Файловые операции ===== | ||
+ | ==== Синхронизация определённой папки со множества компьютеров домена в одну папку на сервере ==== | ||
+ | Архитектура решения определялась тем, что некоторые клиентские машины сидят в защищённой сети, что делает невозможным сбор логов с сервера, | ||
+ | |||
+ | === Реализация === | ||
+ | Сделана политика " | ||
+ | |||
+ | Для того, чтобы этот велосипед работал, | ||
+ | |||
+ | Строка запуска скрипта: | ||
+ | <code dos> | ||
+ | \\domain.ru\netlogon\nircmd.exe exec hide \\domain.ru\netlogon\someplatform-logs-sync.cmd | ||
+ | </ | ||
+ | |||
+ | Сам скрипт (ключи после /MIR, полагаю, | ||
+ | <code dos> | ||
+ | SET destination =" | ||
+ | robocopy " | ||
+ | </ | ||
+ | |||
+ | Вариант на Powershell, брошен в связи с тем, что скрыть выполнение скриптов от пользователя без привлечения дополнительных программ всё равно не вышло: | ||
+ | <code powershell> | ||
+ | %SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -file " | ||
+ | </ | ||
+ | |||
+ | <code powershell> | ||
+ | $destination = " | ||
+ | |||
+ | New-Item -Path $destination\$env: | ||
+ | robocopy " | ||
+ | </ | ||
+ | ==== Полная резервная копия одной папки в другую с меткой времени ==== | ||
+ | <code dos> | ||
+ | SET source=%userprofile%\sourcefolder | ||
+ | SET destination=%userprofile%\destinationfolder | ||
+ | |||
+ | REM Выведет ГГГГ-ММ-ДД_чч-мм-сс | ||
+ | SET mark=%date: | ||
+ | SET backupfolder=%destination%\backup_%mark% | ||
+ | |||
+ | robocopy %source% %backupfolder% /MIR | ||
+ | </ | ||
+ | |||
+ | ==== Синхронизация папок с сетевого хранилища на USB-диск + ведение лога ==== | ||
+ | <code powershell> | ||
+ | $letter = E: | ||
+ | $address = " | ||
+ | $mark = get-date -UFormat " | ||
+ | |||
+ | ROBOCOPY \\$address\Distr $letter\Distr /MIR /XO /TEE /NP / | ||
+ | ROBOCOPY \\$address\Doc $letter\Doc /MIR /XO /TEE /NP / | ||
+ | ROBOCOPY \\$address\English $letter\English /MIR /XO /TEE /NP / | ||
+ | ROBOCOPY \\$address\music $letter\music /MIR /XO /TEE /NP / | ||
+ | ROBOCOPY \\$address\photo $letter\photo /MIR /XO /TEE /NP / | ||
+ | # Без папки xynoreport | ||
+ | ROBOCOPY \\$address\Upload $letter\Upload /XD synoreport /MIR /XO /TEE /NP / | ||
+ | ROBOCOPY \\$address\video $letter\video /MIR /XO /TEE /NP / | ||
+ | </ | ||
+ | |||
+ | ==== Проверка контрольных сумм ==== | ||
+ | Используется [[https:// | ||
+ | <code dos> | ||
+ | rem Сгенерировать | ||
+ | fciv.exe -add G: | ||
+ | rem Проверить | ||
+ | fciv.exe -v -sha1 -xml G: | ||
+ | rem Compute hashes: | ||
+ | fciv.exe c: | ||
+ | fciv.exe c:\ -r -exc exceptions.txt -sha1 -xml dbsha.xml | ||
+ | fciv.exe c:\mydir -type *.exe | ||
+ | fciv.exe c:\mydir -wp -both -xml db.xml | ||
+ | rem List hashes stored in database: | ||
+ | fciv.exe -list -sha1 -xml db.xml | ||
+ | rem Verifications: | ||
+ | fciv.exe -v -sha1 -xml db.xml | ||
+ | fciv.exe -v -bp c:\mydir -sha1 -xml db.xml | ||
+ | </ | ||
+ | [[https:// | ||
+ | |||
+ | Powershell: | ||
+ | <code powershell> | ||
+ | $usb = " | ||
+ | $nas = " | ||
+ | $mark = get-date -UFormat " | ||
+ | Get-ChildItem $usb -Recurse | get-filehash -Algorithm md5 | Export-Csv -NoTypeInformation -Delimiter ';' | ||
+ | Get-ChildItem $nas -Recurse | get-filehash -Algorithm md5 | Export-Csv -NoTypeInformation -Delimiter ';' | ||
+ | |||
+ | $usbrep = Import-Csv " | ||
+ | $nasrep = Import-Csv " | ||
+ | Compare-Object -ReferenceObject $usbrep -DifferenceObject $nasrep -Property Hash | ||
+ | # Если на экране будут какие-то хэши, значит, | ||
+ | pause | ||
+ | </ | ||
+ | |||
+ | Подсчёт контрольных сумм долгий процесс, | ||
+ | <code powershell> | ||
+ | $usb = " | ||
+ | $nas = " | ||
+ | $mark = get-date -UFormat " | ||
+ | Get-ChildItem $usb -Recurse -File | select Directory, | ||
+ | Get-ChildItem $nas -Recurse -File | select Directory, | ||
+ | |||
+ | $usbrep = Import-Csv " | ||
+ | $nasrep = Import-Csv " | ||
+ | Compare-Object -ReferenceObject $usbrep -DifferenceObject $nasrep -Property Length | fl | ||
+ | # Если на экране будут какие-то значения, | ||
+ | pause | ||
+ | </ | ||
+ | |||
+ | ===== Учётные записи ===== | ||
+ | ==== Создать пользователя и поместить его в группу администраторов ==== | ||
+ | <code dos> | ||
+ | net user userok P@ssw0rd! /add | ||
+ | net localgroup Администраторы userok /add | ||
+ | net localgroup Administrators userok /add | ||
+ | </ | ||
+ | |||
+ | ===== Справка ===== | ||
+ | ==== Переменные (FOR substitution modifiers) ==== | ||
+ | The magic variables %n contains the arguments used to invoke the file: %0 is the path to the bat-file itself, %1 is the first argument after, %2 is the second and so on. | ||
+ | |||
+ | Since the arguments are often file paths, there is some additional syntax to extract parts of the path. ~d is drive, ~p is the path (without drive), ~n is the file name. They can be combined so ~dp is drive+path. | ||
+ | |||
+ | %~dp0 is therefore pretty useful in a bat: it is the folder in which the executing bat file resides. | ||
+ | |||
+ | You can also get other kinds of meta info about the file: ~t is the timestamp, ~z is the size. | ||
+ | |||
+ | Look [[http:// | ||
+ | |||
+ | https:// | ||
+ | |||
+ | |||