Перейти к содержимому

Как запустить скрипт на компьютере

  • автор:

Как запустить скрипт PowerShell на удаленном компьютере через SCCM

Powershell SCCM

Настройка серверов windows и linux

Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами восстановили правильное кириллическое название у отображения службы. Идем далее и сегодня я хочу вам показать, как вы можете запустить скрипт PowerShell на удаленном компьютере с помощью агента System Center Configuration Manager. Постараюсь вам привести несколько примеров из практики, когда это может быть полезным, да и в целом очень полезно знать, о наличии такого функционала.

Пример, когда требуется уметь запускать PowerShell скрипт с помощью SCCM

Рабочий пример, появилась задача по отключению NTLM v1 во всем Active Directory. Была для этого создана групповая политика, но на некоторых рабочих станциях GPO не отработала, я показывал как искать причину и исправлять ее. Но пока идет разбирательство можно применить нужные настройки правкой реестра Windows через PowerShell. Самый правильный метод для массового выполнения, это использовать функционал System Center Configuration Manager. Давайте поэтапно пройдем этот путь.

Создание и настройка скрипта в System Center Configuration Manager

  • 1️⃣Первым делом вам нужно подготовить сам PowerShell скрипт и сохранить его для импортирования на определенном шаге в SCCM. В качестве моего рабочего примера я буду выполнять вот такой скрипт:

# Задаем путь к ключу реестра
$registryPath = «HKLM:\SYSTEM\CurrentControlSet\Control\Lsa»

# Задаем имя и значение ключа
$registryName = «lmcompatibilitylevel»
$registryValue = 5

# Проверяем наличие ключа в реестре
if (Test-Path $registryPath) # Если ключ уже существует, удаляем его
Remove-ItemProperty -Path $registryPath -Name $registryName -ErrorAction SilentlyContinue
>

# Создаем новый ключ с заданным значением
New-ItemProperty -Path $registryPath -Name $registryName -Value $registryValue -PropertyType DWORD -Force

Сохраним его в виде ps1 файла на сервере SCCM.

Файл скрипта PowerShell для SCCM

  • 2️⃣Вторым шагом нам нужно импортировать данный скрипт в репозиторий SCCM. Для этого подключаемся к серверу используя клиента System Center Configuration Manager. Переходим в раздел «Software Library — Scripts«.

SCCM раздел Scripts

Щелкаем там правым кликом и выбираем пункт «Create Scripts«.

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

Тут обязательно нужно заполнить поля:

  1. Script name — Я укажу в качестве имени Disable_NTLMv1. Старайтесь задавать понятные для себя имена
  2. Script Description — Описание, оно не обязательно, но старайтесь его заполнять, например указать номер заявки или детали
  3. Script language — PowerShell
  4. Script timiout seconds — Я задаю 60 секунд

Далее можно вставить в пустое поле текст самого скрипта PowerShell, но мне проще его импортировать, чтобы ничего лишнего не скопировать или не повредить текст при копировании. Нажмите кнопку «Import«.

Импорт скрипта PowerShell в SCCM

Указываем на ваш заранее созданный файл ps1.

Выбор powershell файла для импорта в SCCM

Обратите внимание, что его содержимое прописалось в поле «Scripts«. Нажимаем кнопку «Next«.

Успешный импорт скрипта PowerShell

Далее нажимаем кнопку «Next«.

Детали импортируемого скрипта PowerShell в SCCM

Дожидаемся, когда мастер импорта подтвердит, что все успешно выполнено.

Успешный импорт PowerShell скрипта

  • 3️⃣Следующим шагом вам нужно подтвердить, что данный скрипт валидный и вы готовы его добавить для использования. Об этом говорит состояние «Approved«. Нажмите кнопку «Approved/Deny«.

Подтверждение импортированного скрипта в SCCM

Выбираем пункт «Approve» и нажимаем «Next«.

Approve скрипт Powershell в SCCM

Еще раз «Next«.

Подтверждаем утверждение скрипта

Завершаем в мастере подтверждение скрипта.

