Скрипты windows: Скрипты для ленивых Windows-админов / Habr – Пишем программы (скрипты) в Блокноте Windows

Скрипты для ленивых Windows-админов / Habr

Будучи какое-то время назад админом (ленивым), написал несколько скриптов, автоматизирующих рутину и позволяющих еще больше лениться. Админством я больше не занимаюсь, а скрипты выкладываю, может кому пригодятся.

1. Авто-установка описания компьютера локально и в AD

В компании был стандарт на наименование компьютеров, что-то вроде COMPUTERxxxx (xxxx — это цифра), соответсвенно Хелпдеску было сложно по имени человека найти компьютер для начальной диагностики и удаленного подключения, а объяснение рядовому пользователю как определить имя компьютера занимало много времени. Решение пришло в виде скрипта.

setcompdescr.zip

После запуска шерстит все компьютеры из указанных OU и устанавливает описание в зависимости от залогиненного пользователя.

* Скрипт должен запускаться от учетки, имеющей админские права на компьютерах и доступ на изменение описания компьютера в AD.
** Не корректно работает на Windows 2000, если залогиненый пользователь не локальный администратор, с Windows Vista не тестировался.

Перед запуском нужно настроить скрипт.

2. Авто-очистка «папки обмена»

Каждый отдел в компании имел свою папку, куда не имели доступ другие отделы. Для обмен информацией между отделами (презентации, текст, да и музыка) извращались как могли. Пришлось создать папку для обмена и скрипт, очищаюший ее, чтобы информация там не залеживалась.

clear_exchange_v2s.zip

Логика скрипта: файлы, со дня создания/модификации которых прошло 10 дней, помещаются в спец папку внутри папки обмена (_deletion_queue_), после чего из папки «на удаление», через 7 дней, файлы удаляются совсем.

Все настраивается переменными в скрипте.

3. Редирект «Избранного»

Microsoft предусмотрела редирект практически всего, кроме «Избранного». Почему — загадка. В компании было жесткое правило, чтобы все данные хранились на серверах. Потеря «Избранного», конечно, не смертельна, но неприятна. Поэтому я написал скрипт, который делает редирект «Избранного» в папку на сервере.

redirect_favorites.zip

PS. Скрипты писались «для себя», поэтому, перед использованием настройте и проверьте на чем-нибудь не важном 🙂

Скрипт настройки Windows 10 / Habr

Давно хотел поделиться своим скриптом по автоматизации настройки Windows 10 (на данный момент актуальная версия 18363), да все руки не доходили. Возможно, он будет кому-то полезен целиком или только его части. Конечно, будет проблематично описать все пункты настройки, но постараюсь выделить самое важное.

Если кому-то интересно, то добро пожаловать под кат.

Поддерживаемые версии


Основные функции

  • Отключить службы диагностического отслеживания
  • Множество твиков Проводника
  • Интерасктивная консоль
  • Удалить все UWP-приложения из всех учетных записей, кроме следующих…
  • Отключить компоненты
  • Создать задачу в Планировщике задач по очистке обновлений Windows
  • Создать задачу в Планировщике задач по очистке папки «$env:SystemRoot\SoftwareDistribution\Download»
  • Добавить папку в список исключений сканирования Защитника Windows
  • Отключить пользовательские службы
  • Создать ярлык старого формата для «Устройства и принтеры»
  • Импорт настроенного макета меню «Пуск» из заготовленного reg-файла
  • Открепить все ярлыки от начального экрана
  • Переопределить расположение папок «Рабочий стол», «Документы», «Загрузки», «Музыка», «Изображения», «Видео»
  • Обновить иконки рабочего стола, переменные среды и панель задач без перезапуска «Проводника»
  • Очень много другого

NB

  • PowerShell и PowerShell ISE должны запускаться с повышенными правами
  • Установить соответствующую политику запуска скриптов PowerShell
Set-ExecutionPolicy -ExecutionPolicy Bypass -Force

Использование

Чтобы запустить скрипт:
  • Скачайте актуальную версию
  • Проверьте, установлена ли кодировка файла на «UTF-8 с BOM»
или
  • Скопировать код целиком и вставить в PowerShell ISE

FAQ

Прочитайте внимательно код. Некоторые функции представлены только в качестве примера. Вы должны осознавать значение функций. Если вы не уверены в том, что делает код, не запускайте его.Большинство функций могут быть запущены на LTSB/LTSC-версиях, а также на более старых версиях Windows и PowerShell (не рекомендуется запускать на x86 системах).

Скриншоты

Настроенный макет меню «Пуск»
Интерактивная консоль

Скрипт

Github

Клиентские Windows приложения на JavaScript / Habr

Хочу рассказать про один интересный способ создания приложений на JavaScript с родным виндовым GUI.

