Скрипты windows: 404 — Содержимое не найдено

Содержание

7 скриптов для Windows, которые помогут сэкономить время | GeekBrains

Основы скриптов на PowerShell.

https://gbcdn.mrgcdn.ru/uploads/post/998/og_cover_image/136640dcd4ae5c224e8596715579ad95

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

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

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

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

shutdown -s -t 0

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

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

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

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

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

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

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

 Get-Service

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

Get-Service *NAME*

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

Stop-Service -Name *ANTIVIRUS*

Stop-Service -Name *BROWSER*

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

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

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

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

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

Ищем файлы

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

Get-Childitem C:\Windows\*.log

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

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

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

Справка

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

Get-Help Services

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

Get-Help -Name *CMDLET*

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

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

Теперь перейдём к простым скриптам, описанным чуть более сложными командами. Например, с помощью 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:

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

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

Начало карьеры: интенсив «Основы веб-разработки».

Первые шаги для пауэршельшиков / Хабр

Приди ко мне брате в Консоль!
— Админ Долгорукий.

Много ярлыков улетело в корзину со времён выхода в свет 2008 Windows. Люди попроще дивились новому синему окошку, которое ребята из Майкрософт зачем-то вставили в свои новые продукты. Люди, которые сидят на блогах и знают программирование начали изучать это окошко.

В итоге к народу начало приходить осознание того, что Майкрософт действительно разработали что-то новое и интересное.
И так, зачем вам это нужно? В основном, программа под названием PowerShell (в дальнейшем PS) предназначена для администраторов и программистов. Она позволяет автоматизировать примерно 99% всех действий в системе. С помощью неё вы можете настраивать удалённые компьютеры, запускать и перезапускать сервисы и производить обслуживание большиства серверных приложений. Как выяснилось, возможности у программы потрясающие.

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

Задача этой статьи проста — показать вам малую долю возможностей PS и дать вам концептуальное понимание предмета. В действительности документации по предмету написано несметное количество, так что я не стремлюсь охватить всё. Я так же ознакомлю вас с набором утилит, которые позволят не вылезать из PS в принципе.


Что представляет собой PS? Это интерпретатор командной строки. Вы вводите необходимые команды, на экране отображается результат их выполнения. Всё просто. Всё было так со времён доса и старого доброго Юникса.

Есть два основных отличия от предшественников, которые качественно выделяют PS среди других интерпретаторов.

  • Очень хорошая интеграция с Microsoft .NET Framework. Это даёт вам возможность вплетать мощные программистские решения в свои команды и скрипты.
  • Все значения, возвращаемые вам в терминал являются объектами, с которыми можно работать как с объектами, а не просто набором строк. Это позволяет вам создавать неимоверно мощные программные скрипты.

Приступая к работе

Если вы используете Windows 7 или 2008 то PS вам уже доступен. Для пользователей других версий Windows — добро пожаловать на сайт

Майкрософт

.

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

dir

и вы получите список папок в текущем каталоге. Приятным моментом для любителей Юникса
будет тот факт, что команда

ls

работает так же хорошо, как и dir. В PS существует система назначения алиасов на различные команды. В действительности, то что вы сейчас сделали — это выполнили командлет (так в PS называются команды, встроенные в сам PS) Get-ChildItem. Вы можете попробовать просто набрать Get-ChildItem и получить тот же результат, что и в двух предыдущих командах. Для того, чтобы вы быстро ознакомились со списком всех алиасов наберите

ls Alias:\

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

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

Get-Process # Получить список процессов
Remove-Item # Удалить что-то
Get-Help # получить справку по чему-то
Set-Alias # Создать новый алиас
New-Item # Создать новый объект (Объектом может быть всё что угодно, например, файл)

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

Get-PSDrive

И в ответ вы получаете намного более интересный список дисков в вашей системе, нежели тот, что вы видите в «Моём Компьютере»

Name           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
Alias                                  Alias
C                  16.56         63.44 FileSystem    C:\
cert                                   Certificate   \
D                    .11         53.92 FileSystem    D:\
Env                                    Environment
Function                               Function
HKCU                                   Registry      HKEY_CURRENT_USER
HKLM                                   Registry      HKEY_LOCAL_MACHINE
Variable                               Variable
WSMan                                  WSMan

На диске Alias вы можете увидеть список всех алиясов в системе. Виртуальный диск Variable: хранит в себе все переменные, которые вы можете использовать в данной сессии. На диске Env — лежат переменные операционной системы. Диски HKCU и HKLM являются обёрткой для работы с соответствующими ветками реестра.
Давайте углубимся. Набирайте

Set-Location HKLM: # Или, если вы из людей подосёвее, набирайте cd HKLM:

Ну и как вам новый и невероятный способ хождения по реестру всея машины? Вы можете сделать ls по ветке реестра или перейти в нужный «каталог», набрав cd SYSTEM.

SKC  VC Name                           Property
---  -- ----                           --------
  2   0 BCD00000000                    {}
  4   0 HARDWARE                       {}
  1   0 SAM                            {}
Get-ChildItem : Requested registry access is not allowed.
At line:1 char:3
+ ls <<<<  -force
    + CategoryInfo          : PermissionDenied: (HKEY_LOCAL_MACHINE\SECURITY:St
   ring) [Get-ChildItem], SecurityException
    + FullyQualifiedErrorId : System.Security.SecurityException,Microsoft.Power
   Shell.Commands.GetChildItemCommand

 35   0 SOFTWARE                       {}
  8   0 SYSTEM                         {}

(Кстати, даже из под администраторского аккаунта есть доступ не ко всем объектам, о чём мой шелл меня уведомляет красными буквами).

Не бойтесь использовать команды New-Item и Remove-Item чтобы создавать и удалять нужные вам ключи в реестре. (И по традиции, я напомню вам, что играться с ключами реестра в администраторском режиме опасно)

Ну, вот вам и небольшой экскурс вглубь. Конечно же, у вас не получится создать ключ реестра так просто. Что-то пойдёт не так, как надо. Ну что же, могу сказать, что PS — это система, которая поощряет обучение в этой системе. Поэтому

Обучение тому, как правильно чему-то научиться в PowerShell

Способность наблюдать и анализировать наблюдения отличает нормального человека от психа. Ребят в Майкрософт психами не назовёшь. Они действительно понаблюдали за пользователями других командных интерпретаторов и выяснили, какая команда чаще всего используется в интерпретаторах. И той командой был великий и могучий man. (Для незнающих — попробуйте сделать — гугл man или наберите в своём баше man man)

В PS есть аналогичная команда, которая звучит как

Get-Help # хотя вы можеше использовать алиас на неё, под названием help

Насколько поразительно отвратительно ребята из Майкрософт делают документацию для пользовательских приложений, настолько хорошо они заботятся о программистах. (Неверующие могут сравнить справку системы Windows XP и 2003)
И так, выбирайте приглянувшийся вам командлет и отправляйте его в help. Если после прочтения общей справки вы ничего не поняли, то попробуйте набрать

get-help New-Item -Examples

Ключ -Examples обычно выдаёт от двух до пяти потрясающих примеров использования выбранной вами команды, с детальным их описанием.
На самом деле, одним только Гет-Хелпом, я в своё время изучил основы PS, перебирая все команды и читая к ним справку.
Если же вы захотели получить справку по какой-то функции, но не знаете, как она называется, а просто предполагаете о её существовании, то просто наберите

get-help files

В ответ на эту команду вы получите список топиков, которые содержат ключевое слово:

PS C:\> get-help Files

Name                              Category  Synopsis
----                              --------  --------
FileSystem                        Provider  Provides access to files and dire...
about_profiles                    HelpFile  Describes how to create and use a...

В нашем случая, для того, чтобы научиться работать с реестром, вы можете просто набрать

get-help Registry

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

Маленькие, но очень полезные фишки, которые должны быть в жизни

Товарищ, смирись, ты — в командной строке. Тут безгуёво принципе. Но, если ты познаешь некоторые уловки, тебе здесь станет удобно.

И так, для тех, кто никогда не был в командной строке

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

Для тех, кто уже бывал в командных строках

  1. Ctrl+Home — удаляет всё, начиная с текущей позиции курсора до начала строки
  2. Ctrl+End — удаляет с курсора и до конца строки
  3. F7 — показывает окно со списком набранных команд, и позволяет выбрать одну из них.
  4. Для того, чтобы скопировать что-то в буфер, выделите это мышью и нажмите Enter.
  5. Для того, чтобы вставить строку из буфера — просто нажмите правую кнопку мыши.

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

Углубляемся в изучение окружения

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

конвейера

.

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

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

PS C:\> ls -filter "*.bat" | Get-Content
REM Dummy file for NTVDM

Команда ls -filter «*.bat» выбирает все файлы с нужным расширением, а команда Get-Content выводит их на экран (на самом деле, исходя из названия, команда просто получает содержимое объекта, а на экран он выводится по факту того, что дальше некуда)
Конвейер может сделать очень много полезного для вас. Например, решить «портянку помощи».

Get-Help Registry | Set-Content reg.txt

И весь файл помощи по реестру сохранён в текстовом файле, который вы теперь можете открыть.

Если вы действительно хотите порадоваться жизни, и понять, что PS способен на многое, то вам придётся применить свой IQ на все 100% и вообразить что-то нереальное.

ps | ls

Выглядит невероятно, а результат даёт потрясающий! Если вы хотите узнать, из какого файла появился процесс, просто пустите его конвейером на get-childitem!
В частности, я сейчас набираю текст в вордпаде:

PS C:\> ps wordpad | ls

    Directory: C:\Program Files\Windows NT\Accessories

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---         6/28/2010   9:57 PM    4247040 wordpad.exe

Вот это меня поразило до глубины души.

Теперь можно переходить к изучению окружения

Как я уже говорил, всё что вы видите на экране не является строками, а является объектами. Например, результат выполнения команды ps возвращает нам список процессов, запущенных в системе.

Но как узнать, что же у нас в руках?

Для этого мы воспользуемся командлетом Get-Member, который откроет нам методы любого класса. Давайте узнаем, что содержится в том же самом процессе, который выдаёт нам команда ps.

ps wordpad | Get-Member

Набирайте, и смотрите на список членов класса, которые вы можете увидеть в классе System.Diagnostics.Process. Тоесть, фактически, командлет ps вернул нам массив объектов типа Process и мы можем попрограммировать их!
Давайте поглумимся над блокнотом.

PS C:\> notepad                                                        
PS C:\> ps notepad                                                                                                                            Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName  -------  ------    -----      ----- -----   ------     -- -----------       70       4     1148       5376    56     0.30   3900 notepad                                                                                                                                                    PS C:\> ps notepad | get-member -type method


   TypeName: System.Diagnostics.Process

