Создание своего скрипта автозапуска при загрузке компьютера.

Создание своего скрипта автозапуска при загрузке компьютера. Компьютер

Что вам нужно для начала

Первое, что надо сделать — убедиться, что Windows Scripting Host у вас есть.
В состав W2K он входит изначально. Если вы используете Windows 98 или Internet
Information Server 4.0, или если вы устанавливали Option Pack для Windows NT 4 и
для Windows 95, он у вас точно есть.

В случае Windows 95 все усложняется, и
Windows Scripting Host придется скачивать с сайта Microsoft (msdn.microsoft.
com/ scripting). Напишите в командной строке wscript. Если появилось диалоговое
окно с надписью, отличной от «File not found», все в порядке.

Microsoft не поставляет визуального редактора скриптов WSH. Но Notepad вполне
годится.

Wsh и active directory service interfaces (adsi)

Active Directory работает под Windows 2000. Но клиентские приложения, в нашем
случае — скрипты, могут быть запущены и из-под Windows 95, Windows 98 или
Windows NT 4.0. Для всех этих ОС существуют клиентские компоненты, которые, как
и важную дополнительную информацию, можно получить с WWW-сайта MSDN (см. адрес
выше).

Теперь, когда у вас есть загрузочный скрипт, осталось понять, зачем он вам
нужен? Представьте, что вам нужно создать 5000 учетных записей пользователей
вашей компании, причем, как обычно, вчера! Нет проблем! Сейчас мы покажем, как
создавать группы пользователей и учетные записи пользователей Windows NT, и как
вносить нужных пользователей в нужные группы.

Автоматизация работы с использованием windows scripting host

Помните ВАТ-файлы DOS? Это было прекрасное средство автоматизации
повторяющихся задач. Windows, увы, не предложила эквивалентной замены, а
средства сторонних разработчиков не прижились по различным причинам. Но
положение, похоже, может исправиться.

Здесь мы обсудим некоторые преимущества Windows Scripting Host.

Автоматически запускать скрипт при входе в windows

Если у вас уже есть скрипт:

Чтобы назначить сценарий входа пользователю или группе

  • Откройте Управление компьютером.
  • В дереве консоли щелкните Пользователи.

Где? Системные инструменты / Локальные пользователи и группы / Пользователи

  • Дважды щелкните пользователя, которому вы хотите назначить сценарий входа.
  • Нажмите вкладку Профиль.
  • В поле «Сценарий входа» введите путь и имя сценария входа, который вы хотите назначить этому пользователю, и нажмите кнопку «ОК».

Еще вот удобное «HowTo» от Microsoft

Создание сценариев входа

Вы можете использовать сценарии входа в систему, чтобы назначать задачи, которые будут выполняться, когда пользователь входит в систему на определенном компьютере. Сценарии могут выполнять команды операционной системы, устанавливать системные переменные среды и вызывать другие сценарии или исполняемые программы. Семейство Windows Server 2003 поддерживает две среды сценариев: командный процессор запускает файлы, содержащие команды пакетного языка, а Windows Script Host (WSH) запускает файлы, содержащие команды Microsoft Visual Basic Scripting Edition (VBScript) или Jscript. Вы можете использовать текстовый редактор для создания сценариев входа. Некоторые задачи, обычно выполняемые сценариями входа в систему:

  • Сопоставление сетевых дисков.
  • Установка и настройка принтера по умолчанию для пользователя.
  • Сбор информации о компьютерной системе.
  • Обновление вирусных сигнатур.
  • Обновление программного обеспечения.
  • В следующем примере сценарий входа в систему содержит команды VBScript, которые используют Active Directory
  • Сервисные интерфейсы (ADSI) для выполнения трех общих задач, основанных на членстве пользователя в группе:

Он сопоставляет диск H: с домашним каталогом пользователя, вызывая метод MapNetworkDrive объекта сети WSH в сочетании со свойством UserName объекта сети WSH. Он использует объект ADSI IADsADSystemInfo для получения отличительного имени текущего пользователя, которое, в свою очередь, используется для подключения к соответствующему объекту пользователя в Active Directory. Как только соединение установлено, список групп, членом которых является пользователь, извлекается с использованием атрибута memberOf пользователя. Многозначный список имен групп объединяется в одну строку с помощью функции Join VBScript, чтобы упростить поиск имен целевых групп.

