Сценарии в Windows PowerShell. Как убрать ошибку сценария в Windows


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

Произошла ошибка сценария, что делать? – Прежде следует знать, что ошибка разделяется на 3 группы, каждая имеет свою причину и решение, так можно выделить: ошибку в браузере, в Windows или проблему с run.vbs. Каждая категория имеет свои особенности устранения, поэтому в зависимости от рода ошибки, нужно искоренять заболевание системы.

Что делать, если на этой странице произошла ошибка сценария в Internet Explorer?

На этой странице произошла ошибка сценария – одна из самых распространённых неисправностей, возникает обычно в браузере, особенно часто в IE, при этом версия не играет роли. Причиной проблемы становится либо сам ресурс, к которому вы пытаетесь получить доступ, либо неисправность со стороны пользователя.

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

Ошибка сценария как устранить, если проблема со стороны ресурса? – Увы, но повлиять на написанный код невозможно, обычно проблема в JavaScript или же VBScript. Единственный действенный и простой вариант заключается в удалении окна с ошибкой, таким образом вам не будем показываться уведомление, а страница обработается на столько, на сколько это возможно. Вам следует:

  1. Откройте Internet Explorer;
  2. Нажмите на кнопку меню и выберите «Свойства браузера»;

  1. Перейдите в раздел «Дополнительно»;
  2. Установите флаги возле опций «Отключить отладку сценариев»;
  3. Немного ниже снимите выделение с уведомления об ошибке.

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

Ошибка сценариев Windows

Совершенно другого рода проблема, так как ошибка сценариев Виндовс возникает после запуска системы и не относится к браузеру. При этом все версии Windows в зоне риска, что увеличивает вероятность столкнуться с неисправностью. Для отключения подобного уведомления следует установить корректный уровень доступа для реестра. Как убрать ошибку сценария при запуске?

  1. Нажмите Win + R и введите regedit;
  2. ПКМ по разделу HKEY_LOCAL_MACHINE, выберите свойство «Разрешения…»;

  1. Выберите среди пользователей пункт «Все» и снизу установите флаг возле «Полный доступ»;
  2. Нажмите на кнопку «Дополнительно»;

  1. Установите выделение на субъект «Все» и клик по «Изменить»;
  2. Снова задайте «Полный доступ» и перезагрузите ПК;
  3. Используйте сочетание Win + R и введите cmd, затем вставьте строку regsvr32 c:windowssystem32msxml.dll.

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

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

Как исправить ошибку сценария run.vbs?

Наряду с остальными сбоями в сценариях, можно столкнуться с вопросом - как исправить ошибку сценария run.vbs, при этом Windows сохраняет черный экран, без каких-либо активных элементов. Ошибка сценария Виндовс 7 в данном ракурсе возникает только из-за действия вирусов, они заменяют корректные параметры реестра на поддельные, чтобы в дальнейшем вредить и воровать.

Когда ошибка с run.vbs проявилась это указывает на то, что, скорее всего, вирус был обнаружен и удалён, а отсутствие рабочего стола только лишь последствие вредоносного воздействия. Для реабилитации системы необходимо выполнить:

  1. Зажмите Alt + Ctrl + Del;
  2. В диспетчере нажмите на «Файл»;
  3. Далее «Новая задача»;

  1. Используйте команду explorer.exe.

Такое действие поможет только лишь одноразово запустить процесс рабочего стола, проблема всё ещё сохранится после перезапуска системы. Для нормализации работы Windows необходимо заменить параметры, которые были испорчены, а находятся они в реестре:

  1. Win + R и regedit;
  2. Следуйте по пути HKEY_LOCAL_MACHINE-> SOFTWARE-> Microsoft-> Windows NT-> CurrentVersion-> Winlogon;
  3. Выделите параметр «Shell» при помощи двойного нажатия;
  4. В строке «Значение» укажите explorer.exe;

  1. Подобное действие нужно проделать и в другом параметре Userinit, для этого установите C:Windowssystem32userinit.exe.

В целом этого вполне достаточно для полноценного удаления вирусной активности с системы, но дополнительно можно при помощи поиска удалить все упоминания о run.vbs.

Также можно воспользоваться восстановлением системы, при условии наличия корректных точек.

Комплексный подход к удалению ошибки о некорректности сценариев позволяет полностью устранить проблему - не зависимо от причины и рода ее возникновения.

Если у Вас остались вопросы по теме «Как убрать ошибку сценария в Windows?», то можете задать их в комментариях


if(function_exists("the_ratings")) { the_ratings(); } ?>

Составление сценариев и их использование в процессе управления Windows - очень удобный метод, о котором не следует забывать. Возможно, не всегда ясно, как применять сценарии при наличии графического интерфейса. Может быть, непонятно, во что обойдется обучение написанию сценариев с точки зрения временных затрат и, как говорится, стоит ли овчинка выделки. Или, быть может, трудно разобраться в этих названиях - WSH, WMI, ADSI, в бесконечных объектах, методах, процедурах и функциях. При этом у многих администраторов возникает ощущение, что использованием сценариев можно без ущерба для себя пренебречь. Однако игнорировать возможности сценариев не следует. Быстро подготовленный сценарий значительно сэкономит и время, и силы. И чем больше подобных сценариев, тем, естественно, лучше.

В этой статье я хотела бы пояснить, когда следует использовать механизмы сценариев, рассказать о некоторых базовых концепциях их составления, а также дать ряд практических советов (см. врезку ). Кроме того, я представлю код на VBScript, с помощью которого решается некая общая задача, и прокомментирую его. Выбор пал на VBScript, поскольку Windows поддерживает этот язык. Windows поддерживает и JScript, но в предыдущих номерах журнала, как правило, использовался VBScript, так что есть смысл сохранять преемственность.

Почему именно сценарии?

Программирование сценария занимает больше времени, чем однократное выполнение задачи вручную, - даже если за дело берется опытный специалист по программированию на VBScript, который знает проблему досконально. Если же вы не профессионал, то написание и отладка сценария займет куда больше времени, чем использование графического интерфейса. Так зачем же тогда привлекать сценарий?

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

Если с помощью GUI решить задачу непросто, то, может быть, стоит обратиться к утилитам командной строки, которые поставляются вместе с операционной системой или в составе Resource Kit? Желательно использовать данные утилиты всегда, когда в этом есть смысл. Но в Windows 2000 набор программ с графическим интерфейсом не соответствует в точности набору утилит командной строки, и некоторые утилиты могут не удовлетворять в полном объеме решаемой задаче. Пакетные файлы не всегда хорошо справляются с ситуацией, когда входной поток данных должен быть изменен. Кроме того, утилиты командной строки и сценарии не являются взаимоисключающими методами. Можно написать сценарии, основанные на применении утилит командной строки и при этом свободные от недостатков последних.

Scripting Host

Прежде чем перейти к созданию сценария, поясню некоторые термины. Зная, что скрывается за словами scripting host, легче понять, как это может повлиять на проект сценария, допустимо ли будет использовать в сценарии выражения и т. п.

Scripting host (машина сценариев) - это операционная среда сценария. Windows не имеет понятия о VBScript: если в командной строке ввести строчку кода на VBScript, система выдаст сообщение об ошибке. Когда Windows сталкивается с файлом, расширение которого указывает на файл-сценарий, операционная система передает файл машине сценариев для интерпретации. Машина интерпретирует предложенный сценарий, а затем передает сообщения сценария (по сути - запрос на регистрацию данных) в операционную систему Windows для исполнения.

Windows поддерживает две машины сценариев: Microsoft Internet Explorer (IE) и Windows Script Host (WSH). Выбор той или иной машины влияет на используемые в сценарии возможности. Если применяется WSH, как чаще всего и бывает, то в сценарии могут использоваться объекты WSH, но не IE, и наоборот. Машина сценария не обязана понимать содержание всех мыслимых сценариев; воспринимается только сценарий, написанный на языке машины, и тот, который ею поддерживается. Для WSH и IE «понятными» являются языки VBScript и JScript.

Элементы сценария

Каждая строка сценария - это оператор, который сообщает компьютеру, что следует сделать. Исполняемые операторы обычно имеют форму типа «действие-объект»: описываются само действие и тот объект, над которым действие совершается. Сценарий может содержать условия, при наличии которых указанные операторы должны быть выполнены. Хост сценария интерпретирует строки кода слева направо и сверху вниз, так что можно, например, получив некоторые данные в строке 10, использовать их в 30-й строке. Исключение составляют процедуры. Процедуры (функции и подпрограммы) - это набор операторов, которые выполняются только при явном обращении к ним. В данном случае процедура сразу же начинает выполняться независимо от того, из какого места кода было обращение.

Исполняемые части сценария называются операторами. Неисполняемая часть сценария называется комментарием и должна предваряться апострофом (") или ключевым словом Rem. Например:

Rem Это комментарий

" Это комментарий

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

VBScript «понимает» четыре типа данных: числа (number); строки (string); дата и время (date and time); булевы данные (boolean). Примеры чисел - скажем 2 или 9458. Строки - это любая комбинация символов, заключенная в двойные кавычки, например «рыба» и «Это строка %@#^>». Дата и время должны находиться внутри символов решетки (#) и выглядеть соответственно. Так, например, #16 January 1968# и #1/01/02 11:45 PM# - нормальные с точки зрения VBScript данные. Булевы данные - TRUE или FALSE, например x

VBScript рассматривает перечисленные четыре типа данных как подмножество другого типа данных - variant, который может содержать данные любого вида. Таким образом, VBScript можно не сообщать, с данными какого типа вы работаете, но нужно иметь в виду, что некоторые задачи выполняются в Visual Basic (VB) и VBScript с описанными типами данных по-разному (правда, подобная ситуация может никогда и не встретиться). Группы однотипных данных называются массивами (array).

Для простоты работы с данными VBScript поддерживает еще два типа данных, не имеющих никакого начального значения (null-данные), которые можно присваивать переменным (variable) и константам (constant) сценария. Значения переменных в ходе выполнения программы могут меняться, но их имена при этом остаются прежними. Константы при выполнении сценария имеют только одно значение и изменяться не могут.

Передать данные в сценарий можно двумя способами. Во-первых, их в явном виде прописывают в теле программы. Например, «»igserversharedfolder»» - обычное использование в сценарии строковых данных для обозначения пути. Другой способ - передать нужные данные во входном потоке в сценарий. Кроме того, по ходу обработки сценарий может самостоятельно генерировать данные (например, вычислить дату двумя неделями позднее текущей), а затем использовать их.

Манипулировать данными можно с помощью операторов (operator) - символов, которые обычно применяются для обозначения математических функций. Какие-то операторы имеют более высокий приоритет, какие-то - более низкий, и это влияет на порядок вычисления выражений (expression). Выражение есть некоторое вычисление, в которое могут быть включены числа, переменные, строки, константы. В выражениях могут использоваться операторы. Например, выражение dInputDate + 2 = dNewDate означает, что к значению переменной dInputDate добавляется 2, и результат вычисления вновь присваивается переменной dNewDate.

Функции и подпрограммы

VBScript имеет набор встроенных функций, которые позволяют выполнять некоторые операции без подробного описания решаемой задачи. С помощью встроенных функций можно манипулировать числами, строками, значениями даты и времени, массивами. В состав VBScript также входят функции преобразования данных одного типа в другой. Например, VBScript обычно исходит из того, что число, допустим, 45, имеет тип «число», но при необходимости его можно рассматривать как данные строкового типа.

VBScript предусматривает создание собственных функций пользователя (user-defined function, UDF) для выполнения каких-то специфических задач. Например:

Function TestFunct TestFunct = Sqr(9) + 2 End Function

Пользовательская функция TestFunct работает со встроенной функцией Sqr для извлечения квадратного корня из 9 и добавления к полученному результату 2. UDF, как и встроенная функция, может использовать аргументы.

TestFunct UDF возвращает результат в основное тело программы. Подпрограмма выполняет некоторые действия, но ничего не возвращает в основной код в качестве результата. Программист может задействовать подпрограмму несколько раз, при необходимости использовать один и тот же участок кода, а повторно писать одно и то же лень. Подпрограмма

Sub AskUserName WScript.Echo _ ""Please type a username."" WScript.Quit End Sub

использует возможности объекта WScript для вывода на экран некоторого сообщения, после чего завершает свою работу. Функции и подпрограммы могут задействовать значения переменных, декларированных внутри основного кода сценария, или же использовать собственные переменные.

Объекты в сценарии

Объект (Object) представляет собой физическую или логическую часть вычислительной среды, например дисковод или имя учетной записи. Конечно, можно программировать, не прибегая к объектам, но большинство сценариев управления работает с объектами. Если используется WSH, VBScript может обращаться к объектам, изначально присущим WSH, например, представляющим файлы, каталоги, части реестра; VBScript также поддерживает объекты Windows Management Instrumentation (WMI) и Active Directory Service Interfaces (ADSI). Объекты WMI связаны с физическими и логическими частями вычислительной системы: например, адресами IP, файловыми системами, сетевыми адаптерами. ADSI-объекты представляют ресурсы службы каталогов: в частности, Active Directory (AD) или иные поддерживаемые каталоги, скажем Windows NT 4.0 SAM. Статические группы объектов одинаковой природы называются классами, а группы, описываемые пользователем, - библиотеками.

Объекты имеют свойства и методы. Объект определяется его свойствами (т. е. IP Address - это свойство объекта Network Card, а 12.4.21.197 - значение данного свойства). Методы - это действия, которые могут выполняться над объектом (Copy - один из методов объекта File). Не все объекты имеют методы. Свойства и методы используются при написании кода одинаково: сначала следует объект, затем ставится точка, далее название метода или свойства (например, ObjectName.PropertyName). Объекты могут содержать другие объекты. В частности, объект WSH WScript включает подчиненный объект WshArguments, который является набором аргументов, передаваемых при вызове файлу-сценарию. Для выделения первого элемента строки аргументов используется WScript.Arguments(0). Как было видно при обсуждении объектов WSH, формальное имя подчиненных объектов не совпадает с именем, используемым при обращении к ним в сценарии.

В следующий раз я расскажу о том, как применять полученные знания при создании сценариев управления.

Криста Андерсон - независимый автор и консультант журнала Windows NT Magazine. Ее последняя книга - «Mastering Local Area Networks». С ней можно связаться по адресу: [email protected] .

В следующей статье будут приведены более конкретные советы по программированию на VBScript, а сейчас ограничимся общими правилами, которых нужно придерживаться всегда:

  • строки сценария должны быть короткими: они легче читаются. VBScript допускает использование знака подчеркивания для разрыва строки, а конструкция If ...Then ... Else поможет избавиться от нагромождения логики в одной строке;
  • не скупитесь на комментарии. Сейчас вы еще помните, зачем нужна данная строка кода. Но вспомните ли вы об этом через полгода? А другой человек - разберется ли он без посторонней помощи в чужом коде? Убедитесь, что логика кода исчерпывающе объясняется в комментариях;
  • смешивайте регистр написания кода. Переменная oDiskSpace читается легче, чем odiskspace или ODISKSPACE. VBScript в большинстве случаев не зависит от регистра (единственное исключение - вычисление значения ASCII-символа);
  • при работе с Windows Script Host (WSH) следует использовать среду командной строки (command-line environment). WSH может исполняться в двух средах - в среде командной строки и в графической среде (по умолчанию). В первом случае вывод направляется в командное окно, если только программист не перенаправит поток данных в другое место. В графической среде вывод поступает в окна сообщений. Чаще всего используется командная среда. Некоторые операции в графической среде не работают, и если несколько строк кода генерирует вывод, то для каждой из них понадобится свое окошко сообщений. В результате работа сценария будет приостанавливаться до тех пор, пока оператор не нажмет кнопку ОК. Для исполнения сценария в командной среде следует воспользоваться одним из двух способов: предварять каждую команду сценария вызовом cscript, например: cscript getfree.vbs

    либо установить среду командной строки в виде среды по умолчанию:

    Wscript //h:cscript //s

  • присваивайте имена переменным в соответствии с типом представляемых данных (т. е. имена строковых переменных должны начинаться с s, объектных - с o). Подобная практика поможет при отладке кода. В ряде случаев при несоответствии типов данных объявленным переменным работа сценария будет протекать не так, как ожидается. А если тип данных ассоциируется с названием переменной, ошибки из-за несоответствия типов переменных и данных будут выявляться быстрее;
  • заранее и в явном виде описывайте переменные. Хотя переменные разрешено описывать неявно (просто присваивая им значения), их применение можно запретить. Для этого используйте утверждение Option Explicit в самом начале файла-сценария. С этого момента любая применяемая в коде программы переменная должна явно описываться оператором Dim, что позволит ограничить число ошибок из-за случайно или неверно набранных переменных;
  • пишите сценарии в текстовом редакторе. Не применяйте для этих целей текстовый процессор с последующим сохранением данных в редакторе.

В сценариях часто используются кавычки, и, если текстовый процессор так или иначе преобразует их, сценарий просто не будет работать.

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

Большинство похожих скриптов пишутся для удобства и автоматизации каких-либо действий на компьютере с ОС Windows. Представленные же ниже скрипты мало окажутся полезными (может мне так кажется), но они отлично подойдут для первоначального знакомства с "кодингом". Вы отлично проведете время, удивив как себя, так и знакомых чайников (не программистов), плюс это еще один хороший вариант .

Немного терминологии:

  • VBS - язык программирования для создания скриптов в ОС Windows, создается/редактируется в Блокноте Windows, имеет разрешение ".vbs". Думаю, продолжать не имеет смысла, ибо это мало о чем скажет, особенно новичкам. Интересующимся - .
  • BAT - пакетный файл, в народе просто "батник". Расширение файла ".bat". Дальше аналогично - .

Данных расширений (vbs, bat) файлы создаются во всеми известном Блокноте Windows (Notepad). Для большего удобства создания скриптов рекомендуется использовать усовершенствованный (скажем так) блокнот - Notepad++. Он удобен подсветкой синтаксиса большого количества языков программирования, если вам это мало о чем говорит, то скачайте и пишите в нем - ошибок сделаете меньше в коде, ну или будет их проще найти, чем в том же мало функциональном Блокноте Windows.

Для наглядности пример (слева - Блокнот Windows, справа - Notepad++):

Приступим

Если вы уже знакомы с VBS скриптами и батниками, то скорее всего нижеследующие примеры вам будут неинтересны, если же вы новичок, то для первоначального ознакомления - то, что нужно.

Научим компьютер здороваться

  1. Открываем Блокнот (или Notepad Plus Plus).
  2. Копируем в вставляем код:

    Set sapi=CreateObject("sapi.spvoice")
    sapi.Speak "Hello!"

  3. Обязательное условие: кавычки должны быть “такими”, «ёлочки» не подойдут, скрипт не будет обрабатываться и выйдет ошибка. Вместо слова "Hello" можете написать что угодно, даже по русски, при наличии русского голосового движка.
  4. Дальше выбираем Файл - Сохранить как - Тип файла - Все файлы - название.vbs
  5. Называйте файл как хотите, но не забудьте в конце прописать расширение - .vbs (пример - Privet.vbs).
  6. Теперь пробуйте проверить свой скрипт - запустите файл двойным щелчок мыши.

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

Теперь, сделаем следующее: пропишем данный скрипт в автозагрузку, а это означает то, что при запуске компьютера вам будет произнесено написанное в программе слово (слова), если как в примере, то будет говорить - "Hello" при каждом включении компьютера. Как это сделать?

Все просто, программу (скрипт) добавить в автозагрузку можно таким же образом, то есть через такой же VBS скрипт. Создаем файл в блокноте, копируем/вставляем (Ctrl+C/Ctrl+V) следующий код:

Dim vOrg, objArgs, root, key, WshShell
root = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\"
KeyHP = "Program"
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.RegWrite root+keyHP,"C:\Privet.vbs /autorun"

Изменяем путь до скрипта "говорилки", вот эту строчку - C:\Privet.vbs на свою. Прописываем где у вас лежит этот скрипт и как называется. Дальше сохраняем только что созданную мини программу в блокноте и запускаем. Все, теперь компьютер будет с вами здороваться пр каждом включении.

Открыть дисковод

  1. Открыть блокнот. Скопировать/Вставить следующий код:

    Set a = CreateObject("WMPlayer.OCX.7")
    Set b = a.CdromCollection
    Set c = b.Item(0)
    Set d = c.Eject

  2. Сохранить с расширением.vbs
  3. Запустить скрипт и откроется дисковод.

Есть более интересная модификация данного скрипта:

Set WMPlayer = CreateObject("WMPlayer.OCX.7")
do
WMPlayer.CdRomCollection.Item(0).Eject()
loop

В данном случае будет все время открываться-закрываться CD/DVD-привод, на ноутбуках в этом случае будет открываться после каждого его закрытия.

Внимание! Второй код (открытие-закрытие дисковода), некоторые антивирусы видят как вредоносную программу. Антивирус Касперского (в т.ч. и ) его видит именно так и уничтожает сразу же. В первом же случае (просто открытие дисковода) для антивирусных программ не является вредоносным скриптом.

Чтобы прекратить автоматически открывать-закрывать дисковод необходимо:

  1. Запустить диспетчер задач ( - Ctrl+Alt+Del).
  2. Перейти на вкладку "Процессы".
  3. Найти процесс wscript.exe - правая кнопка мыши - завершить процесс.

Игра

Интересная находка из Сети - игра на VBS. Необходимо угадать число от 0 до 100. Скрипт автоматически при запуске задает (разгадывает) число, которое вам необходимо угадать и ввести в специальном окошке, при неправильном ответе даются подсказки, например меньше или больше.

Ниже тот самый код который необходимо скопировать и вставить в блокнот, далее сохранить (расширение.vbs).

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

Set y = CreateObject("Scripting.FileSystemObject")
Set y = Nothing
Do
a = 0
u = 0
Randomize
Number = Int((RND*99)+1)
MsgBox "Я загадал число от 1 до 100, попробуй отгадать",64,"Угадайка"
Do
a = a + 1
c = InputBox("Угадай число" & vbCrLf & vbCrLf & "Попытка: " & a & vbCrLf & vbCrLf & "Чтобы посмотреть результаты введите число!" & vbCrLf & vbCrLf & "Для выхода оставьте поле пустым" & vbCrLf & vbCrLf,"Угадайка")
If c = "!" Then CreateObject("WScript.Shell").Run "notepad C:\Windows\Result.dll",3,True: Exit Do
If c <> "" Then
If IsNumeric(c) = True Then
If CInt(c) < Number Then MsgBox "Нет,это не " & c & ". Я загадал число больше",64,"Угадайка"
If CInt(c) > Number Then MsgBox "Нет,это не " & c & ". Я загадал число меньше",64,"Угадайка"
If CInt(c) = Number Then
Set y = CreateObject("Scripting.FileSystemObject")
MsgBox ("Количество попыток: " & a)
If MsgBox ("Правильно, это было число " & c & ". Начать заного?",36,"Угадайка") = 6 Then Exit Do Else WScript.Quit
End If
Else
MsgBox "Это не число!",16,"Угадайка"
a = a - 1
End If
Else
a = a - 1
l = MsgBox ("Ты ничего не ввел. Выйти из программы?",36,"Угадайка")
If l = 6 Then WScript.Quit
End If
Loop
loop

Ну и перед тем как переходить к батникам (.BAT) воспользуемся самым полезным VBS скриптом из всех перечисленных в этой статье.

Скрипт закрывающий wscript.exe

Сам скрипт:

Set TaskKill = CreateObject("WScript.Shell")
TaskKill.Run "TaskKill /f /im wscript.exe"

По сути он делает тоже самое, что чуть выше объяснялось в диспетчере задач, как например нельзя просто взять и закрыть надоедливый скрипт открывающий-закрывающий дисковод, а запустив данный скрипт все запущенные будут закрыты. Это как клин клином вышибают.

Немного познакомились с VBS скриптами и о том как их писать в блокноте, теперь рассмотрим несколько примеров использования BAT файлов (далее - батник).

Совсем простой батник состоящий всего из одной строки.

  1. Открываем Блокнот.
  2. Пишем следующий код:

    shutdown -s -t 1 -c -f

  3. Далее Файл - Сохранить как - нзвание.bat
  4. Обратите внимание на расширение файла, это уже не VBS скрипт, а батник, по этому в конце названия прописываем.bat (Пример compoff.bat).
  5. Запускаем только что созданный батник двойным щелчком мыши и компьютер выключится (Завершение работы).

Есть такой вариант кода:

shutdown -r -t 1 -c -f

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

Удаление обновлений

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

@echo
echo
echo Step 1: Delete Updates Telemetry
wusa /uninstall /kb:3068708 /quiet /norestart
wusa /uninstall /kb:3022345 /quiet /norestart
wusa /uninstall /kb:3075249 /quiet /norestart
wusa /uninstall /kb:3080149 /quiet /norestart

Таким образом можно удалить абсолютно любое обновление, даже назойливое KB971033 которое проверяет .

В Интернете встречается много различных скриптов, якобы безвредных, но будьте осторожны, прежде чем пробовать непонятно какой скрипт, некоторые из них могут навредить, например - вносить изменения в реестр, а в случае каких ошибок система будет выдавать ошибки, в таком случае придется или Windows или сделать восстановление системы.

Можно выполнить сценарий из командной строки с помощью консольной версии WSH cscript.exe. Например, чтобы запустить сценарий, записанный в файле C:\Script\First.js, нужно загрузить командное окно и выполнить в нем команду

cscript C:\Script\First.js

В результате выполнения этого сценария в командное окно выведется строка "Привет!"(рис. 4.1 )

увеличить изображение Рис. 4.1. Результат выполнения First.js в консольном режиме (cscript.exe)

Запуск сценария из командной строки в графическом режиме

Сценарий можно выполнить из командной строки с помощью (оконной) графической версии WSH wscript.exe. Для нашего примера в этом случае нужно выполнить команду

wscript C:\Script\First.js

Тогда в результате выполнения сценария на экране появится нужное нам диалоговое окно (рис. 4.2 ).

увеличить изображение Рис. 4.2. Результат выполнения First.js в графическом режиме (wscript.exe)

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

Запуск сценария с помощью меню Пуск

Для запуска сценария с помощью пункта Выполнить (Run) меню Пуск (Start), достаточно написать полное имя этого сценария в поле Открыть (Open) и нажать кнопку Ok. В этом случае по умолчанию сценарий будет выполнен с помощью wscript.exe, т. е. вывод информации будет вестись в графическое диалоговое окно.

Запуск сценария с помощью Проводника Windows (Windows Explorer)

Самым простым является запуск сценария в окнах Проводника Windows или на рабочем столе - достаточно просто выполнить двойной щелчок мышью на имени файла со сценарием или на его значке (аналогично любому другому исполняемому файлу). При этом, как и в случае запуска с помощью меню Пуск (Start), сценарий по умолчанию выполняется с помощью wscript.exe.

Установка и изменение свойств сценариев

В случае необходимости для сценариев можно задавать различные параметры, влияющие на ход их выполнения. Для консольной (cscript.exe) и графической (wscript.exe) версий сервера сценариев эти параметры задаются по-разному.

Если сценарий запускается в консольном режиме, то его исполнение контролируется с помощью параметров командной строки для cscript.exe (см. табл. 4.1 ), которые включают или отключают различные опции WSH (все эти параметры начинаются с символов "//").

Таблица 4.1. Параметры командной строки для cscript.exe

Параметр Описание

Выключает пакетный режим (по умолчанию). При этом на экран будут выводиться все сообщения об ошибках в сценарии

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

Задает тайм-аут в секундах, т. е. сценарий будет выполняться nn секунд, после чего процесс прервется. По умолчанию время выполнения не ограничено

Выводит (по умолчанию) перед выполнением сценария информацию о версии и разработчике WSH

Подавляет вывод информации о версии и разработчике WSH

//H:CScipt или //H:Wscript

Делает cscript.exe или wscript.exe приложением для запуска сценариев по умолчанию. Если эти параметры не указаны, то по умолчанию подразумевается wscript.exe

Сохраняет установки командной строки для текущего пользователя

Выводит встроенную подсказку для параметров командной строки

Выполняет сценарий с помощью модуля, заданного параметром engine

Включает отладчик

Выполняет программу в отладчике

//Job:

Запускает задание с индексом JobID из многозадачного WS-файла (структура WS-файлов будет описана ниже)

Позволяет использовать при перенаправлении ввода-вывода с консоли кодировку Unicode

Например, команда

cscript //Nologo C:\Script\First.js

запустит сценарий First.js без информации о версии WSH.

Сценарий можно запускать с параметрами командной строки, которые указываются после имени этого сценария (процедура обработки таких параметров будет описана ниже, при рассмотрении объектов WshArguments,WshNamedиWshUnnamed). Например, команда

cscript //B C:\Script\First.js /a /b

запустит сценарий First.js в пакетном режиме, при этом /aи/bбудут являться параметрами этого сценария, а//B- параметром приложения cscript.exe.

Если сценарий запускается в графическом режиме (с помощью wscript.exe), то свойства сценария можно устанавливать с помощью вкладки Сценарий (Script) диалогового окна, задающего свойства файла в Windows (рис. 4.3 ).

Рис. 4.3. Установка свойств сценария First.js

После задания свойств сценария автоматически создается файл с именем этого сценария и расширением wsh, который имеет структуру наподобие ini-файла, например:

Path=C:\Script\First.js

Если дважды щелкнуть в Проводнике Windows по wsh-файлу или запустить такой файл из командной строки, то соответствующий сервер сценариев (wscript.exe или cscript.exe) запустит сценарий, которому соответствует wsh-файл, с заданными в секции Options параметрами.

При запуске сценариев с помощью wscript.exe для задания параметров командной строки сценария можно использовать технологию drag-and-drop - если выделить в Проводнике Windows несколько файлов и перетащить их на ярлык сценария, то этот сценарий запустится, а имена выделенных файлов передадутся ему в качестве параметров.

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

Сценарии можно писать в любом текстовом редакторе, главное, сохранить написанное в файле с расширением.ps1. Сценарий можно написать и в консоли, скопировав затем текст в редактор и сохранив. Между тем, в PowerShell уже есть интегрированная среда сценариев, упрощающая написание.

Это важно!

По умолчанию выполнение сценариев в системе запрещено. Это связано с соображениями безопасности, так как в сценариях могут содержаться блоки вредоносного кода.

Проверить, отключено ли у Вас выполнение сценариев, можно командой

Get-ExecutionPolicy
Проверка политики безопасности в Windows PowerShell

Если у Вас действует строгая политика безопасности уровня Restricted или AllSigned , то Вам придется сменить её командой

Set-ExecutionPolicy RemoteSigned

Теперь напишем наш первый сценарий. Для написания сценариев будем использовать Windows PowerShell ISE, окно с которым Вы уже видели на скриншоте выше. Наберем в верхнем окне какой-нибудь текст

Теперь запустим наш файл. Для этого перейдем в каталог с файлом командой

cd C:\

и запустим

.\primer

Обратите внимание, точка важна, так как она показывает, что файл нужно запускать из текущего каталога.


Пример выполнения сценария в Windows PowerShell

Переходить в каталог с файлом, конечно, не обязательно. Можно и просто прописать путь к файлу целиком.

Сценарий можно запустить и из обычной командной сроки Windows (не Windows PowerShell). Для этого перед путем к файлу сценария дописываем параметр powershell.exe . Например, в моем случае

powershell.exe C:\primer.ps1

Что касается кода, то сценарии, в общем-то, аналогичны функциям. Существенное отличие, которое нужно знать при написании сценариев, так это то, что формальные параметры нельзя задавать просто в круглых скобках. Для задания формальных параметров нужно воспользоваться специальной инструкцией Param . Эта инструкция должна располагаться на самом верху файла сценария (выше могут быть только пустые строки и комментарии).

Изменим наш файл primer так, как показано на рисунке ниже.


Формальные параметры в сценариях Windows PowerShell

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

Поскольку сценарии PowerShell во многом похожи на строки кода классических языков программирования, они так же оформляются комментариями. Комментарии в сценариях Windows PowerShell оформляются символом # .

# Это комментарий # Это тоже комментарий # в сценарии Windows PowerShell ##############################################

Итак, как Вы уже могли убедиться Windows PowerShell обладает собственным скриптовым языком. В поговорим о последнем типе команд.