Name                      MemberType Definition
----                      ---------- ----------
BeginErrorReadLine        Method     System.Void BeginErrorReadLine()
BeginOutputReadLine       Method     System.Void BeginOutputReadLine()
CancelErrorRead           Method     System.Void CancelErrorRead()
CancelOutputRead          Method     System.Void CancelOutputRead()
Close                     Method     System.Void Close()
CloseMainWindow           Method     bool CloseMainWindow()
CreateObjRef              Method     System.Runtime.Remoting.ObjRef CreateObj...
Dispose                   Method     System.Void Dispose()
Equals                    Method     bool Equals(System.Object obj)
GetHashCode               Method     int GetHashCode()
GetLifetimeService        Method     System.Object GetLifetimeService()
GetType                   Method     type GetType()
InitializeLifetimeService Method     System.Object InitializeLifetimeService()
Kill                      Method     System.Void Kill()
Refresh                   Method     System.Void Refresh()
Start                     Method     bool Start()
ToString                  Method     string ToString()
WaitForExit               Method     bool WaitForExit(int milliseconds), Syst...
WaitForInputIdle          Method     bool WaitForInputIdle(int milliseconds),...

Вот это неплохое количество методов, которые мы можем запустить, используя шелл. И так, как же это сделать? Просто.

(ps notepad).WaitForExit()

Если вы возьмёте результат выполнения командлета в скобки, то вы сможете обратиться к нему, как к объекту в вашей программе, прямо из командной строки.
После запуска этого метода шелл завис и ждёт у моря погоды. Нажмите пару раз Enter. Ничего не происходит. Что же, закройте открытый блокнот. Вуаля, вы снова в шелле.
Я думаю, теперь вы должны погулять свою фантазию. Попробуйте, пустите через конвейер в get-member результаты выполнения ls или других командлетов, каких только можете найти.
Если вы увидели, что в свойстве какого-то объекта лежит ещё один объект, не стесняйтесь пускать его на Get-Member

(ps notepad).StartTime | Get-Member

И так далее до бесконечности.

Задача для пытливых умов. Пролетела новость, что рефлектор станет платным. Как сделать рефлектор на чистом PS? Кстати, это не такая уж и трудная задача.

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

Переменные и объекты

И так, пару слов по поводу переменных. В PS они бывают нетипизированными:

$processList = ps

И типизированными

PS C:\> [DateTime]$x = "febbrrr"
Cannot convert value "febbrrr" to type "System.DateTime". Error: "The string was
 not recognized as a valid DateTime. There is a unknown word starting at index 0."
At line:1 char:13
+ [DateTime]$x <<<<  = "febbrrr"
    + CategoryInfo          : MetadataError: (:) [], ArgumentTransformationMetadataException
    + FullyQualifiedErrorId : RuntimeException
PS C:\> [DateTime]$x = "02/14/11"
PS C:\> $x
Monday, February 14, 2011 12:00:00 AM

И так, у нас появились переменные, и теперь мы можем присваивать им значения. В общем, всё, что вы пускали на конвейер, можно пустить и в переменную. Но, тут PS предоставляет нам одну очень интересную фитчу, которая делает его незаменимым инструментом в руках .NET разработчика.
Помните, я сказал, что в PS всё, что возвращается — это объект? Ну так вот, объект это не простой, а дотнетовый. Любой программист уже обратил внимание на тот факт, что в списке процессов мы работали с объектом из окружения CLR. Что же, мы можем запросто создать такой объект.
Давайте, попробуйте

$x = new-object System.Object

Что-же, переменную мы создали, а толку от неё — как с икспи сервака. Никакого. Давайте пофантазируем и подумаем, что мы действительно можем сделать?

C:\> $client = New-Object System.Net.WebClient
C:\> $client.DownloadString("http://google.com")

А вот это уже другое дело. Только что мы из подручных средств собрали себе wget на коленке. Как вам такой поворот событий?
Что же, в этот момент можно идти в MSDN и подряд перебирать все классы, смотреть, что в них есть интересного. Всё это позволяет создавать очень гибкие скрипты.

Кстати, о скриптах

PS позволяет выполнять скрипты. Ура! Делает он это с волшебного пендаля. Неура. По умолчанию в PS запрещён запуск скриптов, которые не были подписаны цифровой подписью. Для запуска скрипта вы должны его либо подписать (для этого используйте help about_signing) либо, просто понизить уровень безопасности, и выполнить

set-executionpolicy remotesigned

обычно я делаю второе. Ибо первый вариант требует скачивания многотонных SDK и долгого колдовства. Хотя, напомню о безопасности, и скажу, что второй вариант не канает для супер-сервера-всея-руси.
После выполнения этих действий, вы будете готовы писать свой первый скрипт. Для начала, рекомендую создать для него файл:

New-Item -type file $PROFILE

Переменная $PROFILE содержит в себе адрес файла с вашим профилем в PS. Этот файл будет запускаться в тот момент, когда вы стартуете PS. Плюс заключается в том, что вы можете нашпиговать свой профиль разными мелкими и полезными скриптами, которые помогут вам автоматизировать производство.
Теперь вы можете начать редактирование своего профиля:

vim $PROFILE

(О, кстати, я вам не сказал, но в PS, на мой взгляд, лучше всего смотрится текстовый редактор vim. Возможно кто-то назовёт меня настоящим извращенцем, но на самом деле, я уже не раз пытался использовать что-то другое, но всегда возвращался к виму. Попробуйте и вы. Его не просто изучить с нуля, но если вы поймёте основы, то сможете очень быстро и удобно редактировать тексты.)
Ладно, теперь повторим эту команду без того, чтобы умничать:

notepad $PROFILE

Ну, вот, например, то, что лежит у меня в профиле

$webClient =  New-Object System.Net.WebClient
$cred = New-Object System.Net.NetworkCredential("login", "Pass")
$webClient.Proxy = New-Object System.Net.WebProxy("www.proxy.adrress", $true, $null, $cred)

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

На самом деле, я уже написал достаточно много. Вы увидели для себя кое-что новое. Я прекрасно знаю, что уровень этой статьи — для начинающих, но и продвинутые админы найдут для себя несколько интересных моментов. Моей задачей было предоставить вам возможность получить общее представление о том, что вы можете сделать.
Что же, вот, напоследок, вам задачи, над которыми можно поломать голову и решить интересные проблемы:
Написать скрипт, который сортирует изображения по папкам, исходя из их размера (для получения размера файла можно использовать дотнет объекты или ком объекты, предоставляемые эксплорером)
Для выполнения этого, вам уж точно понадобиться хорошо изучить Where-Object или Foreach-Object.

Написать простой NMAP
Что будет, если запустить команду Пинг в цикле? А теперь, возьмите выход от этой команды и пропарсите его как строку. Вам однозначно придётся прочитать мануал по -le -ge и том, как работать со строками.

Написать парсер для башорга.
Чтобы, после логина в систему, вам на выбор выдавалась цитата из лучших за последние пять лет. Тут можно использовать регэкспы, с которыми PS очень хорошо дружит.

Поиграться с переменной $host и сделать из синего экрана Матрицу!

Что ещё можно делать? Матёрые COM программисты найдут для себя отличный способ повеселиться, когда обнаружат, что new-object имеет ключ -comObject. Фактически, это открывает вам ворота к полному управлению практически любой функцией локального и удалённого компьютера.

Ещё хочу заметить, что последние версии программного обеспечения от Microsoft поддерживают работу в PowerShell. Например, есть SQL PowerShell, который поставляется с 2008 сиквелом и позволяет сделать ls по записям в любой таблице. Это даёт ещё больший простор для фантазий.

Так же, хочу заметить, что комьюнити по разработке на PS очень сильно растёт и ширится. В частности, вы можете найти скрипты, готовые для чего угодно — например, вы можете нагуглить себе способ управления ITunes через PowerShell или способ использования Google Desktop Search в PS.

Что же, мой неинтересующийся друг, надеюсь, я дал тебе что-то интересное, и ты теперь возьмёшься за покорение интерпретатора, который действительно поможет тебе упростить твою нелёгкую программерскую жизнь и даст тебе возможность автоматизировать больше и быстрее. Очень приятно, что ты прочитал мою статью. Спасибо большое, я могу продолжать конкретно описывать определённые области, если вдруг тебе станет очень интересно.

Скрипты для администрирования ArcGIS Server—ArcGIS Server

ArcGIS Server запускает ГИС-сервисы и управляет ими с помощью ArcGIS REST API. Вы также можете использовать ArcGIS REST API для выполнения задач администрирования на сайте вашего сервера. Написание скриптов для администрирования сервера позволяет вам автоматически выполнять общие задачи в установленное время. Это также сокращает вероятность ошибок при выполнении сложных или повторяющихся задач.

В служебных программах командной строки ArcGIS Server и в пакете ArcPy имеются дополнительные опции для администрирования сервера с помощью скриптов. Каждый из них описывается ниже.

ArcGIS REST API и его связь с ArcGIS Server

ArcGIS REST API позволяет вам работать с сервисами ArcGIS и администрировать сайт ArcGIS Server. В REST API имеются ресурсы и операции для администрирования сайта ArcGIS Server. Через REST API можно выполнять любую задачу администрирования, которая поддерживается в ArcGIS Server.

REST API может быть задействован из любого языка, который может выполнить запрос к веб-сервису, например, Python, Java, JavaScript, PowerShell, C#, Ruby, Scala, Perl и другие. Для запуска скрипта, использующего REST API, вам не потребуется программное обеспечение Esri.

Далее приведен пример множества задач администрирования сервера, которые выполняются программно при помощи REST API:

  • Создание сайта после установки ArcGIS Server в автоматическом режиме.
  • Добавление сервисов.
  • Редактирование свойств сервисов, например, максимального количества экземпляров.
  • Выдача и удаление прав доступа пользователя для сервисов.
  • Остановка и запуск сервисов.
  • Запрос журналов и создание отчетов об использовании на их основе.

Более подробно об администрировании с ArcGIS REST API

ArcGIS API for Python

Вы можете использовать модуль gis.admin в ArcGIS API for Python для того, чтобы автоматизировать выполнение задач администрирования в ArcGIS Server. Среди этих задач – проверка состояния серверов, сброс паролей, а также интегрирование сервера с порталом ArcGIS Enterprise и его отмена.

Более подробно о ArcGIS API for Python

Утилиты командной строки ArcGIS Server

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

Более подробно об администрировании ArcGIS Server с помощью утилит командной строки.

Функции ArcPy для публикации сервисов и регистрации местоположения данных

В пакете Python ArcPy имеются функции для публикации сервисов в ArcGIS Server, работы с файлами определения сервиса (SD) и регистрации папок и баз данных на сайте ArcGIS Server. ArcPy может использоваться для создания скриптов административных задач, включающих в себя публикацию сервиса. Он также позволяет анализировать документы карты и генерировать сообщения об ошибках и предупреждениях, относящиеся к использованию карты в ArcGIS Server.

Более подробно о создании скрипта публикации сервиса с помощью ArcPy


Отзыв по этому разделу?