Если текущий пользователь является членом одной из трех групп, определенных в верхней части сценария, сценарий сопоставляет диск G: пользователя с общим диском группы и устанавливает принтер по умолчанию для пользователя в качестве принтера группы. Чтобы создать пример сценария входа

  • Откройте Блокнот.
  • Скопируйте и вставьте или введите следующее:

    Const ENGINEERING_GROUP     = "cn=engineering"
    Const FINANCE_GROUP         = "cn=finance"
    Const HUMAN_RESOURCES_GROUP = "cn=human resources"
    
    Set wshNetwork = CreateObject("WScript.Network")
    wshNetwork.MapNetworkDrive "h:",
    "\FileServerUsers" & wshNetwork.UserName
    
    Set ADSysInfo = CreateObject("ADSystemInfo")
    Set CurrentUser = GetObject("LDAP://" &
    ADSysInfo.UserName)
    strGroups = LCase(Join(CurrentUser.MemberOf))
    
    If InStr(strGroups, ENGINEERING_GROUP) Then
    
        wshNetwork.MapNetworkDrive "g:",
        "\FileServerEngineering"
        wshNetwork.AddWindowsPrinterConnection
        "\PrintServerEngLaser"
        wshNetwork.AddWindowsPrinterConnection
        "\PrintServerPlotter"
        wshNetWork.SetDefaultPrinter
        "\PrintServerEngLaser"
    
    ElseIf InStr(strGroups, FINANCE_GROUP) Then
    
        wshNetwork.MapNetworkDrive "g:",
        "\FileServerFinance"
        wshNetwork.AddWindowsPrinterConnection
        "\PrintServerFinLaser"
        wshNetWork.SetDefaultPrinter
        "\PrintServerFinLaser"
    
    ElseIf InStr(strGroups, HUMAN_RESOURCES_GROUP) Then
    
        wshNetwork.MapNetworkDrive "g:",
        "\FileServerHuman Resources"
        wshNetwork.AddWindowsPrinterConnection
        "\PrintServerHrLaser"
        wshNetWork.SetDefaultPrinter
        "\PrintServerHrLaser"
    
    End If
    
  • В меню Файл выберите Сохранить как.

  • В разделе Сохранить в выберите каталог, соответствующий общей папке Netlogon контроллера домена (обычно SystemRoot SYSVOL Sysvol DomainName Scripts, где DomainName — полное доменное имя домена).
  • В поле Тип файла выберите Все файлы.
  • В поле «Имя файла» введите имя файла, затем .vbs и нажмите «Сохранить». WSH использует расширение .vbs для идентификации файлов, содержащих команды VBScript.

Выключение и перезапуск

Итак, самая простая операция выключения вашего компьютера. Открываем блокнот, прописываем:

shutdown -s -t 0

Сохраняем файл, как *.cmd (*- имя вашего файла, например shutdown.cmd) и не забудьте в типе выбрать “все файлы”. Всё, исполняемый файл по запуску выключит ваш компьютер. “-s”, в данном случае означает выключение, замените на “-r” — получите перезагрузку. “-t” — таймер, у нас он установлен на 0 секунд, но если установить на 60 — получите выключение через 60 секунд.

Выполнение сценариев powershell по расписанию

Тут все просто, если вы хотите средствами групповой политики запускать скрипты PowerShell по расписанию, то вам нужно создать задание в шедуллере. Для этого есть ветки GPO:

Указываем в задании нужное время, имя и сетевой путь до скрипта.

Как видите все просто. С вами был Иван Семин, автор и создатель IT портала overcomp.ru.

Добавление процессов

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

Добавлять таким образом можно не только утилиты, но и просто сервисы. Только в верхней строчке нужно выбрать подходящий тип, если он есть, а также вписать нужную команду. Главное — знать её.

Запуск powershell скрипта в автозагрузке сервера

Открываем оснастку «Управление групповой политикой» и создаем на нужном уровне вашей иерархии организационных подразделений, новую политику, в моем примере, это будет «Добавление баз 1С». Переходим к ее редактированию.

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