Завершение утверждения скрипта в SCCM

Видим, что статус у скрипта стал «Approved«.

Список утвержденных скриптов в SCCM

Запуск скрипта из SCCM

Теперь остается применить наш скрипт. Для этого идем в раздел «Assets and Compliance — Devices«. Находим нужный компьютер или компьютеры, кликаем по ним правой кнопкой мыши и выбираем пункт «Run Scripts«.

Run Scripts SCCM

Выбираем нужный крипт из списка и нажимаем «Next«.

Выбор устанавливаемого скрипта в SCCM

Нажимаем кнопку «Next«.

Подтверждение выполняемого скрипта в SCCM

Будет создано задание на удаленное применение скрипта PowerShell.

Создание задания по установка скрипта на удаленном компьютере через sccm

Об успешности выполнения скрипта будет говорить статус «1» и «Exit code 0».

Успешное выполнение скрипта в SCCM

На этом можно считать, что скрипт успешно применен. Теперь я думаю вы легко будите раскатывать необходимые скрипты на нужные группы серверов или рабочих станций. С вами был Иван Сёмин, автор и создатель IT портала Pyatilistnik.org.

Популярные Похожие записи:
  • Как запустить скрипт PowerShell в WindowsКак запустить скрипт PowerShell в Windows
  • Как узнать, нуждается ли удаленный сервер в перезагрузке
  • Автоматическое удаления файлов в папке по заданным критериям
  • Ошибка The number of connections to this computer is limitedОшибка The number of connections to this computer is limited
  • Как убрать надпись Активация Windows, за минутуКак убрать надпись Активация Windows, за минуту
  • Как вручную изменить сервер администрирования Kaspersky в агенте

Как создать и запустить сценарий PowerShell в Windows 10 – инструкция по шагам

Windows 10 PowerShell – это средство командной строки, которое позволяет выполнять команды и сценарии для изменения параметров системы и автоматизации задач. Это похоже на командную строку, но PowerShell является более эффективным интерфейсом командной строки (CLI), который предоставляет широкий набор инструментов и обеспечивает большую гибкость и контроль (особенно для сценариев).

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

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

Работа со скриптами в инструменте PowerShell Windows 10

В этой версии урока по Windows 10 мы проведём вас шаг за шагом, чтобы вы смогли успешно запустить свой первый скрипт в PowerShell.

Создание файла сценария PowerShell

В Windows 10 файлы сценариев PowerShell можно создавать с помощью практически любого текстового редактора или консоли интегрированной среды сценариев (ISE).

Создание скрипта с помощью блокнота

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

Создание файла скрипта PowerShell с помощью блокнота

  1. Откройте приложение «Блокнот».
  2. Создайте или вставьте сценарий. Например: Write-Host ««Поздравляем! Ваш первый скрипт успешно выполнен»» Вышеприведенный скрипт просто выводит на экране фразу «Поздравляем! Ваш первый скрипт успешно выполнен».
  3. Сохраните файл под любым удобным названием, например, first_script.ps1

Создание сценария с помощью интегрированной среды сценариев

Кроме того, консоль PowerShell ISE можно использовать для кодирования сценариев в Windows 10. Интегрированная cреда сценариев является сложным инструментом, но вы можете начать работу с помощью этих шагов:

  1. Откройте системный поиск и введите запрос Windows PowerShell ISE, щелкните правой кнопкой мыши верхний результат, и выберите Запуск от имени администратора или выберите соответствующий параметр в правой колонке. Запуск интегрированной среды сценариев
  2. В PowerShell ISE создайте пустой файл .ps1, в котором можно создать или вставить скрипт. Например: Write-Host ««Поздравляем! Ваш первый скрипт успешно выполнен»» Создаём скрипт для PowerShell через ISE
  3. Откройте меню Файл и нажмите кнопку Сохранить .
  4. Введите название сценария. Например, first_script_ise.ps1
  5. Сохраните скрипт.

Как только Вы выполнили эти шаги с помощью Блокнота или PowerShell ISE, сценарий готов к запуску, но он не будет выполнен. Это происходит потому, что параметры PowerShell по умолчанию всегда настроены на блокирование выполнения любого сценария.