Создание и запуск файла сценария PowerShell в Windows 10

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

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

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

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

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

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

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

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

  1. Откройте приложение «Блокнот».
  2. Создайте или вставьте сценарий. Например: Write-Host "«Поздравляем! Ваш первый скрипт успешно выполнен»"

    Вышеприведенный скрипт просто выводит на экране фразу «Поздравляем! Ваш первый скрипт успешно выполнен».

  3. Сохраните файл под любым удобным названием, например, first_script.ps1

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

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

  1. Откройте системный поиск и введите запрос Windows PowerShell ISE, щелкните правой кнопкой мыши верхний результат, и выберите Запуск от имени администратора или выберите соответствующий параметр в правой колонке.

  2. В PowerShell ISE создайте пустой файл .ps1, в котором можно создать или вставить скрипт. Например:

    Write-Host "«Поздравляем! Ваш первый скрипт успешно выполнен»"

  3. Откройте меню Файл и нажмите кнопку Сохранить.
  4. Введите название сценария. Например, first_script_ise.ps1
  5. Сохраните скрипт.

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

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

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

  1. Откройте поиск и введите PowerShell, щелкните правой кнопкой мыши в верхний результат и выберите Запуск от имени администратора.
  2. Введите следующую команду, чтобы разрешить выполнение скриптов и нажмите клавишу Enter:

    Set-ExecutionPolicy RemoteSigned

  3. Укажите тип А и ещё раз нажмите клавишу Enter.

  4. Введите следующую команду для запуска скрипта и нажмите клавишу Enter: & "C:\PATH\to\SCRIPT\first_script.ps1"

    В приведенной выше команде обязательно измените PATH\to\SCRIPT на расположение вашего скрипта.

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

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

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

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

Написание скриптов в Windows 10 Bash

Справка:https://www.howtoip.com/how-to-create-and-run-bash-shell-scripts-on-windows-10/
Пример тестировался мной в подсистеме linux windows pro build 15063

Как писать скрипты на win 10 bash

Вы можете писать сценарии в системе Windows, но вам нужно выполнить преобразование EOL> формат UNIX / OSX, чтобы дать символ строки UNIX конца файла
(Это можно сделать в некоторых программных блокнотах, таких как блокнот ++)

В среде Bash на основе Ubuntu с двумяVIс участиемНано-нано

НаноИспользуйте: nano ~ / myscript.sh — командный файл (файл использует абсолютный путь в bash)
~ — Представляет ваш домашний каталог, поэтому полный путь — /home/username/myscript.sh)

Описание скрипта: добавить#!/bin/bash

Весь процесс скрипта от написания до исполнения

Случай:

#!/bin/bash
read -p “Please input yes or no:” anw
case $anw in
[yY][eE][sS]|[yY])
   echo yes
   ;;
[nN][oO]|[nN])
   echo no
   ;;
*)
   echo false
   ;;
esac

Оцените ввод да или нет

  1. Выполните подсистему windows 10 linux: напрямую введите bash.exe в командную строку или запустите и нажмите Enter.
  2. Запустите редактор файлов: nano yesorno-new.sh
  3. После ввода содержимого нажмите ctrl + o, а затем Enter, чтобы сохранить. Снова нажмите Ctrl + X
  4. Сделайте скрипт исполняемым и запустите его: Измените права доступа: chmod + x ~ / yesorno.sh Выполните: ~ / yesorno.sh
    График эффекта бега:


Как использовать файлы Windows в сценарии Bash

Чтобы получить доступ к файлам Windows в скрипте, вам необходимо указать их путь в / mnt / c, а не путь к ним.
Например
Путь в Windows: C: \ users \ bob \ downloads \ test.txt
Путь в Bash: /mnt/c/users/bob/downloads\test.txt

Как включить команды Bash в пакетные сценарии или сценарии PowerShell

Запустите команды Linux из PowerShell:
bash -c «команда»

smkuzmin — Скрипты для Windows

Типичные примеры использования:

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

домашний/рабочий: ApplySettingsProfile home/work;

— активация Windows/Office/оба варианта: Activate win/off/all;

— сохранение/восстановление сетевых настроек: NetConf backup/restore;

— сохранение/восстановление драйверов: Drivers backup/restore;

— сохранение/восстановление групповых политик: GPO backup/restore;

— отключение автозапуска для переносных дисков: DisableAutorunDrives;

— выключение/включение автоматического входа: AutoLogon disable/enable;

— выключение/включение брандмауэра: Firewall disable/enable;

— отключение UAC (User Access Control Policy): SetUACPolicy disable

— отключение SRP (Software Restriction Policy): SetSRPPolicy disable

— автоматическая установка параметров синхронизации времени:

SetTimeSyncParams;

— синхронизация времени: SyncTime;

— синхронизация двух каталогов: DiRsync copy/mirror src_dir dst_dir;

— просмотр/удаление установленного ПО: Software [uninstall «name»];

— очистка системы от нежелательного ПО: CleanSoft;

— очистка системы от ненужных процессов: CleanProcesses;

— очистка реестра (в основном — ветвей автозагрузки): CleanRegistry;

— очистка файла hosts: CleanHosts;

— очистка системы от ненужных файлов: CleanFiles;

— очистка системы от временных файлов недельной давности: CleanTemp;

— очистка системы от всех временных файлов и прочего: CleanWindows;

— очистка всех журналов событий: CleanLogEvents;

— дефрагментация файла/каталога: DefragObject file_or_dir;

— управление службами: Svc [disable/auto/demand/stop/start/check service_name];

— управление заданиями: Task [delete/add/check task_name [hourly/daily

/weekly/onstart task]];

— управление компонентами: Feature [disable/enable/check feature];

— вывод списка сетевых интерфейсов: ShowInterfaces;

— установка IP, маски, шлюза для интерфейса: SetIP int [ip mask [gw [metric]]];

— окно с сообщением: MsgBox «message» «title» buttonset_code;

— ожидание нажатия любой клавиши: Wait;

— перезагрузка системы: Reboot;

— выключение системы через час: Wait 3600 && Halt.

Скачать можно здесь.

VBS скрипт для определения ключа Windows

Что делать если вы забыли ключ от Windows 10 или Windows 8? Как быть если предыдущий администратор не передал вам ключ от Windows Server 2012 R2? Ноутбук с Windows непонятной версии нужно откатить на заводские настройки, а ключ от операционной системы никто не помнит?

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

  • Цифровая лицензия (в Windows 10 версии 1511 носит название цифрового разрешения) — это способ активации в Windows 10, который не требует ввода ключа продукта. 
  • Ключ продукта представляет собой 25-значный код, используемый для активации Windows. Вы увидите КЛЮЧ ПРОДУКТА: XXXXX-XXXXX-XXXXX-XXXXX-XXXXX.

Ключ продукта

Если у вас установлен ключ продукта, то можно его узнать. Просто скопируйте текст ниже в файл winkey.vbs и запустите на нужной машине. Если повезёт, то скрипт определит ключ и версию системы.

Set WshShell = CreateObject("WScript.Shell")
regKey = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"
DigitalProductId = WshShell.RegRead(regKey & "DigitalProductId")

WinProductName = "Windows Product Name: " & WshShell.RegRead(regKey & "ProductName") & vbNewLine
WinProductID = "Windows Product ID: " & WshShell.RegRead(regKey & "ProductID") & vbNewLine
WinProductKey = ConvertToKey(DigitalProductId)
strProductKey ="Windows Key: " & WinProductKey
WinProductID = WinProductName & WinProductID & strProductKey

MsgBox(WinProductKey)
MsgBox(WinProductID)

Function ConvertToKey(regKey)
Const KeyOffset = 52
isWin8 = (regKey(66) \ 6) And 1
regKey(66) = (regKey(66) And &HF7) Or ((isWin8 And 2) * 4)
j = 24
Chars = "BCDFGHJKMPQRTVWXY2346789"
Do
Cur = 0
y = 14
Do
Cur = Cur * 256
Cur = regKey(y + KeyOffset) + Cur
regKey(y + KeyOffset) = (Cur \ 24)
Cur = Cur Mod 24
y = y -1
Loop While y >= 0
j = j -1
winKeyOutput = Mid(Chars, Cur + 1, 1) & winKeyOutput
Last = Cur
Loop While j >= 0
If (isWin8 = 1) Then
keypart1 = Mid(winKeyOutput, 2, Last)
insert = "N"
winKeyOutput = Replace(winKeyOutput, keypart1, keypart1 & insert, 2, 1, 0)
If Last = 0 Then winKeyOutput = insert & winKeyOutput
End If
a = Mid(winKeyOutput, 1, 5)
b = Mid(winKeyOutput, 6, 5)
c = Mid(winKeyOutput, 11, 5)
d = Mid(winKeyOutput, 16, 5)
e = Mid(winKeyOutput, 21, 5)
ConvertToKey = a & "-" & b & "-" & c & "-" & d & "-" & e
End Function

Ключ продукта в BIOS

Лицензионный ключ может быть прописан в BIOS устройства. Узнать его можно через Powershell:

(Get-WmiObject -query 'select * from SoftwareLicensingService').OA3xOriginalProductKey

Или в командной строке:

wmic path softwarelicensingservice get OA3xOriginalProductKey

Цифровая лицензия

Если вы бесплатно обновили ОС Windows 7 или Windows 8.1 до Windows 10, вместо ключа продукта вы должны получить цифровую лицензию. Если у вас есть цифровая лицензия для устройства, вы можете переустановить тот же выпуск Windows 10 на этом устройстве без ввода ключа продукта.

В этом случае при попытке запустить скрипт для определения ключа вы получите это: BBBBB-BBBBB-BBBBB-BBBBB-BBBBB.

Открываем окно параметров.

Проверить состояния активации в параметрах

Надпись об активации может отличаться:

Ключ по умолчанию

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

Частично:

slmgr -dli
slmgr -dlv

Полную версия ключа можно посмотреть в реестре:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\BackupProductKeyDefault

Скрипт VBS в помощь. Просто скопируйте текст ниже в файл winkey2.vbs и запустите на нужной машине. Скрипт определит ключ по умолчанию и версию системы.

Set WshShell = CreateObject("WScript.Shell")
regKey = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"
regKey2 = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\"
WinProductKey = WshShell.RegRead(regKey2 & "BackupProductKeyDefault")

WinProductName = "Windows Product Name: " & WshShell.RegRead(regKey & "ProductName") & vbNewLine
WinProductID = "Windows Product ID: " & WshShell.RegRead(regKey & "ProductID") & vbNewLine
strProductKey ="Windows Key: " & WinProductKey
WinProductID = WinProductName & WinProductID & strProductKey

MsgBox(WinProductKey)
MsgBox(WinProductID)

Этот ключ позволит установить windows 10 без проведения активации. Потом автоматически должна активироваться цифровая лицензия, если она привязана к вашей учётной записи Microsoft.

Как создать и запустить файл сценария PowerShell в Windows 10

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

Скрипт — это просто набор команд, сохраненных в текстовом файле (с использованием специального расширения «.ps1″), которое PowerShell понимает и последовательно выполняет для выполнения различных действий.

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

В этом руководстве по Windows 10 мы расскажем, как успешно написать и запустить свой первый файл сценария в PowerShell с помощью Visual Studio Code, Блокнота и консоли интегрированной среды сценариев PowerShell (ISE).

Как создать файл сценария PowerShell в Windows 10

В Windows 10 вы можете создавать файлы сценариев PowerShell, используя практически любой текстовый редактор или консоль ISE. Тем не менее, предпочтительным вариантом (спасибо @jotaka за наводку) для создания сценариев в будущем является использование редактора кода Visual Studio с расширением PowerShell.

Создание сценария с помощью кода Visual Studio

Visual Studio Code, также известный как VS Code, — это бесплатный и расширяемый кроссплатформенный редактор кода, предоставляющий среду для редактирования практически любого языка программирования. А при добавлении расширения PowerShell вы получаете полностью интерактивный опыт редактирования сценариев, даже с поддержкой IntelliSense (дополнение кода).

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

Установить код Visual Studio

Чтобы установить Visual Basic Code в Windows 10, выполните следующие действия:

  1. Откройте страницу загрузки Visual Studio.
  2. Нажмите кнопку Windows , чтобы загрузить программу установки.

    Источник: Windows Central
  3. Дважды щелкните загруженный файл, чтобы начать процесс установки VS Code.
  4. Подтвердите условия соглашения.
  5. Нажмите кнопку Далее .

    Источник: Windows Central
  6. Нажмите кнопку Далее еще раз.
  7. Нажмите кнопку Далее еще раз.
  8. При необходимости подтвердите дополнительные задачи.

    Источник: Windows Central
  9. Нажмите кнопку Далее .
  10. Нажмите кнопку Установить .
  11. Нажмите кнопку Готово .

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

Установить расширение PowerShell

Чтобы установить расширение PowerShell в VS Code, выполните следующие действия:

  1. Открыть Код ВС .
  2. Щелкните вкладку Extensions на левой панели.
  3. Найдите PowerShell и выберите верхний результат.
  4. Нажмите кнопку Установить .

    Источник: Windows Central

После выполнения этих шагов вы можете приступить к написанию сценариев PowerShell с помощью Visual Studio Code.

Создайте сценарий PowerShell с кодом Visual Studio

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

  1. Открыть Код ВС .
  2. Щелкните меню Файл и выберите параметр Новый файл .

    Источник: Windows Central
  3. Щелкните меню Файл и выберите параметр Сохранить как .

    Источник: Windows Central
  4. В поле «Имя файла» укажите имя файла с расширением .ps1 — например: first_script.ps1 .
  5. Нажмите кнопку Сохранить .
  6. Напишите новый или вставьте скрипт, который хотите запустить, например:

    Write-Host "Поздравляем! Ваш первый сценарий успешно выполнен"

    Приведенный выше скрипт выведет на экран фразу «Поздравляем! Ваш первый скрипт успешно выполнен».

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

    Источник: Windows Central
  8. Откройте меню Файл .
  9. Выберите параметр Сохранить .

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

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

  1. Открыть Запустить .
  2. Найдите Блокнот и щелкните верхний результат, чтобы открыть приложение.
  3. Напишите новый или вставьте свой скрипт в текстовый файл, например:

    Write-Host "Поздравляем! Ваш первый сценарий успешно выполнен"

    Источник: Windows Central
  4. Откройте меню Файл .
  5. Выберите параметр Сохранить как .
  6. Введите описательное имя сценария, например, first_script.ps1 .

    Источник: Windows Central
  7. Нажмите кнопку Сохранить .

Создание сценария с интегрированной средой сценариев

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

Интегрированная среда сценариев — это расширенный инструмент, но вы можете начать работу, выполнив следующие действия:

  1. Открыть Запустить .
  2. Найдите Windows PowerShell ISE , щелкните правой кнопкой мыши верхний результат и выберите параметр «Запуск от имени администратора ».
  3. Щелкните меню Файл .
  4. Выберите параметр New , чтобы создать новый пустой файл .ps1 .

    Источник: Windows Central
  5. Напишите новый или вставьте скрипт, который хотите запустить, например:

    Write-Host "Поздравляем! Ваш первый сценарий успешно выполнен"

    Источник: Windows Central
  6. Откройте меню Файл .
  7. Выберите параметр Сохранить .
  8. Введите имя сценария, например, first_script.ps1 .

    Источник: Windows Central
  9. Выберите папку для хранения скрипта.
  10. Нажмите кнопку Сохранить .

После выполнения этих шагов с помощью Блокнота, Visual Studio Code или PowerShell ISE сценарий будет готов к запуску, но по умолчанию он завершится ошибкой. Это связано с тем, что параметры PowerShell по умолчанию всегда блокируют выполнение любого скрипта.(Единственным исключением является запуск содержимого скрипта в Visual Studio Code или PowerShell ISE.)

Как запустить файл сценария PowerShell в Windows 10

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

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

  1. Открыть Запустить .
  2. Найдите PowerShell , щелкните правой кнопкой мыши верхний результат и выберите параметр «Запуск от имени администратора ».
  3. Введите следующую команду, чтобы разрешить запуск скриптов, и нажмите Введите :

    Set-ExecutionPolicy RemoteSigned

  4. Введите A и нажмите Введите (если применимо).

    Источник: Windows Central
  5. Введите следующую команду для запуска скрипта и нажмите Введите :

    & "C:\PATH\TO\SCRIPT\first_script.ps1"

    В приведенной выше команде обязательно измените «PATH\TO\SCRIPT» на расположение вашего скрипта.

    Например, эта команда запускает сценарий, хранящийся в папке «Загрузки»:

    & "C:\Пользователи\имя пользователя\Загрузки\first_script.ps1"

    Источник: Windows Central

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

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

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

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

Дополнительные ресурсы Windows 10

Для получения дополнительных полезных статей, материалов и ответов на распространенные вопросы о Windows 10 посетите следующие ресурсы:

Список сценариев Windows

Введение

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

ActiveXperts Network Monitor полностью поддерживает сценарии управления Windows. В Интернете уже есть тысячи документов и сотни хороших книг о сценариях управления Windows. Однако хороших и простых в использовании образцов не хватает. Мы предоставляем хороший набор примеров, которые вы можете легко использовать в ActiveXperts Network Monitor. Наиболее важными технологиями сценариев управления Windows являются:

Интерфейсы служб Active Directory (ADSI)

Интерфейсы службы Active Directory (ADSI) позволяют системным администраторам и разработчикам сценариев или приложений легко запрашивать и управлять объектами службы каталогов.

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

Сценарии, написанные для ADSI, будут работать с любой службой каталогов, которая предлагает поставщика ADSI. Например, с помощью ADSI приложения могут доступ к LDAP, NDS, службе Active Directory и другим каталогам с помощью интерфейсов ADSI, если соответствующие поставщики услуг доступны.

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

  • Платформы Windows Server.
  • Платформы Windows для настольных ПК.
  • Windows Active Directory.
  • Облегченный протокол доступа к каталогам (LDAP).
  • Novell NetWare Directory Services (NDS) и NetWare 3 Bindery (NWCOMPAT).

Сетевой монитор ActiveXperts позволяет создавать процедуры проверки монитора на основе ADSI. ActiveXperts Network Monitor предоставляет несколько полезных сценариев ADSI. Вы можете использовать эти примеры в качестве основы для новых процедур проверки, которые вы можете написать самостоятельно.

Более »

PowerShell

Windows PowerShell — важный инструмент управления Windows вместе с VBScript. Среда сценариев PowerShell состоит из командной оболочки и языка сценариев.Вы можете сами писать сценарии PowerShell, используя свой любимый текстовый редактор, чтобы запускать их в командной оболочке PowerShell.

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

Более »

Сценарий Visual Basic (VBScript)

VBScript (сокращение от Visual Basic Scripting Edition) — это язык активных сценариев, разработанный Microsoft, который использует объектную модель компонентов для доступа к элементы среды, в которой он работает.Синтаксис языка отражает его происхождение как ограниченную вариацию программирования Microsoft Visual Basic. язык.

ActiveXperts Network Monitor полностью поддерживает сценарии управления Windows. Нажмите здесь, чтобы просмотреть более тысячи примеров VBScript для ИТ-администраторов. Вы можете легко использовать эти скрипты в ActiveXperts Network Monitor.

VBScript был установлен по умолчанию в каждой настольной версии Microsoft Windows, начиная с Windows 98[1]; как часть Windows Server, начиная с Windows NT 4.0 Опция Пакет[2]; и опционально с Windows CE (в зависимости от устройства, на котором она установлена).

Более »

Инструментарий управления Windows (WMI)

Основой управляемости в Windows XP/Windows 2000 и Windows Millennium Edition/Windows 98 являются инструменты управления Windows (WMI; ранее WBEM) и расширения WMI для модели драйверов Windows (WDM).

Целью WMI является определение непатентованного набора спецификаций, не зависящих от среды.Эти спецификации позволяют управленческой информации быть общими для управляющих приложений, работающих как в похожих, так и в разных средах операционных систем. WMI предписывает управление предприятием стандарты и связанные с ними технологии, которые работают с существующими стандартами управления, такие как Desktop Management Interface (DMI) и SNMP. WMI дополняет эти другие стандарты, предоставляя единую модель. Эта модель представляет собой управляемую среду, через которую можно получать данные управления из любого источника. доступ обычным способом.

ActiveXperts Network Monitor позволяет создавать процедуры проверки монитора на основе WMI. Программное обеспечение ActiveXperts собрало более сотни образцов WMI. Вы можете использовать эти примеры в качестве основы для новых процедур проверки, которые вы можете написать самостоятельно.

Более »

WMI — счетчики производительности

Основой управляемости во всех версиях Windows после Windows ’98 является инструментарий управления Windows (WMI; ранее WBEM). и расширения WMI для модели драйверов Windows (WDM).

Более »

Узел сценариев Windows (WSH) и VBScript

VBScript (Microsoft Visual Basic Scripting Edition) часто считают «просто» языком сценариев, подразумевается, что язык сценариев мало полезен для системного администратора, столкнувшегося с управлением сотни или даже тысячи компьютеров в корпоративной среде. Однако при использовании в сочетании с такими технологиями, как Windows Script Host (WSH), Инструментарий управления Windows (WMI) и интерфейсы служб Active Directory (ASDI), VBScript становится мощным языком для системного и сетевого администрирования.Например, приведенный ниже трехстрочный скрипт сообщает вам, сколько свободного места доступно на диске C вашего компьютера:

Установить objWMIService = GetObject("winmgmts:")
Установить objLogicalDisk = objWMIService.Get("Win32_LogicalDisk.DeviceID='c:'")
Wscript.Echo objLogicalDisk.FreeSpace
 

Более »

Использование сценариев запуска на виртуальных машинах Windows  | Документация по вычислительному движку  | Облако Google

Окна


Сценарий запуска — это файл, который выполняет задачи в процессе запуска экземпляр виртуальной машины (ВМ).Сценарии запуска могут применяться ко всем виртуальным машинам в проекте. или на одну виртуальную машину. Сценарии запуска, указанные переопределением метаданных на уровне виртуальной машины сценарии запуска, указанные метаданными уровня проекта, и только сценарии запуска запускать, когда сеть доступна. В этом документе описывается, как использовать запуск сценарии на экземплярах виртуальных машин Windows Server. Для получения информации о том, как добавить сценарий запуска на уровне проекта, см. gcloud Compute Project-info add-metadata .

Сценарии запуска Windows должны быть командной оболочкой ( .cmd ), PowerShell ( .ps1 ) или сценарии пакетного файла ( .bat ) и должны иметь соответствующее расширение файла.

Если вы укажете сценарий запуска с помощью одной из процедур, описанных в этом документе, Compute Engine делает следующее:

  1. Копирует сценарий запуска на виртуальную машину

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

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

Прежде чем начать

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

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

Ключ метаданных Использовать для
sysprep-специализированный-скрипт-ps1 Передача неподписанного сценария PowerShell, который хранится локально или добавляется напрямую и имеет размер до 256 КБ
sysprep-специализированный-скрипт-cmd Передача сценария командной оболочки, который хранится локально или добавляется напрямую и имеет размер до 256 КБ
sysprep-специализированный-сценарий-летучая мышь Передача скрипта пакетного файла, который хранится локально или добавляется напрямую и имеет размер до 256 КБ
sysprep-специализированный-скрипт-url Передача пакетного файла, командной оболочки, подписанного или неподписанного сценария PowerShell, который хранится в облачном хранилище и имеет размер более 256 КБ
сценарий запуска Windows-ps1 Передача неподписанного сценария PowerShell, который хранится локально или добавляется напрямую и имеет размер до 256 КБ
Windows-сценарий запуска-cmd Передача сценария командной оболочки, который хранится локально или добавляется напрямую и имеет размер до 256 КБ
Windows-стартап-скрипт-летучая мышь Передача скрипта пакетного файла, который хранится локально или добавляется напрямую и имеет размер до 256 КБ
URL-адрес сценария запуска Windows Передача пакетного файла, командной оболочки, подписанного или неподписанного сценария PowerShell, который хранится в облачном хранилище и имеет размер более 256 КБ

Для получения дополнительной информации о порядке выполнения различных видов сценарии запуска см. в репозитории GoogleCloudPlatform/compute-image-windows на GitHub.

Порядок выполнения сценариев запуска Windows

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

Ключ метаданных Порядок исполнения
sysprep-специализированный-скрипт-ps1 Сначала при начальной загрузке
sysprep-специализированный-скрипт-cmd Секунда при начальной загрузке
sysprep-специализированный-сценарий-летучая мышь Третий при начальной загрузке
sysprep-специализированный-скрипт-url Четвертый при начальной загрузке
сценарий запуска Windows-ps1 Сначала при каждой загрузке после начальной загрузки
Windows-сценарий запуска-cmd Секунда при каждой загрузке после начальной загрузки
Windows-стартап-скрипт-летучая мышь Третий при каждой загрузке после начальной загрузки
URL-адрес сценария запуска Windows Четвертый при каждой загрузке после начальной загрузки

Прямая передача сценария запуска Windows

Разрешения, необходимые для этой задачи

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

  • Все разрешения, необходимые для создания новой виртуальной машины.
  • Compute.instances.setMetadata на виртуальной машине.

Передать содержимое пакетного файла, командной оболочки или неподписанного запуска PowerShell сценарий непосредственно на виртуальную машину Windows Server. Следующие процедуры показывают, как передать неподписанный сценарий PowerShell.

Консоль

Передача сценария запуска Windows непосредственно на новую виртуальную машину

  1. В Google Cloud Console перейдите на страницу Создать экземпляр .

    Перейти к созданию экземпляра

  2. Для Загрузочный диск выберите Изменить и выполните следующие действия:

    1. На вкладке Общедоступные образы выберите Windows Server операционная система.
    2. Нажмите Выберите .
  3. Разверните раздел Сеть, диски, безопасность, управление, единоличная аренда и выполните далее:

    1. Разверните раздел Управление .
    2. В разделе Метаданные нажмите Добавить элемент , чтобы установить ключ и Значение :

      • Ключ : установите значение windows-startup-script-ps1 .

        Сценарии запуска, переданные виртуальной машине с использованием ключей метаданных, начинающихся с windows-startup-script запускается при каждой загрузке после запуска виртуальной машины начальная загрузка.

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

          # Установка IIS
        Диспетчер серверов Import-Module
        Веб-сервер Install-WindowsFeature -IncludeAllSubFeature
        
        # Убедитесь, что каталог существует
        if (-not (Test-Path("C:\inetpub\wwwroot"))) {Новый элемент "C:\inetpub\wwwroot" -Type Directory}
        
        # Запишите расширенную строку в файл, перезаписывая файл, если он уже существует."

        Сценарий запуска Windows добавлен напрямую.

        " | Out-File -FilePath C:\inetpub\wwwroot\index.html -Кодировка ascii -Force
  4. Нажмите Создать .

Передача сценария запуска Windows непосредственно на существующую виртуальную машину

  1. В Google Cloud Console перейдите на страницу экземпляров ВМ .

    Перейти к экземплярам ВМ

  2. Щелкните Имя виртуальной машины.

  3. Щелкните Редактировать .

  4. В разделе Метаданные укажите следующее:

    • ключ : windows-startup-script-ps1
    • значение : содержимое сценария запуска

Проверка сценария запуска

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

gcloud (Баш)

Передача сценария запуска Windows непосредственно на новую виртуальную машину

Передайте содержимое сценария запуска непосредственно на виртуальную машину Windows Server при ее создании с помощью используя следующие вычисления gcloud экземпляры создают команду :

экземпляры вычислений gcloud создают  ИМЯ_ВМ  \
  --image-project=windows-cloud \
  --image-family=windows-2019-ядро \
  --metadata=windows-startup-script-ps1='Import-Module servermanager
  Веб-сервер Install-WindowsFeature -IncludeAllSubFeature
  "

Сценарий запуска Windows добавлен напрямую.

" > C:\inetpub\wwwroot\index.html'

Замените VM_NAME на имя виртуальной машины.

Передача сценария запуска Windows непосредственно на существующую виртуальную машину

Добавьте сценарий запуска непосредственно в существующую виртуальную машину, используя следующую команду. gcloud вычислительные экземпляры команда add-metadata :

добавление метаданных вычислительных экземпляров gcloud  ИМЯ_ВМ  \
  --image-project=windows-cloud \
  --image-family=windows-2019-ядро \
  --metadata=windows-startup-script-ps1='Import-Module servermanager
  Веб-сервер Install-WindowsFeature -IncludeAllSubFeature
  "

Сценарий запуска Windows добавлен напрямую.

" > C:\inetpub\wwwroot\index.html'

Замените VM_NAME на имя виртуальной машины.

Проверка сценария запуска

После запуска виртуальной машины просмотрите внешний IP-адрес в веб-браузере, чтобы убедиться, что сценарий запуска создал веб-сайт. —metadata=windows-startup-script-ps1=’Import-Module servermanager Веб-сервер Install-WindowsFeature -IncludeAllSubFeature «

Сценарий запуска Windows добавлен напрямую.—metadata=windows-startup-script-ps1=’Import-Module servermanager Веб-сервер Install-WindowsFeature -IncludeAllSubFeature «

Сценарий запуска Windows добавлен напрямую.

» > C:\inetpub\wwwroot\index.html’

Замените VM_NAME на имя виртуальной машины.

Проверка сценария запуска

После запуска виртуальной машины просмотрите внешний IP-адрес в веб-браузере, чтобы убедиться, что сценарий запуска создал веб-сайт.Возможно, вам придется подождать около 10 минут, чтобы пример сценария запуска финиш.

gcloud (PowerShell)

Передача сценария запуска Windows непосредственно на новую виртуальную машину

Передайте содержимое сценария запуска непосредственно на виртуальную машину Windows Server при ее создании с помощью используя следующие вычисления gcloud экземпляры создают команду :

экземпляры вычислений gcloud создают  VM_NAME  `
  --image-project=windows-cloud `
  --image-family=windows-2019-ядро `
  --metadata=windows-startup-script-ps1='Import-Module servermanager
  Веб-сервер Install-WindowsFeature -IncludeAllSubFeature
  "

Сценарий запуска Windows добавлен напрямую.

" > C:\inetpub\wwwroot\index.html'

Замените VM_NAME на имя виртуальной машины.

Передача сценария запуска Windows непосредственно на существующую виртуальную машину

Добавьте сценарий запуска непосредственно в существующую виртуальную машину, используя следующую команду. gcloud вычислительные экземпляры команда add-metadata :

добавление метаданных вычислительных экземпляров gcloud  VM_NAME  `
  --image-project=windows-cloud `
  --image-family=windows-2019-ядро `
  --metadata=windows-startup-script-ps1='Import-Module servermanager
  Веб-сервер Install-WindowsFeature -IncludeAllSubFeature
  "

Сценарий запуска Windows добавлен напрямую.

" > C:\inetpub\wwwroot\index.html'

Замените VM_NAME на имя виртуальной машины.

Проверка сценария запуска

После запуска виртуальной машины просмотрите внешний IP-адрес в веб-браузере, чтобы убедиться, что сценарий запуска создал веб-сайт. Возможно, вам придется подождать около 10 минут, прежде чем пример сценария запуска запустится. финиш.

API

Передача сценария запуска Windows непосредственно на новую виртуальную машину

Передать содержимое сценария запуска непосредственно на виртуальную машину Windows Server. при его создании с использованием следующих экземпляров .вставка метод.

POST https://compute.googleapis.com/compute/v1/projects/  PROJECT_ID  /zones/  ZONE  /instances