Конфигурация компьютера — Политики — Конфигурация Windows — Сценарий (запуск/завершение) (Computer Configuration — Policies — Windows Settings — Scripts (Startup/Shutdown)

Тут вы увидите два возможных варианта «Автозагрузка» и «Завершение работы»

Далее вы открываете пункт «Автозагрузка», переходите на вкладку «Сценарий PowerShell» и нажимаете кнопку «Добавить». Через окно «добавление сценария» откройте папку «Startup» и скопируйте туда ваш скрипт. Теперь данный файл будет частью папки Sysvol и располагаться в конкретном GPO объекте.

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

Еще есть ряд нюансов при использовании выполнения скриптов PowerShell средствами групповой политики:

  1. Во первых по умолчанию в Windows есть 5-ти минутная задержка выполнения скриптом, как ее отключать я рассказывал можете почитать вот тут.
  2. Если у вас в локальной сети присутствуют операционные системы по типу Windows Server 2008 или ниже, то там есть подводные камни в виде выполнения неподписанных скриптов и во вторых в старой версии PowerShell

Хочу отметить, что начиная с Windows Server 2022 R2, Windows 8.1 и выше, все запускаемые сценарии PowerShell через GPO работают в режиме Bypass, что подразумевает игнорирование политики Set-ExecutionPolicy. Но если у вас есть более старые клиенты, то вы можете пойти вот таким путем:

Вы можете явно указать исполняемый файл PowerShell, для этого в политике откройте вкладку «Сценарии», нажмите добавить. В имя сценария введите путь до файла powerShell, это:

%windir%System32WindowsPowerShellv1.0powershell.exe

В параметрах сценария введите вот такие ключи и сетевой путь до скрипта PowerShell.

-Noninteractive -ExecutionPolicy Bypass –Noprofile -file \root.overcomp.ruSysVolroot.overcomp.ru Policies{2B79FA3E-CB2F-4D15-A446-3DBBF887CD40} MachineScriptsStartupAdd-Base-1C.ps1

Еще для подстраховки вы можете включить параметр GPO

Запуск powershell скрипта для пользователя

Чтобы применить к пользователю ваш скрипт, вам необходимо в объекте групповой политики открыть вот такую ветку:

Использование wsh и wmi для создания logon-скриптов

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

Листинг 2

Ищем файлы

Ещё одна простая задача, реализуемая на PowerShell — поиск файлов в директории. В данном случае рассмотрим поиск log-файлов:

Get-Childitem C:Windows*.log

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

Get-ChildItem C:Windows* -Include *.log -Recurse -Force

Это чуть более правильная и полная запись, где “Include” — указывает на искомую часть, “Recurse” — на поиск во вложенных каталогах, “Force” — поиск включает в себя системные и скрытые файлы.

Методы запуска скрипта powershell через gpo

Существует несколько сценариев позволяющих вам применять к вашим объектам нужные скрипты:

  1. Скрипт применяется в автозагрузке системы, в момент загрузки операционной системы
  2. Скрипт отработает во время входа или выхода пользователя из системы
  3. Ну и запуск скрипта по расписанию, такое то же имеет место быть

Находим данные

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

Add-Type -AssemblyName System.Windows.Forms[Windows.Forms.PowerStatus].GetConstructor(‘NonPublic, Instance’, $null, [Type[]]@(), $null ).Invoke($null)

Архитектура процессора удалённого компьютера:

[PSObject].Assembly.GetType( ‘System.Management.Automation.PsUtils’).GetMethod(‘GetProcessorArchitecture’, [Reflection.BindingFlags]40).Invoke($null, @())

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

Объекты wsh

В поставку Windows Scripting Host входят 4 объекта: Wscript, WshShell,
WshNetwork, и FileSystemObject.

Каждый объект, естественно, имеет набор собственных методов и свойств.

Объект Wscript позволяет скриптам «познать самих себя». Вдобавок этот объект
позволяет скриптам запускать приложения и управлять ими. Основные свойства и
методы этого объекта перечислены в таблице 1.

Отсрочка

В Убунту есть также прекрасная возможность делать отсрочку включения — прямо как на современных духовых шкафах или мультиварках. Она делается с помощью введения небольшого дополнения к тексту команды. Которое выглядит следующим образом: «sleep 20;» (без кавычек).

Вместо 20 можно вписать любое число, которое будет означать количество секунд, которые процесс «спит» перед тем, как запуститься. Таким образом вы можете дать системе время полностью загрузиться, после чего уже начнут включаться определённые сервисы или программы.

Переименовываем группу файлов

Ещё одна назойливая проблема: вы скопировали с фотоаппарата или телефона изображения. Огромная куча фотографий, которые называются однотипно вроде HGNMD034, где HGNMD — название общей директории, объединяющей файлы, например, отснятые за один день. Для того, чтобы сделать название этих файлов приятнее или иметь возможность объединить несколько папок, не получив при этом хронологическую путаницу из-за имен, можно использовать скрипт группового переименования:

$path = «$compdesktopjourneyrussia»$filter = ‘*.jpg’get-childitem -path $path -filter $filter |rename-item -newname {$_.name -replace ‘HGNMD’,’RUSSIA’}

В первой строке в кавычках укажите точный путь к файлам. Во второй строке — расширение файлов, подлежащих изменению. В последней строке вместо “HGNMD” — общее в названиях файлов, подлежащее замене, на что-то, вместо “RUSSIA” — имя, которое вы хотите присвоить.

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

Windows 10 Sophia Script поддерживает только актуальные версии Windows 10

Постановка задачи

Когда начинающий системный администратор превращается в матерого админа, он хочет везде все автоматизировать и везде экономить свое время, и это логично люди существа любящие комфорт и лень. Рабочая среда Active Directory позволяет, как все знаете через групповые политики настройку почти всех компонентов в системе, а что не может замещается средствами PowerShell, вот такой симбиоз.

Преимущества windows scripting host

Раньше единственным поддерживаемым Windows скриптовым языком был командный
язык DOS. Но его возможности довольно бедны по сравнению с VBScript и JScript.
Хотя командный язык DOS по прежнему поддерживается, современные ActiveX-скрипты
позволяют решать более сложные задачи.

Cкрипт может принимать решения на основе использования полноценных операторов
If/Else. Сценарий может выполнять один набор команд, если данное условие
истинно, или другой набор, если условие ложно. Кроме того, JScript и VBScript
хороши при выполнении математических операций, включая общие тригонометрические
функции.

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

Приступим

Если вы уже знакомы с 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) следующий код:

