- Устраняем ошибку Windows Script Host
- Исправляем ошибку Windows Script Host
- Вариант 1: Системное время
- Вариант 2: Служба обновлений
- Вариант 3: Некорректно установленные обновления
- Вариант 4: Нелицензионная Windows
- Заключение
- WSH скрипты на JScript — Урок 2
- Объект Wscript
- Пример 1 — Вывод сообщения
- Объект WshNetwork
- Пример 2 — Выводим имя пользователя, имя компьютера и сетевые диски
- Объект WshShell
- Пример 3 — Работа с приложением и реестром Windows
- Пример 4 – Работа с Word
Устраняем ошибку Windows Script Host
Исправляем ошибку Windows Script Host
Сразу стоит сказать о том, что если вы писали свой скрипт и при его запуске получили ошибку, то необходимо искать проблемы в коде, а не в системном компоненте. Например, вот такое диалоговое окно говорит именно об этом:
Такая же ситуация может возникнуть и в том случае, когда в коде имеется ссылка на другой скрипт, путь к которому прописан неверно либо данный файл вовсе отсутствует на компьютере.
Далее мы поговорим о тех моментах, когда при старте Windows или запуске программ, например, Блокнота или Калькулятора, а также других приложений, использующих системные ресурсы, появляется стандартная ошибка Windows Script Host. Иногда подобных окон может появиться сразу несколько. Случается такое после обновления операционной системы, которое может пройти как в штатном режиме, так и со сбоями.
Причины такого поведения ОС следующие:
- Неверно выставленное системное время.
- Сбой в работе службы обновлений.
- Некорректная установка очередного апдейта.
- Нелицензионная сборка «винды».
Вариант 1: Системное время
Многие пользователи думают, что системное время, которое показывается в области уведомлений, существует только для удобства. Это не совсем так. Некоторые программы, обращающиеся к серверам разработчиков или к иным ресурсам, могут работать некорректно или вовсе отказаться функционировать по причине расхождений в дате и времени. Это же касается и Windows с ее серверами обновления. В том случае, если будет расхождение в вашем системном времени и времени сервера, то могут наблюдаться неполадки с апдейтами, поэтому на это стоит обратить внимание в первую очередь.
- Нажимаем на часы в правом нижнем углу экрана и переходим по ссылке, указанной на скриншоте.
Далее идем на вкладку «Время по интернету» и жмем на кнопку изменения параметров. Обратите внимание, что ваша учетная запись должна обладать правами администратора.
В окне настроек устанавливаем галку в указанный на изображении чекбокс, затем в выпадающем списке «Сервер» выбираем time.windows.com и нажимаем «Обновить сейчас».
Если все пройдет успешно, то появится соответствующая надпись. В случае ошибки с превышением времени ожидания просто нажимаем кнопку обновления еще раз.
Теперь ваше системное время будет регулярно синхронизироваться с сервером времени Майкрософт и расхождения не будет.
Вариант 2: Служба обновлений
Windows – это очень сложная система, с множеством одновременно протекающих процессов, и некоторые из них могут повлиять на работу службы, отвечающей за обновление. Высокое потребление ресурсов, различные сбои и занятость компонентов, помогающих апдейту, «заставляют» службу совершать бесконечные попытки выполнить свою работу. Сам сервис также может сбоить. Выход здесь один: отключить его, а затем перезагрузить компьютер.
- Вызываем строку «Выполнить» сочетанием клавиш Win+R и в поле с названием «Открыть» пишем команду, которая позволит получить доступ к соответствующей оснастке.
В списке находим «Центр обновления», кликаем ПКМ и выбираем пункт «Свойства».
В открывшемся окне жмем кнопку «Остановить», а затем ОК.
После перезагрузки служба должна запуститься автоматически. Стоит проверить, так ли это и, если она все еще остановлена, включить ее тем же способом.
Если после выполненных действий ошибки продолжают появляться, то необходимо поработать с уже установленными обновлениями.
Вариант 3: Некорректно установленные обновления
Данный вариант подразумевает удаление тех обновлений, после установки которых начались сбои в Windows Script Host. Сделать это можно как вручную, так и с помощью утилиты восстановления системы. В обоих случаях необходимо вспомнить, когда «посыпались» ошибки, то есть после какой даты.
- Идем в «Панель управления» и находим апплет с названием «Программы и компоненты».
Далее переходим по ссылке, отвечающей за просмотр обновлений.
Сортируем список по дате установки, кликнув по шапке последней колонки с надписью «Установлено».
Выбираем нужное обновление, кликаем ПКМ и выбираем «Удалить». Также поступаем с остальными позициями, помня про дату.
- Для перехода к данной утилите кликаем правой кнопкой мыши по значку компьютера на рабочем столе и выбираем пункт «Свойства».
Далее переходим к «Защите системы».
Нажимаем кнопку «Восстановление».
В открывшемся окне утилиты жмем «Далее».
Ставим галку, отвечающую за показ дополнительных точек восстановления. Необходимые нам поинты будут называться «Автоматически созданная точка», тип – «Система». Из них необходимо выбрать ту, которая соответствует дате последнего обновления (или того, после которого начались сбои).
Жмем «Далее», ждем, пока система предложит перезагрузиться и выполнит действия по «откату» к предыдущему состоянию.
Обратите внимание, что в этом случае могут быть удалены и те программы и драйвера, которые были установлены вами после этой даты. Узнать, произойдет ли это, можно нажав кнопку «Поиск затрагиваемых программ».
Читайте также: Как восстановить систему Windows XP, Windows 8, Windows 10
Вариант 4: Нелицензионная Windows
Пиратские сборки «винды» хороши лишь тем, что они совершенно бесплатны. В остальном же такие дистрибутивы могут принести массу проблем, в частности, некорректную работу необходимых компонентов. В этом случае рекомендации, приведенные выше, могут не сработать, так как файлы в скачанном образе уже были сбойными. Здесь можно только посоветовать поискать другой дистрибутив, но лучше воспользоваться лицензионной копией Windows.
Заключение
Решения проблемы с Windows Script Host довольно просты, и с ними справится даже начинающий пользователь. Причина здесь ровно одна: некорректная работа инструмента обновления системы. В случае с пиратскими дистрибутивами можно дать следующий совет: пользуйтесь только лицензионными продуктами. И да, правильно пишите ваши скрипты.
WSH скрипты на JScript — Урок 2
Продолжаем изучение WSH скриптов на языке JScript, и сегодня мы поговорим более подробно об этом языке программирования. Рассмотрим наиболее распространенные объекты, методы, а также напишем примеры WSH скриптов, в которых будем использовать эти методы и объекты.
Напомню, что это уже вторая статья по изучению данной технологии и языка Jscript, и для того чтобы Вы лучше понимали, то, о чем мы сегодня будем разговаривать, прочитайте первую статью Основы языка JScript — написание WSH скриптов, если Вы ее еще не читали. Так как в ней рассматриваются основы WSH скриптов и в частности языка Jscript.
Теория у нас была ранее, поэтому перейдем сразу к практике и начнем уже с упомянутого объекта в прошлой статье это – Wscript.
Объект Wscript
Объект Wscript – это один их главных объектов в WSH. С помощью него можно создавать другие объекты, держать связь с ними, выводить информацию в виде всплывающего сообщения, а также он позволяет получить информацию о запущенном скрипте.
У данного объекта есть несколько свойств и методов, поговорим о них.
- Arguments – на основе его создается объект WshArguments, и в котором хранится все передаваемые параметры скрипту, в том числе, например, путь и название файла, который необходимо обработать;
- StdErr, StdIn, StdOut – с помощью этих свойств можно получить доступ к входным и выходным потокам, но только в том случае, если скрипт был запущен в консольном режиме.
Далее давайте рассмотрим основные методы данного объекта.
- Createobject – метод для создания и доступа к другим объектам;
- ConnectObject – метод соединения с объектом;
- DisconnectObject – метод отсоединения от объекта;
- Echo – вывод сообщений на экран;
- Sleep – метод для временной остановки сценария, т.е. скрипт останавливается «Засыпает» на определенный промежуток времени. Ему передается параметр времени, например, 5 секундам соответствует 5000.
Чтобы закрепить все выше перечисленное, давайте напишем простенький скрипт, который просто считает введенные параметры и выведет их на экран, а также мы остановим работу сценария на 5 секунд и еще разок выведем сообщение.
Для запуска скрипта во-первых, скопируйте код ниже в текстовый файл и сохраните с расширением .js. Для того чтобы запустить его с параметрами, откройте командную строку (cmd.exe), перейдите в каталог со скриптом (cd «путь к каталогу») и запустите его, например:
где 1 2 3 параметры, пишутся с пробелом.
Примечание! В остальных примерах мы не будем передавать параметры, поэтому можно просто запускать скрипт путем двойного клика. Если в будущем у Вас возникнет необходимость в качестве параметра передавать файл, можно запускать как из командной строки (например, test.js C:\folder\name_file), так и путем простого перетаскивания нужного файла на файл скрипта.
Пример 1 — Вывод сообщения
Идем далее, и на очереди объект WshNetwork.
Объект WshNetwork
WshNetwork – объект работы с ресурсами локальной сети. Он поможет в определение имени пользователя, компьютера, домена, в который входит компьютер, а также можно подключать сетевые диски и принтера.
Объект WshNetwork имеет следующие свойства:
- ComputerName — имя компьютера;
- UserDomain — имя домена;
- UserName — имя пользователя.
У данного объекта есть свои методы:
- AddPrinterConnection — используется для подключения локального порта к сетевому принтеру. В качестве параметров передаются:
AddPrinterConnection (имя локального порта, имя сетевого принтера [,сохранить в профиле true/false] [,имя пользователя] [,пароль])
- EnumNetworkDrives – возвращает список сетевых дисков и их пути. В первом элементе буква, во втором путь. Поэтому когда будем считывать эти данные циклом, шагом будет служить 2 элемента;
- EnumPrinterConnections — возвращает список подключенных принтеров;
- MapNetworkDrive – подключает сетевой ресурс. В качестве параметров можно передавать:
MapNetworkDrive (локальное имя диска, что подключаем, [сохранить в профиле true/false], [,имя пользователя] [,пароль])
- RemoveNetworkDrive — отключает подключенный сетевой диск. В качестве параметров:
RemoveNetworkDrive (что отключаем, [игнорируем, если используется true/false], [,удалить из профиля true/false])
- RemovePrinterConnection — отключает подключенный сетевой принтер. Параметры:
RemovePrinterConnection (что отключаем, [игнорируем, если используется true/false], [,удалить из профиля true/false])
- SetDefaultPrinter — делает заданный принтер принтером по умолчанию. Один единственный параметр:
Ну и как обычно пример, давайте выведем имя пользователя, имя компьютера и список всех подключенных сетевых дисках в виде сообщения.
Пример 2 — Выводим имя пользователя, имя компьютера и сетевые диски
Переходим к следующему объекту WshShell.
Объект WshShell
WshShell – служит для многих задач, например, запустить новый процесс, создать ярлык, работать с реестром, посылать нажатие клавиш. Мы его уже затрагивали в прошлой статье, но сейчас рассмотрим подробней.
- CurrentDirectory — хранится полный путь к текущему каталогу (из которого был запущен скрипт);
- Environment — содержит объект WshEnvironment, который обеспечивает доступ к переменным среды операционной системы;
- SpecialFolders — содержит объект WshSpecialFolders для доступа к специальным папкам Windows.
- AppActivate(какой процесс) – делает активным указанный процесс или программу с заданным названием, если конечно она запущена;
- CreateShortcut(путь) – создает, изменяет ярлыки windows.
- Popup – создает сообщение windows. Мы его уже затрагивали в прошлой статье. В качестве параметра можно указывать:
Popup(текст, [сколько будет висеть сообщение в сек] , [заголовок сообщения], [тип иконки]) ;
- RegDelete(название параметра или раздела) — для удаления параметра или раздела целиком в реестре;
- RegRead(название параметра или раздела) – читает значения реестра;
- RegWrite – запись значения в реестр. Могут передаваться следующие параметры:
RegWrite(куда пишем, значение [,тип значения]);
- Run(что именно) – запускает новое приложение;
- SendKeys(что посылаем) — посылает нажатие клавиш, то же самое, если бы Вы нажимали сами на клавиатуре.
Пример 3 — Работа с приложением и реестром Windows
Теперь пример. Он довольно простой и особо ничего не делает, но зато даст Вам понять принципы использования этих свойств и методов.
Сначала мы запустим блокнот, сделаем его активным, напишем что-нибудь путем посыла клавиш, затем закроем без сохранения, и напоследок выведем сообщение, в котором укажем, из какой папки был запущен наш скрипт и для освоения работы с реестром считаем одно значение (формат который используется в Вашей операционной системе).
По-моему довольно все просто и понятно!
В прошлой статье мы работали с excel, теперь давайте попробуем сделать что-нибудь в word.
Пример 4 – Работа с Word
Давайте просто создадим word документ, добавим таблицу и заполним ее некими данными. Вместо вымышленных данных можно использовать данные, например, из текстового файла, как это мы делали в прошлый раз, т.е. считать данные из текстового файла и записать их в таблицу word.
Я думаю на сегодня достаточно, надеюсь, эти примеры помогут Вам освоить WSH на Jscript. В дальнейшем мы продолжим изучение WSH и в частности Jscript, удачи!