{
  ...
  "сетевые интерфейсы": [
    {
      "Конфигурации доступа": [
        {
          "тип": "ONE_TO_ONE_NAT"
        }
      ]
    }
  ],
  "метаданные": {
    "Предметы": [
      {
        «ключ»: «сценарий запуска Windows-ps1»,
        "value": "Import-Module servermanager\nInstall-WindowsFeature Web-Server -IncludeAllSubFeature\necho '

Сценарий запуска Windows добавлен напрямую.

' > C:\\inetpub\\wwwroot\\index.html" } ] }, ... }

Заменить следующее:

Передача сценария запуска Windows непосредственно на существующую виртуальную машину

  1. Получите значение tags.fingerprint виртуальной машины с помощью instances.get метод.

    ПОЛУЧИТЬ https://compute.googleapis.com/compute/v1/projects/  PROJECT_ID  /zones/  ZONE  /instances/  VM_NAME 
     

    Заменить следующее:

  2. Передайте сценарий запуска, используя значение отпечатка пальца вместе с ключ и значение метаданных для сценария запуска при вызове экземпляра.установить метаданные метод:

    POST https://compute.googleapis.com/compute/v1/projects/  PROJECT_ID  /zones/  ZONE  /instances/  VM_NAME  /setMetadata
    
    {
     «отпечаток пальца»:  ОТПЕЧАТОК ,
     "Предметы": [
       {
         «ключ»: «сценарий запуска Windows-ps1»,
         "value": "Import-Module servermanager\nInstall-WindowsFeature Web-Server -IncludeAllSubFeature\necho '

    Сценарий запуска Windows добавлен напрямую.

    ' > C:\\inetpub\\wwwroot\\index.html" } ], ... }

    Заменить следующее:

    • PROJECT_ID : идентификатор проекта

    • ЗОНА : зона виртуальной машины

    • ИМ_ВМ : зона ВМ

    • FINGERPRINT : значение tags.fingerprint получено с использованием instances.get метод

Проверка сценария запуска

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

Передача сценария запуска Windows из локального файла

Разрешения, необходимые для этой задачи

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

  • Все разрешения, необходимые для создания новой виртуальной машины.
  • Compute.instances.setMetadata на виртуальной машине.

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

Перед передачей сценария запуска Windows из локального файла на виртуальную машину выполните далее:

  1. Создайте локальный ( .ps1 ) файл для хранения сценария запуска.

  2. Обратите внимание на относительный путь от gcloud CLI до сценария запуска.

  3. Добавьте в файл следующий сценарий запуска:

      # Установка IIS
    Диспетчер серверов Import-Module
    Веб-сервер Install-WindowsFeature -IncludeAllSubFeature
    
    # Убедитесь, что каталог существует
    if (-not (Test-Path("C:\inetpub\wwwroot"))) {Новый элемент "C:\inetpub\wwwroot" -Type Directory}
    
    # Запишите расширенную строку в файл, перезаписывая файл, если он уже существует."

    Сценарий запуска Windows передается из файла на вашей локальной рабочей станции.

    " | Out-File -FilePath C:\inetpub\wwwroot\index.html -Кодировка ascii -Force

gcloud (Баш)

Передача сценария запуска Windows из локального файла на новую виртуальную машину

Создайте виртуальную машину и передайте содержимое локального файла для использования в качестве сценария запуска с помощью команды вычислительных экземпляра gcloud создают команда с флагом --metadata-from-file :

экземпляры вычислений gcloud создают  ИМЯ_ВМ  \
  --image-project=windows-cloud \
  --image-family=windows-2019-ядро \
  --metadata-from-file=windows-startup-script-ps1=  FILE_PATH 
 

Замените следующее:

  • VM_NAME : имя виртуальной машины
  • FILE_PATH : относительный путь к автозагрузке файл сценария
Передача сценария запуска Windows из локального файла в существующую виртуальную машину

Передайте сценарий запуска существующей виртуальной машине из локального файла, используя следующие gcloud вычислительные экземпляры команда add-metadata :

добавление метаданных вычислительных экземпляров gcloud  ИМЯ_ВМ  \
  --metadata-from-file=windows-startup-script-ps1=  FILE_PATH 
 

Замените следующее:

  • VM_NAME : имя виртуальной машины
  • FILE_PATH : относительный путь к автозагрузке файл сценария
Проверка сценария запуска

Просмотрите внешний IP-адрес в веб-браузере, чтобы убедиться, что сценарий запуска создал веб-сайт. —metadata-from-file=windows-startup-script-ps1= FILE_PATH

Замените следующее:

  • VM_NAME : имя виртуальной машины
  • FILE_PATH : относительный путь к автозагрузке файл сценария
Проверка сценария запуска

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

gcloud (PowerShell)

Передача сценария запуска Windows из локального файла на новую виртуальную машину

Создайте виртуальную машину и передайте содержимое локального файла для использования в качестве сценария запуска с помощью команды вычислительных экземпляра gcloud создают команда с флагом --metadata-from-file :

экземпляры вычислений gcloud создают  VM_NAME  `
  --image-project=windows-cloud `
  --image-family=windows-2019-ядро `
  --metadata-from-file=windows-startup-script-ps1=  FILE_PATH 
 

Замените следующее:

  • VM_NAME : имя виртуальной машины
  • FILE_PATH : относительный путь к автозагрузке файл сценария
Передача сценария запуска Windows из локального файла в существующую виртуальную машину

Передайте сценарий запуска существующей виртуальной машине из локального файла, используя следующие gcloud вычислительные экземпляры команда add-metadata :

добавление метаданных вычислительных экземпляров gcloud  VM_NAME  `
  --metadata-from-file=windows-startup-script-ps1=  FILE_PATH 
 

Замените следующее:

  • VM_NAME : имя виртуальной машины
  • FILE_PATH : относительный путь к автозагрузке файл сценария
Проверка сценария запуска

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

Передача сценария запуска Windows из облачного хранилища

Разрешения, необходимые для этой задачи

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

  • Все разрешения, необходимые для создания новой виртуальной машины.
  • Compute.instances.setMetadata на виртуальной машине.
  • Разрешение на доступ к корзине и файлу сценария в облачном хранилище.Проверьте настройки контроля доступа на ведре и файле, чтобы убедиться, что у вас есть разрешение.

Сценарий запуска можно сохранить в виде пакетного файла, сценария командной оболочки, подписанного или неподписанный скрипт PowerShell в облачном хранилище и передать его на виртуальную машину, когда вы создаете его. После того как вы добавите сценарий запуска в Cloud Storage, вы иметь URL-адрес, который можно использовать для ссылки на сценарий запуска при создании ВМ.

Перед добавлением сценария запуска из корзины Cloud Storage выполните далее:

  1. Создайте файл для хранения сценария запуска.В этом примере используется PowerShell ( .ps1 ).

  2. Добавьте в файл следующий сценарий PowerShell, который устанавливает веб-сервер и создает простую веб-страницу:

      # Установка IIS
    Диспетчер серверов Import-Module
    Веб-сервер Install-WindowsFeature -IncludeAllSubFeature
    
    # Убедитесь, что каталог существует
    if (-not (Test-Path("C:\inetpub\wwwroot"))) {Новый элемент "C:\inetpub\wwwroot" -Type Directory}
    
    # Запишите расширенную строку в файл, перезаписывая файл, если он уже существует."

    Сценарий запуска Windows передан из облачного хранилища.

    " | Out-File -FilePath C:\inetpub\wwwroot\index.html -Кодировка ascii -Force
  3. Создайте корзину облачного хранилища.

  4. Добавьте файл в корзину облачного хранилища.

Влияние на безопасность

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

  • Если корзина или объект Cloud Storage менее защищены, чем метаданные, существует риск повышения привилегий, если сценарий запуска изменен и виртуальная машина перезагружается. Это связано с тем, что после перезагрузки виртуальной машины запускается сценарий запуска. как LocalSystem , а затем может использовать разрешения подключенной службы аккаунт для доступа к другим ресурсам.

Консоль

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

  1. В Google Cloud Console перейдите на страницу Создать экземпляр .

    Перейти к созданию экземпляра

  2. Для Загрузочный диск выберите Изменить и выполните следующие действия:

    1. На вкладке Общедоступные образы выберите Windows Server операционная система.
    2. Нажмите Выберите .
  3. В разделе Идентификация и доступ к API выберите учетную запись службы, которая имеет средство просмотра объектов хранения роль.

  4. Разверните раздел Сеть, диски, безопасность, управление, единоличная аренда , а затем выполните далее:

    1. Разверните раздел Управление .
    2. В разделе Метаданные добавьте следующие значения:

      • Ключ : ключ метаданных. Укажите windows-startup-script-url ключ метаданных, поэтому скрипт запускается при каждой загрузке после начального ботинок.

      • Значение : значение метаданных. Установите в облачное хранилище расположение файла сценария запуска в одном из следующих форматов:

        • Аутентифицированный URL-адрес : https://storage.googleapis.com/ BUCKET / ФАЙЛ
        • gsutil URI : gs:// BUCKET / ФАЙЛ

        Заменить следующее:

        • BUCKET : имя ведра, которое содержит файл сценария запуска
        • ФАЙЛ : имя сценария запуска файл
  5. Чтобы создать виртуальную машину, нажмите Create .

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

  1. В Google Cloud Console перейдите на страницу экземпляров ВМ .

    Перейти к экземплярам ВМ

  2. Щелкните Имя виртуальной машины.

  3. Нажмите Редактировать .

  4. В разделе Метаданные добавьте следующие значения:

    • Аутентифицированный URL-адрес : https://storage.googleapis.com/ BUCKET / ФАЙЛ
    • gsutil URI : gs:// BUCKET / ФАЙЛ

Проверка сценария запуска

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

gcloud (Баш)

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

Передайте сценарий запуска, хранящийся в облачном хранилище, в Windows Виртуальная машина сервера с использованием следующих вычислительных экземпляров gcloud создает команда. Для значения флага --scopes используйте storage-ro , чтобы виртуальная машина могла получить доступ Облачное хранилище.

экземпляры вычислений gcloud создают  ИМЯ_ВМ  \
  --image-project=windows-cloud \
  --image-family=windows-2019-ядро \
  --scopes=хранилище-ro \
  --metadata=windows-startup-script-url=  CLOUD_STORAGE_URL 
 

Замените следующее:

  • VM_NAME : имя виртуальной машины.
  • CLOUD_STORAGE_URL : значения метаданных. Установлен в расположение файла сценария запуска, используя один из следующих форматы:
    • Аутентифицированный URL-адрес : https://storage.googleapis.com/ BUCKET / ФАЙЛ
    • gsutil URI : gs:// BUCKET / ФАЙЛ
Передача сценария запуска, хранящегося в облачном хранилище, на существующую виртуальную машину

Передайте сценарий запуска, хранящийся в облачном хранилище, в существующая виртуальная машина, используя следующие вычислительных экземпляра gcloud add-metadata команда:

добавление метаданных вычислительных экземпляров gcloud  ИМЯ_ВМ  \
  --metadata=windows-startup-script-url=  CLOUD_STORAGE_URL 
 

Замените следующее:

  • VM_NAME : имя виртуальной машины.
  • CLOUD_STORAGE_URL : значения метаданных. Установлен в расположение файла сценария запуска, используя один из следующих форматы:
    • Аутентифицированный URL-адрес : https://storage.googleapis.com/ BUCKET / ФАЙЛ
    • gsutil URI : gs:// BUCKET / ФАЙЛ
Проверка сценария запуска

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

gcloud (командная строка)

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

Передайте сценарий запуска, хранящийся в облачном хранилище, в Windows Виртуальная машина сервера с использованием следующих вычислительных экземпляров gcloud создает команда. Для значения флага --scopes используйте storage-ro , чтобы виртуальная машина могла получить доступ Облачное хранилище.—metadata=windows-startup-script-url= CLOUD_STORAGE_URL

Замените следующее:

  • VM_NAME : имя виртуальной машины.
  • CLOUD_STORAGE_URL : значения метаданных. Установлен в расположение файла сценария запуска, используя один из следующих форматы:
    • Аутентифицированный URL-адрес : https://storage.googleapis.com/ BUCKET / ФАЙЛ
    • gsutil URI : gs:// BUCKET / ФАЙЛ
Передача сценария запуска, хранящегося в облачном хранилище, на существующую виртуальную машину

Передайте сценарий запуска, хранящийся в облачном хранилище, в существующая виртуальная машина, используя следующие вычислительных экземпляра gcloud add-metadata команда:

добавление метаданных вычислительных экземпляров gcloud  VM_NAME  ^
  --metadata=windows-startup-script-url=  CLOUD_STORAGE_URL 
 

Замените следующее:

  • VM_NAME : имя виртуальной машины.
  • CLOUD_STORAGE_URL : значения метаданных. Установлен в расположение файла сценария запуска, используя один из следующих форматы:
    • Аутентифицированный URL-адрес : https://storage.googleapis.com/ BUCKET / ФАЙЛ
    • gsutil URI : gs:// BUCKET / ФАЙЛ
Проверка сценария запуска

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

gcloud (PowerShell)

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

Передайте сценарий запуска, хранящийся в облачном хранилище, в Windows Виртуальная машина сервера с использованием следующих вычислительных экземпляров gcloud создает команда. Для значения флага --scopes используйте storage-ro , чтобы виртуальная машина могла получить доступ Облачное хранилище.

экземпляры вычислений gcloud создают  VM_NAME  `
  --image-project=windows-cloud `
  --image-family=windows-2019-ядро `
  --scopes=хранилище-ро `
  --metadata=windows-startup-script-url=  CLOUD_STORAGE_URL 
 

Замените следующее:

  • VM_NAME : имя виртуальной машины.
  • CLOUD_STORAGE_URL : значения метаданных. Установлен в расположение файла сценария запуска, используя один из следующих форматы:
    • Аутентифицированный URL-адрес : https://storage.googleapis.com/ BUCKET / ФАЙЛ
    • gsutil URI : gs:// BUCKET / ФАЙЛ
Передача сценария запуска, хранящегося в облачном хранилище, на существующую виртуальную машину

Передайте сценарий запуска, хранящийся в облачном хранилище, в существующая виртуальная машина, используя следующие вычислительных экземпляра gcloud add-metadata команда:

добавление метаданных вычислительных экземпляров gcloud  VM_NAME  `
  --metadata=windows-startup-script-url=  CLOUD_STORAGE_URL 
 

Замените следующее:

  • VM_NAME : имя виртуальной машины.
  • CLOUD_STORAGE_URL : значения метаданных. Установлен в расположение файла сценария запуска, используя один из следующих форматы:
    • Аутентифицированный URL-адрес : https://storage.googleapis.com/ BUCKET / ФАЙЛ
    • gsutil URI : gs:// BUCKET / ФАЙЛ
Проверка сценария запуска

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

API

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

Передайте сценарий запуска, хранящийся в облачном хранилище, в Windows Виртуальная машина сервера с использованием следующих экземпляров. Вставьте метод. К прицелам поле, добавьте https://www.googleapis.com/auth/devstorage.read_only , чтобы виртуальная машина может получить доступ к облачному хранилищу.

ОТПРАВИТЬ https://compute.googleapis.com/compute/v1/projects/  PROJECT_ID  /zones/  ZONE  /instances

{
  ...
  "сетевые интерфейсы": [
    {
      "Конфигурации доступа": [
        {
          "тип": "ONE_TO_ONE_NAT"
        }
      ]
    }
  ],
  "сервисные аккаунты": [
    {
      "электронная почта": "по умолчанию",
      "прицелы": [
        "https://www.googleapis.com/auth/devstorage.read_only"
      ]
    }
  ],
  "метаданные": {
    "Предметы": [
      {
        "ключ": "URL-адрес сценария запуска Windows",
        "значение": " CLOUD_STORAGE_URL "
      },
      ...
    ]
  },
  ...
}
 

Заменить следующее:

  • PROJECT_ID : идентификатор проекта.

  • ЗОНА : зона для создания новой ВМ.

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

    • Аутентифицированный URL-адрес : https://storage.googleapis.com/ BUCKET / ФАЙЛ
    • gsutil URI : gs:// BUCKET / ФАЙЛ

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

  1. Получить теги .значение отпечатка виртуальной машины с использованием instances.get метод.

    ПОЛУЧИТЬ https://compute.googleapis.com/compute/v1/projects/  PROJECT_ID  /zones/  ZONE  /instances/  VM_NAME 
     

    Заменить следующее:

  2. Передайте сценарий запуска, используя значение отпечатка пальца вместе с ключ и значение метаданных для сценария запуска при вызове instances.setMetadata метод:

    ОТПРАВИТЬ https://compute.googleapis.com/compute/v1/projects/  PROJECT_ID  /zones/  ZONE  /instances/  ИМЯ_ВМ  /setMetadata
    
    {
      «отпечаток пальца»:  ОТПЕЧАТОК ,
      "Предметы": [
        {
            "ключ": "URL-адрес сценария запуска Windows",
            "значение": " CLOUD_STORAGE_URL "
        }
      ],
      ...
    }
     

    Заменить следующее:

    • PROJECT_ID : идентификатор проекта.

    • ЗОНА : зона виртуальной машины.

    • ИМЯ_ВМ : зона ВМ.

    • FINGERPRINT : значение tags.fingerprint получено с использованием instances.get метод.

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

      • Аутентифицированный URL-адрес : https://storage.googleapis.com/ BUCKET / ФАЙЛ
      • gsutil URI : gs:// BUCKET / ФАЙЛ

Проверка сценария запуска

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

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

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

  1. Создайте сценарий запуска, который запрашивает значение ключа метаданных. Для Например, следующий PowerShell ( .ps1 ) сценарий запуска запрашивает значение ключ метаданных foo .

      $METADATA_VALUE = (Invoke-RestMethod -Headers @{'Metadata-Flavor' = 'Google'} -Uri "http://metadata.google.internal/computeMetadata/v1/instance/attributes/foo")
    
    # Установка ИИС
    Диспетчер серверов Import-Module
    Веб-сервер Install-WindowsFeature -IncludeAllSubFeature
    
    # Убедитесь, что каталог существует
    if (-not (Test-Path("C:\inetpub\wwwroot"))) {Новый элемент "C:\inetpub\wwwroot" -Type Directory}
    
    # Запишите расширенную строку в файл, перезаписывая файл, если он уже существует."

    Доступ к значению метаданных foo: $METADATA_VALUE

    " | Out-File -FilePath C:\inetpub\wwwroot\index.html -Кодировка ascii -Force
  2. Установите значение ключа метаданных foo при создании виртуальной машины с помощью следующие вычислительных экземпляра gcloud создают команда. Для этого примера сценарий запуска передается на виртуальную машину из локального файла.

    gcloud

    экземпляры вычислений gcloud создают  ИМЯ_ВМ  \
      --image-project=windows-cloud \
      --image-family=windows-2019 \
      --metadata-from-file=windows-startup-script-ps1=  FILE_PATH  \
      --metadata=foo=бар
     

    Заменить следующее:

    Дополнительные сведения о том, как указать пару ключ/значение метаданных, см. Настройка пользовательских метаданных.

  3. Просмотрите внешний IP-адрес в веб-браузере, чтобы убедиться, что сценарий запуска выводит значение foo . Возможно, вам придется подождать около 10 минут, пока пример сценария запуска для завершения.

Повторный запуск сценария запуска Windows

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

  1. Подключение к ВМ.

  2. Выполнение следующей команды:

    C:\Program Files\Google\Compute Engine\metadata_scripts\run_startup_scripts.команда
     

Просмотр выходных данных сценария запуска Windows

Просмотр вывода сценария запуска Windows Server с помощью любого из отслеживание и проверка событий GCEMetadataScripts :

Что дальше

Страница не найдена

Моя библиотека

раз
    • Моя библиотека
    «» Настройки файлов cookie

    Как создавать сценарии PowerShell в Windows 10 и Windows 11 с помощью Visual Studio Code

    Знаете ли вы, что вы можете создавать сценарии PowerShell в Windows 10 и Windows 11? Теперь, когда вы установили PowerShell в Windows, вам, возможно, захочется узнать, что вы можете делать с ним на своем ПК.В этом руководстве мы покажем вам, как создать простой файл сценария с помощью Visual Studio Code и запустить файл сценария в PowerShell в Windows 10 и Windows 11.

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

    Как создавать сценарии PowerShell в Windows 10 и Windows 11

    Раньше вы могли создавать сценарии практически в любом текстовом редакторе.Тем не менее, Microsoft предпочитает использовать редактор кода Visual Studio с расширением PowerShell.

    Visual Studio Code (VS Code) — это мощный, но легкий редактор исходного кода, который работает на вашем рабочем столе и доступен в Windows, macOS и Linux.

    VS Code поставляется со встроенной поддержкой JavaScript, TypeScript и Node.js. В качестве дополнительного преимущества вы получаете богатую экосистему расширений для других языков разработки, включая C++, C#, Java, Python, PHP, Go, а также среды выполнения, такие как .NET и Юнити.

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

    Установить код VS

    1. Загрузите установщик VS Code в Windows
    2. После загрузки запустите установщик (VSCodeUserSetup-{версия}.exe), чтобы установить VS Code

    Кроме того, вы также можете загрузить Zip-архив, распаковать его и запустить оттуда программу установки VS Code.

    После установки VS Code необходимо установить расширение PowerShell, чтобы можно было создавать сценарии PowerShell.

    Установите расширение PowerShell на VS Code

    Вот как открыть VS Code и установить расширение PowerShell

    1. Откройте VS Code
    2. Нажмите Extensions на левой панели (стрелка)
    3. Найдите и выберите «PowerShell»
    4. Нажмите кнопку Install , чтобы установить PowerShell (или Расширение PowerShell Preview ) для VS Code

    После выполнения этих шагов вы можете приступить к созданию сценариев PowerShell в Windows 10 с помощью VS Code.

    Если вы хотите установить другие расширения в будущем, используйте сочетание клавиш Ctrl + Shift + X , чтобы перейти непосредственно к расширениям VS Code. Если у вас есть время, вы можете ознакомиться с другими сочетаниями клавиш, доступными с помощью «Показать все команды» в VS Code, сочетание клавиш Ctrl + Shift + P .

    Создание сценариев PowerShell с помощью VS Code

    Вот что нужно сделать, чтобы создать скрипт:

    1. Открыть Код ВС
    2.Щелкните меню File и выберите параметр New File . В качестве альтернативы
    используйте сочетание клавиш Ctrl + N


    3. Отсюда вы можете снова перейти в меню «Файл», затем выбрать «Сохранить как », чтобы изменить тип файла. В качестве альтернативы используйте сочетание клавиш Ctrl + Shift + S
    4. Измените имя и местоположение файла на своем ПК по своему усмотрению. Измените «Сохранить как тип» на PowerShell , как показано на рисунке

    . 5. Нажмите Сохранить , чтобы сохранить файл.

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

    1. Откройте файл, созданный в VS Code
    2. Напишите новый или вставьте скрипт, который хотите запустить:
    Write-Host "Привет, мир! Я создал скрипт PowerShell!"
    Приведенный выше сценарий выводит фразу: «Привет, мир! Я создал сценарий PowerShell!»
    3. (Необязательно) Вы можете использовать Выполнить в правом верхнем углу или нажать F5, чтобы запустить сценарий во встроенном окне PowerShell и увидеть вывод ниже, как показано


    4.Щелкните меню Файл и щелкните Сохранить , когда вы закончите сохранять файл.

    Изменить политику выполнения Windows в PowerShell

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

    Вот как это изменить.

    1. Откройте PowerShell и Запустите от имени администратора
    2.Скопируйте и вставьте следующую команду для запуска сценариев PowerShell:
    Set-ExecutionPolicy RemoteSigned
    3. Нажмите Введите , чтобы запустить команду
    4. Введите A и нажмите Введите

    Теперь, когда политика выполнения Windows 10 была изменена в PowerShell, пришло время запустить сценарий PowerShell.
    1. Откройте PowerShell и Запустите от имени администратора
    2. Вставьте путь к файлу сценария PowerShell, который был создан
    C:\Users\DAVE\Downloads\TestScript.ps1
    3. Нажмите Введите для запуска скрипта

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

    Дополнительные ресурсы Windows 10 и Windows 11

    Для получения дополнительных полезных статей, обзоров и ответов на часто задаваемые вопросы о Windows 10 посетите ресурсы OnMSFT, доступные ниже.

    Windows 10 на OnMSFT — все, что вам нужно знать

    Windows 11 на OnMSFT — все, что вам нужно знать

    OnPodcast: подкаст OnMSFT на YouTube

    У вас есть предложения по Windows 10 и Windows 11 советы и рекомендации? Дайте нам знать об этом в комментариях!

    Поделиться этой публикацией:

    Учебное пособие по написанию сценариев Windows PowerShell для начинающих

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

    Предупреждение: Запустить сценарии PowerShell легко, но они могут оказать серьезное влияние на стабильность и безопасность вашей ИТ-экосистемы. Во время обучения обязательно экспериментируйте с Windows PowerShell только в изолированной среде.

    Запуск Windows PowerShell

    PowerShell предлагает как параметр командной строки, так и интегрированную среду сценариев (ISE):

    • Чтобы запустить командную строку PowerShell, введите powershell.exe  в меню «Пуск» Windows. Вы увидите экран, подобный следующему:

    • Чтобы запустить PowerShell ISE, введите powershellexe в меню «Пуск». Использование ISE является предпочтительным способом работы с языком, поскольку оно обеспечивает подсветку синтаксиса, автоматическое заполнение команд и другие функции автоматизации, которые упрощают разработку и тестирование сценариев PowerShell.

    Подготовка к запуску сценариев PowerShell

    Кроме того, существует политика, ограничивающая выполнение сценариев. Вы можете проверить эту политику, выполнив команду Get-ExecutionPolicy в PowerShell:

    .

    Вы получите одно из следующих значений:

    • Restricted — Использование скриптов запрещено. Это значение по умолчанию.
    • AllSigned — Вы можете запускать сценарии, подписанные доверенным разработчиком. Перед выполнением скрипт попросит вас подтвердить, что вы хотите его запустить.
    • RemoteSigned — Вы можете запускать собственные сценарии или сценарии, подписанные доверенным разработчиком.
    • Без ограничений — Вы можете запускать любой скрипт, который хотите.

    Если установлено значение Restricted, измените его на другой параметр с помощью команды PowerShell Set-ExecutionPolicy:

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

    .

    Командлеты PowerShell

    О командлетах

    Командлет — это команда PowerShell. Вот некоторые важные сведения о командлетах:

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

    Формат командлета

    Командлет всегда состоит из глагола (или слова, функционирующего как глагол) и существительного, разделенных дефисом (правило «глагол-существительное»). Например, некоторые из глаголов включают:

    • Получить — Получить что-то
    • Набор — Что-то определить
    • Старт — Запустить что-то
    • Стоп — Чтобы остановить что-то, что работает
    • Out — Вывести что-то
    • Новый — Создать что-то («новый» — это, конечно, не глагол, но действует как таковое)

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

    • Get-Process — показывает процессы, запущенные в данный момент на вашем компьютере:

    • Get-Service — показывает список служб с их статусом
    • Get-Content — показывает содержимое указанного вами файла (например, Get-Content C:\Windows\System32\drivers\etc\hosts)

    Доступные командлеты

    Хорошая новость — вам не нужно запоминать все командлеты.Вы можете получить список всех командлетов, выполнив командлет Get-Help -Category, который вернет следующее:

    Вы также можете создавать свои собственные командлеты.

    Параметры

    Каждый командлет имеет несколько параметров, определяющих его действия. PowerShell ISE автоматически предложит все допустимые параметры и их типы после ввода командлета и дефиса:

    .

    Вы также можете начать вводить значение параметра. Например, следующий командлет показывает все службы, имена которых начинаются с буквы «W»: Get-Service —Name W*

    .

    Еще один способ просмотреть параметры командлета — использовать сценарий, подобный приведенному ниже, который отобразит параметры для командлета Get-Process: Get-Process | Получить член.(«|» — это канал, по которому данные передаются от одного командлета к другому.)

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

     Get-Help Get-Process — примеры 

    Псевдонимы

    Вы также можете использовать псевдонимы — сокращенные имена командлетов. Например, вместо «Get-Help» можно использовать просто «Help». Попробуйте запустить следующие две команды и посмотрите, получите ли вы тот же результат:

    • Блокнот запуска процесса
    • запустить блокнот

    Точно так же, чтобы остановить этот процесс, вы можете использовать любую из следующих команд:

    • Блокнот Stop-Process-Name
    • spps -Имя блокнота

    Чтобы просмотреть все псевдонимы, выполните командлет Get-Alias.

    Комментарии к скрипту помогут вам и вашим коллегам лучше понять, что делает скрипт. Однострочный комментарий начинается со знака номера (#), а блочный комментарий начинается с «<#» и заканчивается «#>».

    Трубы

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

    .
     Get-Service | Sort-Object -статус свойства 

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

     "Привет, мир!" | Внешний файл C:\ps\test.текст 

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

     Get-Service | ГДЕ {$_.status -eq "Выполняется"} | ВЫБЕРИТЕ отображаемое имя
    # "$_." определяет текущий элемент в канале 

    Краткий обзор руководства по созданию сценариев Windows PowerShell

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

    Надеюсь, этот PowerShell для начинающих был вам полезен!

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

    Дополнительные ресурсы

    Полезные сценарии PowerShell

    Управление пользователями AD

    Управление компьютерами AD

    Управление группами и подразделениями

    Управление другими делами

    Получите больше возможностей с помощью PowerShell

    Другие ресурсы

    Часто задаваемые вопросы
    1. Сложно ли освоить PowerShell?

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

    1. С чего начать изучение PowerShell?

    Мы рекомендуем Учебник по написанию сценариев Windows PowerShell для начинающих. Он охватывает основы сценариев PowerShell, в том числе способы запуска сценариев PowerShell и использования наиболее распространенных команд PowerShell. Другим хорошим источником является страница PowerShell на веб-сайте Microsoft, которая включает в себя солидный вводный курс.

    1. Какие еще ресурсы есть по сценариям PowerShell?

    Вот еще несколько полезных ресурсов:

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

    Сценарии Windows в мониторах компонентов SAM

    Монитор сценариев Windows поддерживает пользовательские сценарии в системах на базе Windows. Вы можете создать несколько экземпляров этого монитора компонентов для каждого шаблона для запуска пользовательских сценариев.

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

    Перед кодированием и тестированием сценария ознакомьтесь с разделами Создание пользовательских сценариев Windows и Рекомендации для шаблонов SAM. Примеры мониторов сценариев доступны на сервере Orion по адресу: C:\Program Files (x86)\SolarWinds\Orion\APM\SampleScriptMonitors

    .

    Чтобы отобразить список готовых шаблонов SAM, поддерживающих сценарии Windows:

    • Перейдите на страницу «Управление шаблонами».
    • Щелкните Настройки > Все настройки > Настройки SAM > Управление шаблонами.
    • На странице «Управление шаблонами Application Monitor» введите Windows в поле поиска.

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

    1. Установите механизм языка сценариев или программное обеспечение на сервер Orion.
    2. Убедитесь, что место установки языка сценариев находится в переменной пути системной среды.
    3. В шаблоне SAM разверните сведения для Windows Script Monitor и укажите язык сценариев в поле Script Engine.

    Как работает сценарий Windows

    Монитор сценариев Windows выполняет сценарий на сервере Orion, подключающемся к целевому серверу, для сбора показателей:

    1. Выполняет скрипт, используя аргументы скрипта на сервере Orion.

    2. Монитор подключается к целевому серверу, используя введенные учетные данные для сбора метрик.
    3. SAM анализирует текстовый вывод, сохраняет данные и сообщает о значениях, используя форматы вывода из монитора компонентов.

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

    SolarWinds рекомендует писать сценарии в мониторе сценариев Windows для проверки правильности доступа между основным механизмом опроса, SAM и целевым сервером (серверами).Вы можете писать и тестировать сценарии в предпочитаемой вами интегрированной среде сценариев (ISE), подключаясь и тестируя целевой сервер, чтобы проверить, работает ли код. Протестируйте сценарий с помощью монитора сценариев Windows, чтобы проверить учетные данные и доступ к целевому серверу, а также создать выходные данные метрик.

    Сценарий в мониторе должен включать:

    • Параметры для запуска скрипта в поле Scripts Arguments
    • Код скрипта добавлен в поле Script Body с учетными данными
    • Механизм сценариев для поддерживаемого языка программирования
    • Коды выхода для отчета о состоянии в сценарии
    • Отформатированный вывод после запуска скрипта

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

    Поле аргументов сценария

    Используйте это поле в окне «Редактировать сценарий», чтобы указать аргументы для передачи сценарию. Вы можете включить переменные ${IP} (или ${Node.DNS} ), ${USER} и ${PASSWORD} , которые заменяются соответственно IP-адресом целевого узла. , имя пользователя для учетных данных и пароль для учетных данных.

    Поле тела сценария

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

    Сценарии должны сообщать о своем состоянии путем выхода с соответствующим кодом выхода. Код выхода используется для сообщения о состоянии монитора, отображаемого в веб-консоли Orion.Дополнительные сведения см. в разделе Отчет о состоянии с помощью кодов выхода в мониторах сценариев SAM.

    Скриптовый движок

    Укажите используемый язык сценариев. Значение по умолчанию — vbscript . Ниже приведен список обработчиков сценариев, которые поддерживает Windows Script Host:

    .
    Имя Расширения файлов Наличие

    VBScript

    .ВБС

    Установлено по умолчанию

    JScript

    .js

    Установлено по умолчанию

    PerlScript

    .пожалуйста

    Бесплатное ПО

    ooRexxScript

    .ркс

    Бесплатное ПО

    PythonScript

    .пс

    Бесплатное ПО

    TclScript

    .тклс

    Бесплатное ПО

    ActivePHPScript

    .PHP

    Бесплатное ПО

    РубиСкрипт

    .

    руб.

    Бесплатное ПО

    Двигатель Объекта Рекс

    Коммерческий

    Механизм сценариев Delphi

    Коммерческий

    Обратите внимание на следующие детали:

    • Если для монитора приложений установлено значение «Без агента», сценарий VBScript выполняется на основном механизме опроса (обычно на сервере Orion).
    • Если в качестве монитора приложений выбран агент, сценарий запускается на целевом узле.
    • PowerShell использует WinRM, который работает через TCP-порты 5985 и 5986.
    • Все мониторы сценариев Linux, Unix и Nagios используют SSH через TCP-порт 22.

    Хотите узнать, как другие клиенты SolarWinds используют мониторы сценариев? Посетите форум Server & Application Monitor в THWACK.

    .

    Leave a comment