Создание и запуск скриптов

По сравнению с различными программистскими изысками писать скрипты для
Windows Scripting Host относительно просто. В Notepad вы пишете свой скрипт с
использованием упомянутых объектов. Потом сохраняете файл с расширением .vbs для
VBScript или .

Запуск скриптов — тоже несложная задача. Есть несколько способов. Самый
простой — командная строка DOS и аналогичная версия Windows Scripting Host,
CSCRIPT.ЕXE. Эта версия позволяет контролировать исполнение скрипта с помощью
параметров командной строки.

Параметры хоста включают или отключают различные опции Windows Scripting Host
и всегда предваряются двумя слэшами (//). Имя скрипта — это всегда имя файла, а
параметры скрипта — параметры, передаваемые скрипту. Эти параметры всегда
предваряются одним слэшем (/). Таблица 4 содержит некоторые параметры
CSCRIPT.EXE.

ПараметрОписание
//BВключает пакетный режим
//TЗадает таймаут в секундах
//IВыключает пакетный режим (используется по умолчанию)
//logo

Включает гордую надпись (увы, используется по умолчанию)

Microsoft (R) Windows Scripting Host Version 5.0 for Windows
Copyright (C) Microsoft Corporation 1996-1997. All rights reserved.
//nologoВыключает эту гордую надпись.
//H:Cscript or WscriptДелает CSCRIPT.EXE или WSCRIPT.EXE хостом по умолчанию, т.е.
ассоциирует их с расширениями скриптов.
//SСохраняет установки командной строки для текущего
пользователя

Таблица 4. Параметры командной строки CSCRIPT.EXE

Справка

Итак, с общими принципами функционирования PowerShell мы более-менее разобрались. Если что-то непонятно — обратитесь к справочной информации следующим образом:

Get-Help Services

Это команда, которая выведет на экран все доступные команды с кратким описанием. Хотите подробнее? Нет ничего проще:

Get-Help -Name *CMDLET*

Где вместо *CMDLET* вставьте любую интересующую команду.

Сторонние обзоры скрипта

Устаревшее видео касательно версии 4.x (с привязкой ко времени) от Chris Titus Tech 🙂

Удаление

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

  1. Снова заходим в утилиту управления автозагрузкой.
  2. Находим те процессы, которые нам не нужны.
  3. Выделяем их, жмём «Удалить».

Теперь лишние процессы будут убраны из автозапуска Ubuntu. Лучше иметь там только самое необходимое.

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

Softovick

Вдохновившись статьей , я решил немного развить тему и настроить автозагрузку сервера Domino при загрузке системы.Ничего особо нового не придумаю, потому просто опишу кратко, что нужно сделать, чтобы сервер Lotus Domino запускался автоматически при загрузке системы в screen-сессии. Итак, начнем:1 шаг: сделаем скрипт автозапуска, как в теме ;sudo nano /etc/init.d/autostart.

script 2 шаг: вставим в него следующие строки#!/bin/bashscreen -A -m -d -S domino su — notes -c «cd ~ && /opt/ibm/lotus/bin/server» Данный скрипт запустит из-под рута сессию screen под названием «domino», зайдет по пользователем «notes» и выполнит запуск сервера.3 шаг: сделаем исполняеемым файл скрипта и добавим его в автозагрузку

Вуаля, как говорят французы.В итоге мы получаем ситуацию, при которой при загрузке системы автоматически запустится сервер. Сессия screen при этом запустится от имени рута, потому чтобы посмотреть результат запуска (там будет консоль сервера), то следует набрать команду sudo screen -r P.S.: если кто подскажет, как правильно запустить сессию screen от имени локального пользователя, то буду благодарен.Доб. 09.08.2009 г.

В результате опытной эксплуатации удалось выявить, что данный способ работает отлично в Ubuntu, но не срабатывает в OpenSUSE 10. В первую очередь из-за отсутствия утилиты update-rc, во-вторую — из-за несколько другого механизма автозагрузки.

Итак, если у кого нужно сделать автозагрузку сервер Domino в OpenSUSE, то для Вас шаг № 3 будет выглядеть так: suchmod x /etc/init.d/autostart.scriptln -s /etc/init.d/autostart.script /etc/init.d/rc5.d/S95autostart.script/etc/init.d/
.В первой строке файла должно быть указано какая оболочка или интерпретатор будет выполнять команды в файле. Если вы хотите использовать те же команды, что и в терминале, то файл должен начинаться со строки:

#!/bin/bash

2. Нужно разрешить файлу выполняться:

Sudo chmod x /etc/init.d/autostart.script

3. Рассказываем системе что этот файл нужно исполнять при старте системы:

Sudo update-rc.d autostart.script defaults 95

Где 95 это порядок в очереди исполнения. Подробнее можно узнать из

Man update-rc.d

Перезапускаем систему и радуемся результату 🙂

P.S.
Для удаления из автостарта нужно выполнить:

Sudo update-rc.d autostart.script remove

Целью данной статьи является ознакомление с принципами автозагрузки в операционной системе Ubuntu на примере Ubuntu Server 10.04 LTS, а также демонстрация настройки автозагрузки виртуальной машины, работающей под управлением VirtualBox, и корректное завершение работы последней в автоматическом режиме при выключении Ubuntu Server.

Внимание! Описанный ниже пример не может быть применим к настройке автозагрузки графических приложений для конкретного пользователя системы в настольных версиях Ubuntu. Для этого используйте пункт «Запускаемые приложения» из главного меню Ubuntu.


В первую очередь, это

сервисов/приложений при старте операционной системы. Автозагрузка также может обеспечивать корректное завершение этих служб/приложений при выключении или перезагрузке системы.

Организация автозагрузки в Ubuntu Server.
Разумеется, для того, чтобы правильно запустить/остановить сервис, необходимо описать сценарий с командами для запуска/остановки. Взгляните на содержимое каталога /etc/init.d: он содержит скрипты, которые управляют загрузками/остановками сервисов на вашей машине.

Итак, первый, но не последний пункт успешной настройки — это наличие скрипта в /etc/init.d. В скрипте не описывается, когда должен выполняться тот или иной сценарий. Он лишь может принимать параметры start, stop, restart и так далее. Откуда же Ubuntu знает, когда необходимо вызвать скрипт?

Ответ кроется в каталогах /etc/rcN.d, где N – это цифра от 0 до 6. В этих каталогах хранятся символические ссылки на скрипты из /etc/init.d. Рассмотрим, что означает каждый каталог, и всё сразу станет понятно:- rc0.d – выполнение скрипта при выключении системы;- rc1.d – выполнение скрипта при запуске системы в однопользовательском режиме;- rc2.d – выполнение скрипта при запуске системы в многопользовательском режиме;- rc3.d – rc5.d – зарезервировано;- rc6.d – выполнение скрипта при перезагрузке системы.

Например, если происходит перезагрузка, то будут выполнены все скрипты из каталога /etc/rc6.d, при выключении — из /etc/rc0.d и так далее. Цифра в названии каталога называется уровнем запуска. То есть каталог /etc/rc0.d будет называться нулевым уровнем запуска и так далее.

Есть еще один немаловажный момент, который необходимо знать — это очередность выполнения скриптов из каталогов rcN.d. Ведь для правильной организации запуска/остановки работы Ubuntu может потребоваться запускать/останавливать сервисы в определенном порядке.

Этот момент решается специальным именованием файлов в каталогах уровней запуска. Файлы имеют следующие имена: NN[имя], где — это один символ («S» означает, что скрипт запускает сервис, «K» – останавливает), NN – порядковый номер, [имя] – имя файла.

Символ «S» или «K» самостоятельно выбирать не придется, так как все скрипты в каталогах rc1.d-rc5.d должны начинаться с символа «S», а в каталогах rc0.d и rc6.d – с символа «K». Число «NN» определяет очередность запуска скриптов, который производится от меньшего к большему.

При необходимости запуска какой-либо службы или приложения до или после конкретного существующего сервиса просто подсмотрите его порядковый номер в соответствующей директории rcN.d и учитывайте при выборе порядкового номера для своего скрипта.

Ну что ж, где хранить скрипты и как их называть понятно, а вот как его написать?
В каталоге /etc/init.d находится пример скрипта для управления запуском/остановкой сервисов. Это файл /etc/init.d/skeleton, а в примере ниже он будет упрощен.

При создании нового скрипта не забывайте давать ему права на выполнение. Чтобы добавить права на выполнение скрипту, используйте команду sudo chmod x /etc/init.d/myscript

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

Лучше отдать предпочтение специализированным утилитам, таким как update-rc.d, которая поставляется в комплекте с Ubuntu. С её помощью можно добавить новый скрипт в любой уровень загрузки, удалить существующий и так далее. Вот пример использования:sudo update-rc.d myscript start 99 2 3 4 5 . stop 01 0 1 6 .

Эта команда добавит новый скрипт «myscript» во все уровни загрузки. Будет выполнен запуск сервиса на уровнях со 2 по 5 с приоритетом 99 (в последнюю очередь) и остановка сервиса на 0, 1 и 6 уровнях с приоритетом 01 (самым первым).Чтобы удалить скрипт из автозагрузки, воспользуйтесь командой:sudo update-rc.d -f myscript remove

Рассмотрим пример настройки автозагрузки.
Задача:
настроить автоматический запуск виртуальной машины, работающей под управлением VirtualBox, которая должна запускаться спустя две минуты после запуска операционной системы Ubuntu Server.

При выключении или перезагрузке Ubuntu Server виртуальная машина должна корректно завершать свою работу.Предположим, что на Ubuntu Server установлен VirtualBox и существует виртуальная машина с именем «Slave», операционная система которой поддерживает возможность корректного завершения работы при нажатии кнопки выключения компьютера (поддержка ACPI).

Для начала напишем скрипт, который будет располагаться в каталоге /etc/init.d:sudo cp /etc/init.d/skeleton /etc/init.d/slave && sudo vi /etc/init.d/slave

Удаляем ненужное

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

get-appxpackage -name *APPNAME* | remove-appxpackage

Как вы понимаете, *APPNAME* — название неинтересующей надстройки. Да, удалять эти пакеты можно стандартным путём или через специальные программы, но вы можете создать скрипт, который удалит их все одним двойным кликом.

Управляем процессами

Есть в PowerShell две полезные команды, которые позволят бороться с ветряными мельницами (процессами, снижающими быстродействие). Вывести их на экран можно просто прописав:

 Get-Service

или информацию о конкретном сервисе под кодовым названием *NAME* (на этом месте должно быть название интересующего сервиса):

Get-Service *NAME*

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

Stop-Service -Name *ANTIVIRUS*

Stop-Service -Name *BROWSER*

Названия для замены указаны в * *.

Хост и скриптовые машины

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

Чтобы справиться с такими задачами, можно воспользоваться дополнительными
COM-объектами. Ряд таких объектов входит в поставку WSH, а один из них, WScript,
даже уже имеет созданный экземпляр, и им можно пользоваться непосредственно, без
предварительного создания. Остальные создаются с помощью синтаксиса,
соответствующего конкретному языку или функции WScript.CreateObject.

Вывод

Windows Scripting Host — хорошая замена уходящим в прошлое BAT-файлам. Он уже
имеет поддержку множества сторонних разработчиков, создающих новые
скрипт-машины, хосты и т.д. С небольшим навыком программирования вы сможете
писать собственные скрипты для автоматизации функций Windows.

Это только верхушка айсберга — с помощью WSH, WMI и ADSI можно сделать куда
больше. Windows Script Host позволяет писать независимые от языка скрипты с
использованием его собственной объектной модели или какой-нибудь взятой взаймы.
Так что будьте созидательны.

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

Оцените статью
OverComp.ru