Запуск файла сценария PowerShell

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

  1. Откройте поиск и введите PowerShell, щелкните правой кнопкой мыши в верхний результат и выберите Запуск от имени администратора.
  2. Введите следующую команду, чтобы разрешить выполнение скриптов и нажмите клавишу Enter : Set-ExecutionPolicy RemoteSigned
  3. Укажите тип А и ещё раз нажмите клавишу Enter . Разрешим запуск скриптов PowerShell
  4. Введите следующую команду для запуска скрипта и нажмите клавишу Enter : & «C:\PATH\to\SCRIPT\first_script.ps1» Запуск файла скрипта PowerShellВ приведенной выше команде обязательно измените PATH\to\SCRIPT на расположение вашего скрипта.

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

PowerShell в Windows 10 включает четыре политики выполнения:

  • Restricted – останавливает выполнение скрипта.
  • RemoteSigned – запускает скрипты, созданные на устройстве. Однако, сценарии, созданные на другом компьютере, не будут запускаться, если они не содержат подписи доверенного издателя.
  • AllSigned – все скрипты будут работать до тех пор, пока они подписаны надежным издателем.
  • Unrestricted запускает любой скрипт без каких-либо ограничений.

В приведенных выше шагах мы использовали команду, чтобы разрешить запуск локальных скриптов в Windows 10. Однако, если вы не планируете регулярно выполнять скрипты, можно восстановить настройки по умолчанию, используя те же инструкции, но на Шаге 4, обязательно используйте Set-ExecutionPolicy Restricted команду.

Как работать с командной строкой и аргументами командной строки в Python

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

Алексей Кодов
Автор статьи
10 июля 2023 в 17:48

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

Работа с командной строкой

Для начала рассмотрим, как запустить Python-скрипт из командной строки.

  1. Откройте терминал или командную строку на вашем компьютере.
  2. Перейдите в каталог, где находится ваш Python-скрипт.
  3. Запустите скрипт, набрав python имя_файла.py .
python my_script.py

Аргументы командной строки

Аргументы командной строки передаются Python-скрипту в виде списка. Для работы с этим списком вам потребуется модуль sys .

Использование модуля sys

Импортируйте модуль sys и получите список аргументов командной строки с помощью sys.argv . Вот пример:

import sys print("Аргументы командной строки:", sys.argv)

Если вы сохраните данный код в файле arguments.py и запустите его из командной строки с аргументами, вы увидите следующее:

python arguments.py arg1 arg2 arg3
Аргументы командной строки: ['arguments.py', 'arg1', 'arg2', 'arg3']

Обратите внимание, что первый элемент списка sys.argv — это имя самого скрипта.

Python-разработчик: новая работа через 9 месяцев
Получится, даже если у вас нет опыта в IT

Обработка аргументов командной строки

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

import sys # Проверяем количество аргументов if len(sys.argv) < 2: print("Ошибка: необходимо указать хотя бы один аргумент") sys.exit(1) # Выводим аргументы командной строки, начиная со второго элемента списка for arg in sys.argv[1:]: print("Аргумент:", arg)

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

python process_arguments.py input.txt output.txt
Аргумент: input.txt Аргумент: output.txt

�� Поздравляем! Теперь вы знаете, как работать с командной строкой и аргументами командной строки в Python. Эти навыки пригодятся вам при создании утилит и скриптов для автоматизации повседневных задач.

Как автоматизировать сложные штуки на компьютере

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

Сегодня поговорим про первую часть — как с помощью встроенных скриптов научить компьютер делать то, что нам нужно.

Принципиальное решение

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

Сделать это можно двумя принципиальными способами:

  1. Использовать программу, которая будет за нас двигать мышкой и нажимать клавиши — такие программы есть, но они не слишком стабильные
  2. Использовать служебные программы и скриптование — мы пойдём по этому пути

Что за служебные программы?