Вообще, существует куча разных вариантов написания виндовых приложений на JavaScript:

  1. HTA и WSH — HTML Applications и Windows Script Host — это, вероятно, самые известные технологии. HTA фактически представляет собой HTML страницу с расширенными правами в системе — возможностью лазить в сеть, гадить в реестр, файловую систему и подключать к этим делам ActiveX. С использованием HTA сделаны многие компоненты самой Windows.
  2. .NET Framework — этому вообще по барабану, на чем вы пишете, лишь бы итогом был MSIL. Возможно, JScript.NET вместе с Windows.Forms могут вызвать у кого-то ощущение родного виндового интерфейса. Лично меня они совсем не радуют — ни визуально, ни скоростью.
  3. XULRunner — framework от Mozilla предлагает Gecko вместо IE, XpCOM вместо COM/ActiveX. Это всего за 20 мегабайт оверхеда.
  4. wxJavascript — известная кросс-платформенная библиотека wxWidgets теперь и для JavaScript. Все это благодаря JS-движку SpiderMonkey от Mozilla и стараниям одного бельгийца. Кстати, этот же уважаемый — автор mod_js для Apache.

Ввиду того, что все вышеописанное уныло, громоздко и требует изучения, предлагаю рассмотреть еще один вариант — WSO.

Цитируя автора:
WindowSystemObject (WSO) — это универсальный программный комплекс для обеспечения доступа к оконной подсистеме Windows на базе архитектуры COM, для создания оконных интерфейсов в программах, написанных на сценарных (скриптовых) языках, а также в программах, написанных на других языках и в других системах программирования. С помощью WSO можно легко создавать оконные интерфейсы на JScript, VBScript, Perl, Python.

После этих слов ничего, кроме огромного человеческого спасибо Александру Борисовичу Веретенникову, и не скажешь.

Опять цитата о возможностях WSO:

  • WSO обеспечивает полный доступ ко всем возможностям оконной системы, включая рисование в окнах и поддержку всех встроенных управляющих элементов Windows.
  • WSO поддерживает использование любых элементов ActiveX, таких как Internet Explorer или Windows Media Player.
  • WSO поддерживает работу со всеми популярными форматами графических файлов.
  • WSO доступен из любого языка программирования, поддерживающего COM-интерфейсы автоматизации.
  • Доступ к WSO осуществляется с помощью интуитивно понятной объектной модели, описанной в этом документе. Программисты, знакомые с оконным программированием для Windows, быстро обнаружат, что ничего нового им осваивать не нужно.
  • WSO обеспечивает полную поддержку обработки событий от оконных элементов.
  • WSO позволяет использовать символические имена констант, принятые в оконном программировании Windows, а не мучиться с их числовыми значениями.
  • WSO работает в любой современной версии Windows, а именно: 98SE, ME, NT 4, 2000, XP и 2003.


Все просто замечательно! Теперь единственное, что отделяет нас от родного GUI на JavaScript — это регистрация компонента WSO. Как известно, Windows требует регистрации в реестре COM/ActiveX компонентов перед их использованием. Это серьезное ограничение, так как нужны права администратора системы. Тем не менее, в Редмонде уже столкнулись с данной проблемой и, начиная с XP SP2, достаточно описать интерфейсы всех ActiveX в manifest приложения.
Итак, что нам нужно для сборки самостоятельной программы на JavaScript + WSO:
  1. Сам WSO.dll. Качаем и используем даже в коммерческих приложениях free of charge, но вознося хвалу Александру Борисовичу.
  2. Код программы на JavaScript. Примеры тут.
  3. Загрузчик app.exe, подключающий MS ScriptControl для интерпретации JS (фактически это аналог wscript.exe). Его нужно написать самостоятельно или взять готовый в конце статьи. В моем варианте это десять строк на Delphi — копипейст из статьи про ScriptControl.
  4. Манифест приложения app.exe.manifest — манифест, где нужно указать зависимость от компонента WSO, других ActiveX (если нужно) и заодно включить поддержку XP-шных тем оформления. Изготавливается вручную следующим образом:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity type="win32" name="client" version="1.0.0.0" /> <dependency> <!-- подключаем WSO --> <dependentAssembly> <assemblyIdentity type="win32" name="WSO.sxs" version="1.0.0.0" /> </dependentAssembly> </dependency> <dependency> <!-- поддержка тем оформления XP --> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="x86"/> </dependentAssembly> </dependency> </assembly>

  5. Манифест для WSO — WSO.sxs.manifest, описывающий интерфейсы ActiveX компонента. Этот манифест генерируется замечательной программой regsvr42.exe. Она перехватывает все записи, которые делаются в реестр при регистрации компонента, и сохраняет их в виде manifest. Аналогичную операцию нужно проделать для всех внешних компонентов, которые вы хотите использовать.

Вот, что получилось у меня: WSO_demo.zip (573 Kb) slil.ru | onlinedisk.ru | rapidshare.de.
Загрузчик demo.exe создает глобальный объект WSO и запускает функцию main() из файла main.js.
Экзешник, естественно, можно переименовать (не забывая про его manifest) и вставить иконку любым менеджером ресурсов.

Как сделать скрипт на компьютере самостоятельно

Опытные пользователи всегда пытаются упростить работу с ПК и наверняка захотят узнать, как сделать скрипт на компьютере и что это такое.

Что такое пакетный файл

Пакетный файл – это термин, который часто приходится слышать пользователям ПК. По сути, это способ делать вещи, не делая их на самом деле. Набор команд также известен как скрипт.

Следовательно, это документ сценария, используемый для автоматизации задач в операционных системах DOS, Windows и OS / 2.

Многим пользователям известен термин интерпретатор командной строки, известный как CMD или командная строка. Он принимает различные директивы в виде ввода с клавиатуры и обрабатывает их.

Пакетный документ играет роль посредника между пользователями и командной строкой. Элементы с форматом bat, cmd и btm содержат команды CMD. Во время запуска такого документа, директивы, записанные в нем, выполняются в интерпретаторе в последовательном порядке. В противном случае их нужно будет вводить вручную, построчно.

Зачем нужен скрипт

Скрипт экономит время пользователя. В противном случае нужно будет вводить одни и те же директивы снова и снова.

Например, можно запланировать выключение операционной системы через определенное время с помощью CMD. Когда будет создан нужный документ, достаточно будет лишь дважды щелкнуть по нему. Он запустится, и система выключится по истечении установленного времени.

Если разработчик хочет использовать командную строку на компьютере при установке программного обеспечения, он может сделать это, включив файл в установочные пакеты. В противном случае придется запускать команды вручную.

При создании пакетного элемента также можно включить циклы (for), условные операторы (if), управляющие операторы (go to) и т. д. Кроме того, есть возможность запустить один документ из другого с помощью функции call.

Основные bat команды

Полезно будет знать некоторые bat директивы, которые помогут создать базовые пакетные файлы:

  • Title используетсядляизменениятекстазаголовка, отображаемого в верхней части окна CMD.
  • Echo – отображает входной ряд как вывод. Желательно использовать опцию ON или OFF для ECHO, чтобы включить или выключить echo. Эта функция позволяет выводить на экране те директивы, которые выполняются.
  • Pause используется для остановки выполнения скрипта.
  • Exit – функция для выхода из интерпретатора.
  • Cls применяется для очистки экрана от всех команд.
  • :: – добавить комментарий. Командная строка игнорирует любой текст, написанный как комментарий.

Выше перечислено внутренние директивы, которые поставляются с ОС. Пакетный скрипт также может поддерживать внешние команды. Они добавляются при установке нового программного обеспечения в системе. Например, если на компьютере установлен Google Chrome, можно воспользоваться функцией «chrome» в окне CMD.

Все эти команды могут помочь создать простой bat-файл. Есть возможность улучшить свой скрипт, изучив больше функций из списка CMD.

Создание bat-скрипта в Windows

В Windows можно создать командный файл, используя шаги ниже или шаги, упомянутые в разделе командной строки MS-DOS. Если удобно использовать стандартные программы, можно воспользоваться любым текстовым редактором (например, Блокнот или WordPad) для создания пакетных документов.

Для того чтобы создать скрипт с расширением bat в блокноте, стоит выполнить следующие действия:

  1. Щелкнуть Пуск.
  2. Ввести Блокнот в поле «Выполнить» и нажмите Enter. Также можно использовать любой аналогичный редактор текстовых элементов, например Notepad ++.
  3. Когда Блокнот откроется, ввести следующие строчки или скопировать и вставить их.
  4. Щелкнуть «Файл», затем «Сохранить» и перейти в папку, в которой нужно сохранить. В качестве имени можно ввести test.bat. Если в версии операционной системы есть параметр «Сохранить как», выбрать «Все файлы», в противном случае он сохраняется как текстовый. Выполнив эти шаги, нажать кнопку «Сохранить» и выйти из блокнота.
  5. Чтобы запустить документ, следует дважды щелкнуть на него. Окно CMD откроется автоматически с желаемым выходом. После завершения выполнения, окно автоматически закрывается.
  6. Можно попробовать добавить функцию echo on в шаг 2, чтобы посмотреть, что происходит на каждой строчке.

Шаги для создания скриптов практически одинаковы, независимо от того, установлена версия Windows 10, 8.1, 7 или даже XP.

Стоит обратить внимание, что можно использовать расширение cmd вместо расширения bat.

Создание bat-файла в MS-DOS

Чтобы создать пакетный элемент в MS-DOS или командной строке Windows, важно выполнить следующие действия:

  1. Открыть командное окно MS-DOS или загрузить MS-DOS.
  2. В строке MS-DOS ввести: edit test.bat и нажать Enter.
  3. Если введено все правильно, появится синий экран редактирования.Блокнот
  4. После ввода этих строчек щелкнуть «Файл» и выбрать «Выход». Когда будет предложено сохранить элемент, нажать «Да». Пользователи, у которых нет мыши, могут выполнить эту же задачу, нажав Alt + F для доступа к меню, а затем X для выхода. Нажать Enter, чтобы сохранить изменения.
  5. Вернувшись к приглашению MS-DOS, ввести: test и нажать Enter, чтобы выполнить test.bat. Поскольку первая строчка представляет собой паузу, сначала будет предложено нажать клавишу. После этого документ запускается построчно. В этом случае будет произведено перечисление элементов в каталогах Windows и Windows \ system.

Полезно обратить внимание: если есть необходимость добавить больше строчек в пакетный элемент, достаточно ввести edit test.bat, чтобы открыть его для редактирования. Некоторые версии MS-DOS и загрузочных дискет могут не иметь директивы редактирования.

Если это так, нужно либо ввести edit.com, либо использовать функцию copy con.

Скрипт отключения компонентов Windows / Habr

Продолжаю серию статей по администрированию операционной системы Windows. В предыдущей статье работа велась с пакетами обновлений, а в этой с компонентами системы. Дополнительные компоненты расширяют функциональные возможности ОС, но многие из них попросту бесполезны для большинства пользователей. Я предлагаю удобный скрипт отключающий «ненужные» компоненты. Команды скрипта обращаются к средствам DISM и могут быть применимы как к установленной системе, так и к автономному образу. Скрипт определяет версию утилиты dism.exe и подставляет нужные команды. Реализовано ветвление по версии целевой ОС, таким образом что в одном скрипте можно указать отключаемые компоненты для разных версий Windows.

Отключение компонентов данным скриптом обратимо. Я делаю это главным образом для того, чтобы убрать из меню Пуск ссылки на ненужные мне программы. Здесь для примера указано по два компонента для каждой версии Windows, которые будут отключены. Тем, кто будет использовать данный скрипт в своей работе, необходимо дополнить его. Определите компоненты, которые вам не понадобятся и добавьте их отключение в скрипт. Путём нехитрых изменений, можно наоборот — включать компоненты. Для своих нужд Я оставляю только Internet Explorer, Media Player, Windows Search и .NET Framework 3.5.1. Последний отключён производителем в новых версиях Windows, с удалением файлов, и чтобы его включить у меня есть отдельный скрипт, о котором Я напишу позже.

Скрипт

@echo off
title Disabling features in Windows image

set _file=install.wim
set _img=Online
set _mnt=mount
set _tool=7
set _word=Wim

dism /English /LogLevel:1 /Get-Help | find "Version: 6.1" > nul || set _tool=8
if %_tool% GTR 7 set _word=Image

:pre_menu
cls
if not exist %_file% goto :version
dism /English /LogLevel:1 /Get-%_word%Info /%_word%File:%_file%
echo -------------------------------------------------------------------------------
if %ERRORLEVEL% NEQ 0 pause & exit
set /p _ind=Input index or press [Enter] for quit: || exit
if %_ind% EQU 0 goto :version
if %_ind% GTR 0 if %_ind% LEQ 24 goto :ind_menu
goto :pre_menu

:ind_menu
cls
dism /English /LogLevel:1 /Get-%_word%Info /%_word%File:%_file% /Index:%_ind%
echo -------------------------------------------------------------------------------
if %ERRORLEVEL% NEQ 0 pause & goto :pre_menu
choice /c abcdefghijklmnopqrstuvwxyz /n /m "Mount selected image? [m] "
if %ERRORLEVEL% EQU 13 goto :mount
goto :pre_menu

:version
dism /%_img% /English /LogLevel:1 /Get-Help | find "Image Version: 6.1" > nul && goto :disable-7
dism /%_img% /English /LogLevel:1 /Get-Help | find "Image Version: 6.3" > nul && goto :disable-9
dism /%_img% /English /LogLevel:1 /Get-Help | find "Image Version: 10" > nul && goto :disable-A
goto :unmount

:disable-7
cls
echo Getting list of features. Please wait...
dism /%_img% /English /LogLevel:1 /Get-Features /Format:Table > %TEMP%\features.txt
echo -------------------------------------------------------------------------------
set /a _num+=1
echo %_num% Disable: WindowsGadgetPlatform
call :state WindowsGadgetPlatform &&^
dism /%_img% /English /LogLevel:1 /Disable-Feature /FeatureName:WindowsGadgetPlatform /NoRestart
echo -------------------------------------------------------------------------------
set /a _num+=1
echo %_num% Disable: MediaCenter
call :state MediaCenter &&^
dism /%_img% /English /LogLevel:1 /Disable-Feature /FeatureName:MediaCenter /NoRestart
echo -------------------------------------------------------------------------------
del %TEMP%\features.txt
if not exist %_file% exit
goto :unmount

:disable-9
cls
echo Getting list of features. Please wait...
dism /%_img% /English /LogLevel:1 /Get-Features /Format:Table > %TEMP%\features.txt
echo -------------------------------------------------------------------------------
set /a _num+=1
echo %_num% Disable: Printing-Foundation-Features
call :state Printing-Foundation-Features &&^
dism /%_img% /English /LogLevel:1 /Disable-Feature /FeatureName:Printing-Foundation-Features /NoRestart
echo -------------------------------------------------------------------------------
set /a _num+=1
echo %_num% Disable: Windows-Defender-Default-Definitions
call :state Windows-Defender-Default-Definitions &&^
dism /%_img% /English /LogLevel:1 /Disable-Feature /FeatureName:Windows-Defender-Default-Definitions /NoRestart
echo -------------------------------------------------------------------------------
del %TEMP%\features.txt
if not exist %_file% exit
goto :unmount

:disable-A
cls
echo Getting list of features. Please wait...
dism /%_img% /English /LogLevel:1 /Get-Features /Format:Table > %TEMP%\features.txt
echo -------------------------------------------------------------------------------
set /a _num+=1
echo %_num% Disable: MicrosoftWindowsPowerShellV2Root
call :state MicrosoftWindowsPowerShellV2Root &&^
dism /%_img% /English /LogLevel:1 /Disable-Feature /FeatureName:MicrosoftWindowsPowerShellV2Root /NoRestart
echo -------------------------------------------------------------------------------
set /a _num+=1
echo %_num% Disable: NetFx4-AdvSrvs
call :state NetFx4-AdvSrvs &&^
dism /%_img% /English /LogLevel:1 /Disable-Feature /FeatureName:NetFx4-AdvSrvs /NoRestart
echo -------------------------------------------------------------------------------
del %TEMP%\features.txt
if not exist %_file% exit
goto :unmount

:state
findstr %1 %TEMP%\features.txt | find "Enable" > nul
exit /b

:mount
cls
md %_mnt%
dism /English /LogLevel:1 /Mount-%_word% /%_word%File:%_file% /Index:%_ind% /MountDir:%_mnt%
if %ERRORLEVEL% NEQ 0 rd %_mnt% & pause & exit
set _img=Image:%_mnt%
goto :version

:unmount
cls
if not %_img%==Online (
dism /English /LogLevel:1 /Unmount-%_word% /MountDir:%_mnt% /Commit
rd %_mnt%
)
set _img=Online
goto :pre_menu

Использование


Данный скрипт может отключать компоненты как в онлайн системе так и в автономном образе. Если в папке запуска отсутствует файл образа — install.wim, то скрипт выполняет отключение компонентов в полностью автоматическом режиме. Если в папке запуска присутствует файл образа — install.wim, то скрипт выполняет считывание из него информацию об имеющихся «индексах» и предлагает ввести номер. После этого отображается расширенная информация о выбранном «индексе» выдаётся запрос на монтирование. Нажатие любой клавиши приводит к возврату, а нажатие клавиши [m] запускает следующую цепочку действий: монтирование образа, отключение компонентов, размонтирование образа, возврат в меню выбора «индеска». После чего можно выбрать другой «индекс» для отключения компонентов. Выбор «индекса» под номером 0 запускает отключение компонентов на «живой» ОС.

Разбор кода


Вначале командой set происходит установка переменных. Можно изменить предполагаемое имя файла образа install.wim (например, на install.esd). Можно изменить имя папки монтирования или задать путь, если папка монтирования должна находится за пределами папки запуска. От установки «уровня» логирования, как в предыдущем скрипте по пакетам обновления, решил отказаться и напрямую прописал во всех командах информирование только об ошибках — /LogLevel:1. Также во всех командах добавил ключ /English чтобы все сообщения отображались на английском языке.

Скрипт может быть запущен на разных версиях ОС, и таким образом обращаться к разным версиям системы DISM, которые отличаются набором команд. Так, в версиях после 6.1 во всех командах, слово Wim заменено на Image, хотя и оставлены старые «наименования» команд для обратной совместимости. В самом начале работы скрипта определяется версия утилиты dism.exe и в дальнейшем во все команды подставляется нужное слово. Без определения версии можно было бы и обойтись, но данный функционал Я использую в своём скрипте по получению информации из образа Windows, поэтому просто не стал переписывать код.

:pre_menu


Предварительное меню. Получение основной информации о wim-файле с контролем ошибок. Если отсутствует файл образа, то запуск в режиме Online. Не нашел информацию о максимальном количестве «индексов» в одном образе и установил значение 24.

:ind_menu


Индексное меню. Получение расширенной информации о выбранном «индексе» в wim-файле с контролем ошибок. Предложение смонтировать «индекс».

:version


Определение версии целевой системы. Если находится необходимая строка, то осуществляется переход к указанной метке. Если строка не обнаруживается, то происходит размонтирование.

:disable-7 :disable-9 :disable-A


Метки целевых систем обслуживания. Я называю Windows 8.1 — девяткой, а Windows 10 — Windows A (кто в теме тот поймёт), поэтому такие имена у меток. Вначале данного блока происходит запрос состояния всех компонентов с сохранением в файл features.txt. В дальнейшем, чтобы ускорить процесс отключения и не пытаться отключить то, что и так отключено, происходит предварительная проверка состояния каждого компонента. В конце блока — удаление временных файлов и размонтирование.

:state


Проверка состояния компонента. Псевдо-функция, возвращающая результат по коду ошибки в глобальную переменную %ERRORLEVEL%. Строка с именем компонента ищется в файле features.txt и если находится и также обнаруживается слово «Enable», то сигнал к отключению.

:mount


Монтирование образа. Предварительно создаётся папка монтирования. Контроль ошибок. Изменяется переменная определяющая спецификацию образа, теперь указывает на путь к автономному образу.

:unmount


Размонтирование образа. Если выполнялось интерактивное обслуживание (/Online), то размонтировать не нужно. Возвращение переменных к исходным значениям.

Возможные проблемы


При обслуживании образа вышестоящей версии на системе нижестоящей версии возможны зависания и ошибки. То есть, не нужно пытаться на Windows 7 обрабатывать файл образа Windows 8.1 или 10. Также для успешного выполнения всех команд требуется отключить Контроль учётных записей — параметр EnableLUA установить в значение 0.

Вопрос


Отключаю все компоненты связанные с печатью и при этом мой принтер продолжает печатать, а сканер — сканировать. Предполагаю, что компоненты печати (например Printing-Foundation-Features и д.р.) используются для расширенных возможностей — например, для установки принтера доступным по сети. Так ли это?

wscript | Microsoft Docs

  • Время чтения: 5 мин

В этой статье

Сервер сценариев Windows предоставляет среду, в которой пользователи могут выполнять сценарии на различных языках, использующих разнообразные объектные модели для выполнения задач.Windows Script Host provides an environment in which users can execute scripts in a variety of languages that use a variety of object models to perform tasks.

СинтаксисSyntax

wscript [<scriptname>] [/b] [/d] [/e:<engine>] [{/h:cscript|/h:wscript}] [/i] [/job:<identifier>] [{/logo|/nologo}] [/s] [/t:<number>] [/x] [/?] [<ScriptArguments>]

ПараметрыParameters

ПараметрParameterОписаниеDescription
scriptnamescriptnameУказывает путь и имя файла скрипта.Specifies the path and file name of the script file.
b/bЗадает пакетный режим, при котором не отображаются предупреждения, ошибки сценариев или входные запросы.Specifies batch mode, which does not display alerts, scripting errors, or input prompts. Это противоположность /i.This is the opposite of /i.
/d/dЗапускает отладчик.Starts the debugger.
/e/eУказывает подсистему, используемую для выполнения скрипта.Specifies the engine that is used to run the script. Это позволяет выполнять сценарии, использующие расширение имени файла.This lets you run scripts that use a custom file name extension. Без параметра/e можно выполнять только скрипты, использующие зарегистрированные расширения имен файлов.Without the /e parameter, you can only run scripts that use registered file name extensions. Например, при попытке выполнить следующую команду:For example, if you try to run this command:
cscript test.admin
Появится следующее сообщение об ошибке: ошибка ввода: обработчик скриптов для расширения файла «. admin» отсутствует.You will receive this error message: Input Error: There is no script engine for file extension «.admin.»
Одним из преимуществ использования нестандартных расширений имен файлов является то, что оно защищает от случайного двойного щелчка сценария и выполнения чего-то, которое не нужно запускать.One advantage of using nonstandard file name extensions is that it guards against accidentally double-clicking a script and running something you really did not want to run.
Это не создает постоянную связь между расширением имени файла Admin и сценарием VBScript.This does not create a permanent association between the .admin file name extension and VBScript. Каждый раз при запуске скрипта, использующего расширение имени файла Admin, необходимо использовать параметр/e.Each time you run a script that uses a .admin file name extension, you will need to use the /e parameter.
/h: cscript/h:cscriptРегистрирует cscript. exe в качестве сервера скриптов по умолчанию для выполнения скриптов.Registers cscript.exe as the default script host for running scripts.
/h: WScript/h:wscriptРегистрирует WScript. exe в качестве сервера скриптов по умолчанию для выполнения скриптов.Registers wscript.exe as the default script host for running scripts. Это значение по умолчанию, если параметр /h опущен.This is the default when the /h option is omitted.
/i/iУказывает интерактивный режим, который отображает предупреждения, ошибки сценариев и входные запросы.Specifies interactive mode, which displays alerts, scripting errors, and input prompts.
Это значение по умолчанию и противоположное значение /b.This is the default and the opposite of /b.
/Задание: идентификатор<>/job:<identifier>Запускает задание, определяемое идентификатором в файле скрипта . WSF .Runs the job identified by identifier in a .wsf script file.
/лого/logoУказывает, что баннер сервера сценариев Windows отображается в консоли перед запуском скрипта.Specifies that the Windows Script Host banner is displayed in the console before the script runs.
Это значение по умолчанию и противоположное значение /nologo.This is the default and the opposite of /nologo.
/nologo/nologoУказывает, что баннер сервера сценариев Windows не отображается перед выполнением скрипта.Specifies that the Windows Script Host banner is not displayed before the script runs. Это противоположность /лого.This is the opposite of /logo.
/s/sСохраняет текущие параметры командной строки для текущего пользователя.Saves the current command prompt options for the current user.
/t: число<>/t:<number>Указывает максимальное время, в течение которого может выполняться скрипт (в секундах).Specifies the maximum time the script can run (in seconds). Можно указать до 32 767 секунд.You can specify up to 32,767 seconds.
Значение по умолчанию — без ограничения по времени.The default is no time limit.
/x/xЗапускает скрипт в отладчике.Starts the script in the debugger.
скриптаргументсScriptArgumentsЗадает аргументы, передаваемые в скрипт.Specifies the arguments passed to the script. Каждому аргументу сценария должна предшествовать косая черта (/).Each script argument must be preceded by a slash (/).
/?/?Отображает справку в командной строке.Displays Help at the command prompt.

ЗамечанияRemarks

  • Для выполнения этой задачи не требуются права, соответствующие учетным данным администратора.Performing this task does not require you to have administrative credentials. Таким образом, по соображениям безопасности ее рекомендуется выполнять от имени пользователя, не обладающего правами на администрирование системы.Therefore, as a security best practice, consider performing this task as a user without administrative credentials.
  • Чтобы открыть командную строку, на начальном экране введите cmd и щелкните командная строка.To open a command prompt, on the Start screen, type cmd, and then click command prompt.
  • Каждый параметр является необязательным; Однако нельзя указать аргументы скрипта без указания скрипта.Each parameter is optional; however, you cannot specify script arguments without specifying a script. Если не указать скрипт или какие-либо аргументы скрипта, WScript. exe выводит диалоговое окно Параметры сервера сценариев Windows , которое можно использовать для задания свойств глобальных скриптов для всех сценариев, выполняемых WScript. exe на локальном компьютере.If you do not specify a script or any script arguments, wscript.exe displays the Windows Script Host Settings dialog box, which you can use to set global scripting properties for all scripts that wscript.exe runs on the local computer.
  • Параметр /t предотвращает чрезмерное выполнение скриптов путем установки таймера.The /t parameter prevents excessive running of scripts by setting a timer. Когда время превышает указанное значение, Wscript прерывает работу обработчика скриптов и завершает процесс.When the time exceeds the specified value, wscript interrupts the script engine and ends the process.
  • Файлы сценариев Windows обычно имеют одно из следующих расширений имен файлов: . WSF, . vbs, . js.Windows script files usually have one of the following file name extensions: .wsf, .vbs, .js.
  • Если дважды щелкнуть файл сценария с расширением, которое не имеет связи, откроется диалоговое окно Открыть с помощью .If you double-click a script file with an extension that has no association, the Open With dialog box appears. Выберите Wscript или cscript, а затем выберите всегда использовать эту программу, чтобы открыть этот тип файлов.Select wscript or cscript, and then select Always use this program to open this file type. Этот файл регистрирует WScript. exe или cscript. exe в качестве сервера сценариев по умолчанию для файлов этого типа.This registers wscript.exe or cscript.exe as the default script host for files of this file type.
  • Можно задать свойства для отдельных скриптов.You can set properties for individual scripts. Дополнительные сведения см. в разделе Обзор сервера сценариев Windows .See Windows Script Host overview for more information.
  • Сервер сценариев Windows может использовать файлы скриптов . WSF .Windows Script Host can use .wsf script files. Каждый файл . WSF может использовать несколько обработчиков скриптов и выполнять несколько заданий.Each .wsf file can use multiple scripting engines and perform multiple jobs.
Дополнительная справкаAdditional references

Как писать скрипты для Windows?

Как правильно писать скрипты для сайтов, операционной системы или игр? В рамках данной статьи мы попробуем рассмотреть ответ на этот вопрос.

Как писать скрипты для Windows: общая информация

Для написания скриптов желательно обладать хотя бы минимальными знаниями в программировании. Если же вам что-то кажется непонятным, то восполнить пробел поможет статья-другая. Давайте первоначально определим, что собой представляет скрипт. Скрипт это алгоритм, который написан определенными языками программирования. Он хранится на компьютере пользователя и может взаимодействовать с определенными программами, файлами и системными настройками. Все это дает возможность значительно дополнить стандартные возможности, создать автоматизированного помощника, который сможет взять на себя часть работы.

Работа с браузерами

Работа с интернет-браузерами, пожалуй, является одним из наиболее легких занятий. Для написания скриптов на Java Script будет достаточно знания этого языка программирования и обычного блокнота. Однако и здесь могут быть свои недостатки. Каждый пользователь, у которого есть та же самая стандартная программа «Блокнот», легко может посмотреть, что собой представляет скрипт. Если у пользователя будут плохие намерения, а в коде уязвимость, то вполне могут появиться проблемы. При ответе на вопрос о том, как писать скрипты на Java Script стоит отметить, что для этого нужно просто изучить данный язык программирования. Чтобы создавать более сложные программы, можно использовать различные библиотеки. Однако для них потребуются и соответствующие расширения веб-обозревателей. При смене компьютерной техники пользователю придется осуществлять дополнительные настройки. При использовании сторонних разработок следует убедиться в  том, что созданный скрипт не будет отправлять данные пользователя на сторонние сервисы. Необходимо отметить, что у каждого интернет-браузера имеются свои определенные ограничения. Однако с их помощью в целом можно сделать все, что угодно. Зачем же их создают? Скрипты нужны для того, чтобы автоматизировать деятельность пользователя.

Работа с операционной системой Windows

Предположим, нам нужно поменять конфигурацию персонального компьютера. Для этого существует большой набор графических средств, но, к сожалению, все возможности они не охватывают. Поэтому приходится дополнительно создавать системные скрипты, которые имеют расширение .bat. Каждый пользователь, который работает за компьютером более-менее длительное время, наверняка встречался с такими файлами. Но как же писать скрипты для операционной системы Windows? Для этой цели нам понадобится стандартная программа «Блокнот». Для начала нужно создать новый текстовый файл. Необходимо записать в нем системные команды. После этого расширение файла нужно заменить на .bat. Затем останется только запустить данную разработку. Если все будет сделано правильно, команды будут успешно выполнены. В случае неграмотного написания кода или ошибок в лучшем случае ничего не произойдет. По этой причине лучше разбираться в том, что пишешь. Категорически не рекомендуется просто брать код и бездумно вставлять его. Это может привести к возникновению проблем в работе операционной системы. Повезет, если опасные операции будут осуществлены с гостевого аккаунта. Команда, выполненная от имени администратора, запросто может превратить ваш персональный компьютер в «кирпич».

А как обстоят дела с Linux? Стоит учитывать, что Windows – это далеко не единственная операционная система. Довольно популярной системой также является Linux. Как же писать скрипты в данной операционной системы? Скрипты здесь создаются при помощи оболочки или специального командного интерпретатора. Такой интерпретатор является интерфейсом между ядром операционной системы и пользователем. По сути, скрипт в Linux представляет собой простой файл, в котором  перечислены системные команды. Это одновременно удобно и просто. При этом оболочке обязательно нужно знать, какой файл необходимо обрабатывать. Она по умолчанию просто читает. Если нужно выполнить команду, то используется конструкция «#!». Ее нужно просто вставить перед командой. Все  скрипты в Linux имеют расширение .sh. Необходимо отметить, что при помощи скриптов можно делать множество довольно сложных вещей. Так, например, при помощи данного инструмента можно осуществлять резервное копирование файлов. В целом существует множество вариантов использования скриптов.

Пишем скрипты

Прежде всего, необходимо определиться со средой, в которой мы будем набирать код. Для этого почти всегда достаточно только «Блокнота». В этой стандартной программе не слишком удобно отображать строение конструкций. Здесь не подсвечиваются операторы и другие элементы. В качестве достойной альтернативы можно предложить программу под названием Notepad++. Пользователи, которые хорошо знают английский язык, наверняка сообразили, что это тот же «Блокнот», но обладающий расширенными возможностями. Это небольшая, но достаточно приятная разработка, которая в первую очередь ориентирована на программистов. Здесь можно включить настройку отображения практически всего, что есть. Также присутствует довольно удобный инструмент отображения кода и много других мелких приятных вещей, которые делают более комфортным процесс написания кода. В целом же можно дать множество различных ответов на вопрос, «где писать скрипты». Это могут быть и навороченные среды с множеством элементов отладки и эмуляторами. Достаточно только выбрать то, что вам по душе. Затем необходимо позаботиться о наличии знаний. В качестве основы вполне подойдет справка по выбранному языку программирования или команд ОС. Для более подробного изучения нужно будет почитать книги, в которых подробно излагаются все особенности обработки кода и машинной логики.

Сервисы для обучения в режиме реального времени

Если вас интересует процесс написания скриптов, то стоит рассмотреть возможность обучения при помощи информационных образовательных технологий. Как примерно выглядит такая «школа программистов»? Новичка по программе, составленной опытными разработчиками, ведут от легких моментов к сложным. Первоначально может быть изучено динамическое обновление данных, чтобы перейти в последующем к созданию сокет-серверов. Пользователь может без спешки проходить обучение, усваивая поэтапно максимальное количество информации. По этой причине, если возникнуть сложности, то вы легко сможете обратиться к ним за помощью. Если первый попавшийся сервис не удовлетворит все ваши потребности, то вы легко сможете попробовать что-то новое. Зачем же изучать их? Многих пользователей интересует вопрос, как писать скрипты для компьютерных игр. Однако это не единственное применение подобной возможности. Давайте же рассмотрим процесс написания скрипта. Предположим, вам нравится играть на каком-то определенном сайте. Увы, этот процесс предусматривает или вложение собственных средств, или длительное монотонное выполнение определенных действий. Если вы предпочитаете второй способ, то скрипты это как раз то, что вам нужно. Подобный подход может использоваться и в стационарных играх. Там существуют персонажи под управлением искусственного интеллекта. Чтобы сразиться с ними, можно создать свою версию искусственного интеллекта. Таким образом, вы можете устроить битву компьютера с самим собой. Скрипты могут успешно использоваться не только в компьютерных играх. Предположим, существует сайт какой-то серьезной организации. В данном случае максимальная поддержка коммуникации с клиентами является важным аспектом. Для этого можно добавить небольшую форму в виде скрипта, при помощи которой можно в онлайн-режиме получить консультацию специалиста. Возможностей использования скриптов существует большое количество.

Заключение

К сожалению, в рамках одного обзора достаточно сложно передать, как же правильно писать скрипты. Конечно, можно использовать общие рекомендации по оптимизации кода и так далее, но действительно понять, что все это означает, вы сможете только на практике. Только поиск оптимальных решений и опыт смогут помочь вам в реализации программ таким образом, чтобы они выполняли свои функции с минимальными трудозатратами. Вообще в программировании многое зависит от практики. Нужно постоянно учиться чему-то новому, самосовершенствоваться и думать о том, как лучше решить поставленную задачу.

 

Leave a comment