Мы привыкли, что программа в компьютере — это что-то, у чего есть окно, кнопки, пункты меню и т. д. И это имеет смысл, например, в графических или текстовых редакторах, когда экран необходим.

Но многие программы могут работать без графического интерфейса. Например, если вам нужно скопировать файл из одного места в другое, вам не обязательно смотреть в экран с папочками. Можно написать «откуда» и «куда», и программа должна всё выполнить. Или если мы написали программу на Python, которая обрабатывает большие данные, ей не обязательно выводить данные на экран. Из файла взяла — обработала — в файл положила.

Программы, которые могут работать без графического интерфейса, мы будем называть служебными. В чём их свойства:

  • Они запускаются из командной строки или из терминала.
  • У них может не быть графического интерфейса.
  • Чтобы объяснить им, что от программ нужно, используют параметры.
  • Параметры пишутся текстом при запуске программы.
  • Программа однажды получает параметры, исполняется и выходит. То есть можно один раз сказать, что программе делать, нажать энтер и уйти пить кофе — дальше программа справится сама.

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

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

Как автоматизировать сложные штуки на компьютере

Когда нужны служебные программы

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

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

Поэтому серверами можно спокойно управлять из командной строки, подключившись к терминалу: чтобы запустить на Linux-сервере базу данных, тебе достаточно сказать команду sudo /etc/init.d/mysqld start — и где-то в глубинах сервера зашуршат нужные файлы. Не нужно заходить в меню «Программы», искать там приложение MySQL, запускать его и что-то с ним делать. Одна текстовая команда делает то, что на домашнем компьютере мы бы делали двадцатью кликами мышки.

Когда-то давно мы рассказывали про приложение MAMP — это пакет для разработки сайтов на собственном компьютере. Так вот, MAMP — это лишь простая графическая обёртка для нескольких служебных программ: веб-серверов и баз данных. Когда вы нажимаете кнопку «Запустить сервер», где-то на фоне запускаются служебные программы серверов и баз данных: вы их не видите, но они висят в памяти и делают свою полезную работу. А MAMP просто даёт вам кнопку «Вкл».

Автоматизируем служебные программы через скрипт

Итак, что мы знаем:

  • У компьютера есть большой набор служебных программ.
  • Их можно вызвать одной строкой, и они сделают нам свою полезную работу по нажатии клавиши Enter.
  • Возить мышкой и вступать с компьютером в диалог при этом не нужно.
  • Одна команда в командной строке запустит одну программу, которая сделает своё дело и закроется, снова вернув нас в командную строку.

Логичный следующий шаг — автоматизировать исполнение этих команд и программ с помощью скрипта.

Скрипт — это набор команд для компьютера, которые записали и сохранили в один файл. Можно представить, что это сценарий фильма или пьеса, по которой актёры играют на сцене. Чтобы компьютер понял, что перед ним именно скрипт, используют специальные расширения. В Windows это будут расширения .bat или .ps1.

Например, нам нужно раз в неделю копировать три разные папки в одну с текущей датой. Можно написать такой скрипт и сохранить его как backup.bat :

set sFolderName=%date% (%time:~0,-3%) md "%sFolderName::=-%" md f:\"%sFolderName::=-%"\Documents md f:\"%sFolderName::=-%"\Music md f:\"%sFolderName::=-%"\Images copy C:\Users\Mike\Documents F:\"%sFolderName::=-%"\Documents copy C:\Users\Mike\Work F:\"%sFolderName::=-%"\Work copy C:\Users\Mike\Projects F:\"%sFolderName::=-%"\Projects

Тут используются программы Windows: md — «создание каталога» и copy — «копирование файла». Также используется команда set , которая задаёт переменную для выполнения скрипта. В переменной лежит текущая дата и время.

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

В MacOS и Linux скрипты работают точно так же, только возможностей у скриптов в этих системах намного больше. Дело в том, что Windows изначально была заточена под окна и работу с мышкой, чтобы пользователю не пришлось разбираться со скриптами. А в Linux всё наоборот — там проще всё сделать парой скриптов, чем ставить много программ и долго всё настраивать мышкой.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *