PowerShell инструмент не только для сисадмина


Содержание

Использование PowerShell в работе системного администратора

Использование PowerShell в работе системного администратора

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

По окончании курса Вы сможете:

  • Использовать команды PowerShell
  • Разрабатывать сценарии, функции и модули
  • Использовать программные возможности PowerShell
  • Выполнять задачи на удаленных компьютерах

Преподаватель курса Артём Сёмочкин.

Артём Сёмочкин. Помощник ведущего системного администратора. Эксперт в областях: Exchange Server и серверной инфраструктуры на базе Windows Server. Имеет многолетний опыт работы специалистом по интеграции серверных продуктов Microsoft, таких, как AD DS, Exchange, Skype For Business (Lync), Direct Access, RDS, Hyper-V. За спиной десятки проектов по созданию и модернизации IT- инфраструктуры как в компаниях госсектора, так и в коммерческих (до 5000 пользователей).

Программа курса

1 Введение в PowerShell 5.0.
  • Обзор технологии PowerShell;
  • Работа с ISE-редактором;
  • Работа со справочной системой;
  • Поиск и исследование команд;
  • 2 Работа с конвейером.
    • Механизм конвейера;
    • Сортировка и выборка объектов;
    • Работа со свойствами объектов;
    • Импорт и экспорт данных;
    • Перебор объектов.
  • 3 Использование поставщиков и дисков.
    • Обзор поставщиков (PSProv >4 Работа с выводом информации.
    • Простое форматирование;
    • Списки и Таблицы;
    • Расширенное форматирование;
    • Табличные представления.

  • 5 Создание скриптов PowerShell.
    • Использование переменных;
    • Циклы For, Do..While, While, Do..Until;
    • Защита сценариев;
    • Политика исполнения сценариев;
    • Цифровая подпись скриптов.
  • 6 Модули PowerShell.
    • Переход от команд к скрипту;
    • Переход от скрипта к функциям и модулям;
    • Реализация обработки основных ошибок;
    • Использование основных конструкций скриптов.
  • 7 Администрирование удалённых компьютеров.
    • Технология Remoting;
    • Топологии один-к-одному и один-ко-многим;
    • Передача параметров на удалённый компьютер;
    • Использование удалённых сессий;
    • Фоновые и назначенные задания.
  • 8 Управление продуктами Microsoft через PowerShell.
    • Создание скриптов для управления Exchange;
    • Создание скриптов для управления Skype for Business;
    • Создание скриптов для управления Windows Server.

  • Особенности курса

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

    Основы Windows PowerShell

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

    Что способствовало появлению Windows PowerShell?

    До появления PowerShell существовали (и существуют) следующие инструменты для автоматизации и администрирования сервисов: командная строка Windows и Windows Script Host. Но у этих технологий есть недостатки.

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

    Большинство программных продуктов имеет консольный интерфейс, т.е. мы можем управлять программой, используя командную строку, при этом экономя ресурсы за счет отсутствия затрат на работу графического интерфейса. Компания Microsoft для серверной операционной системы Windows Server даже выпускает редакции без графического интерфейса (Server Core, в Windows Server 2020 даже есть Nano Server), но всего этого недостаточно, так как возможности командной строки ограничены, т.е. написать какую-то сложную логику для автоматизации чего-либо мы не сможем, а если и сможем, то на это нам потребуется время и знания.

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

    Технология Windows Script Host позволяет выполнять все административные задачи, что и командная строка, включая их автоматизацию путем написания WSH скриптов, но здесь мы уже можем использовать полноценные языки программирования (VBScript и JScript), т.е. можно реализовывать сложную логику и алгоритмы. К тому же с помощью WSH мы управляем программными продуктами через объектный интерфейс, другими словами Windows Script Host намного «круче» чем командная строка. Но данная технология также не стала тем идеальным инструментом администрирования и автоматизации этого администрирования для системных администраторов, так как Windows Script Host требовал знаний вышеперечисленных языков программирования, что для системных администраторов на самом деле лишнее. Администраторам нужно всего лишь простой инструмент администрирования с возможностью запрограммировать какие-то действия, а углубляться в объектные модели программных продуктов на языках программирования VBScript и JScript им не хочется.

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

    Что такое Windows PowerShell?

    Windows PowerShell – это язык сценариев и командная оболочка Windows, которые разработаны для администрирования и конфигурирования операционных систем Windows. PowerShell разработан на основе среды CRL и платформы .NET Framework и в отличие от командной строки, которая принимает и возвращает текст, Windows PowerShell работает с объектами. У каждого объекта в PowerShell есть свойства и методы, которые можно использовать для управления этими объектами.

    В Windows PowerShell Microsoft разработала концепцию командлетов (cmdlets), которая представляет собой систему именования команд «Глагол-Существительное». Данная система позволяет системным администраторам быстрей освоить и упростить работу с PowerShell.

    С помощью Windows PowerShell можно:

    • Получать доступ к файловой системе;
    • Управлять реестром;
    • Управлять службами;
    • Управлять процессами;
    • Настраивать операционную систему;
    • Устанавливать программное обеспечение;
    • Устанавливать роли и компоненты сервера;
    • Осуществлять администрирование и конфигурирование ролей и компонентов сервера;
    • Писать и использовать сценарии для автоматизации управления и администрирования;
    • Выполнять другие задачи системных администраторов.

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

    Также для удобства многие часто используемые команды и утилиты в PowerShell имеют синонимы (Alias), например cls — это синоним командлета Clear-Host, dir синоним Get-ChildItem (полный список синонимов можно посмотреть путем запуска командлета Get-Alias).

    Для упрощения поиска нужной команды в PowerShell есть специальный командлет Get-Command, с помощью которого можно осуществлять поиск, как по глаголу, так и по существительному. Все команды в Windows PowerShell сгруппированы в модули (например, Hyper-V, NetTCPIP), что также упрощает поиск нужной команды.

    После того как нужная команда найдена, можно посмотреть инструкцию по работе с этой командой, т.е. справку, для этих целей есть специальный командлет Get-Help, например следующая команда покажет справку по командлету Get-Command:

    Справка в Windows PowerShell может быть краткой, детальной (параметр -Detailed), полной (параметр -Full), а также можно выводить только примеры (параметр — Examples). Следующая команда покажет только примеры использования командлета Get-Command:

    Справка PowerShell обновляемая, т.е. ее можно обновить командой Update-Help.

    Версии Windows PowerShell

    Первая версия PowerShell 1.0 появилась 14 ноября 2006 года и выпускалась в виде отдельного дистрибутива, который можно было установить на следующие версии операционных систем Windows: Windows XP Service Pack 2, Windows Server 2003 Service Pack 1 и Windows Vista.

    В Windows Server 2008 PowerShell 1.0 поставлялся в виде компонента, который также нужно было устанавливать.

    Начиная с Windows 7 и Windows Server 2008 R2, PowerShell поставляется как неотъемлемый компонент системы (т.е. предустановленный, устанавливать его не надо). Ниже представлена таблица соответствия версии PowerShell и версии операционной системы Windows (т.е. какая версия PowerShell по умолчанию установлена в той или иной версии Windows):

    Версия PowerShell Версии Windows
    PowerShell 2.0 Windows 7, Windows Server 2008 R2
    PowerShell 3.0 Windows 8, Windows Server 2012
    PowerShell 4.0 Windows 8.1, Windows Server 2012 R2
    PowerShell 5.0 Windows 10, Windows Server 2020

    С каждой новой версией PowerShell становится все более мощным инструментом администрирования, для сравнения в первой PowerShell было около 130 командлетов, а в PowerShell 5.0 их уже более 600!

    Узнать текущую версию PowerShell можно с помощью свойства PSVersion встроенной переменной $PSVersionTable, например, выполните следующую команду:

    Или запустите командлет

    где, значение PSVersion и будет версией PowerShell.

    Язык PowerShell

    PowerShell – это объектно-ориентированный скриптовой язык программирования. Он используется для написания команд управления всеми компонентами операционной системы Windows в оболочке Windows PowerShell, а также для написания сценариев автоматизации задач администрирования в интегрированной среде сценариев Windows PowerShell (ISE). Язык PowerShell хоть и создан для задач администрирования, он является полноценным скриптовым языком программирования, так как имеет программные конструкции, которые присутствуют в каждом языке программирования, такие как: условия, циклы, обработка ошибок, работа с переменными, объектами, массивами.

    Язык PowerShell имеет единый синтаксис написания команд и структуру именования этих команд по принципу «Глагол-Существительное», что делает данный язык интуитивно понятным как для программистов, так и для системных администраторов.

    Более подробно о программировании на данном языке можете посмотреть в материале — Программирование на языке PowerShell.

    Оболочка Windows PowerShell

    Оболочка Windows PowerShell – это среда выполнения команд и сценариев на языке PowerShell. Данная оболочка имеет те же возможности что и командная строка такие как: хранение истории выполнения команд, настройка внешнего вида оболочки, завершение выполнения команд сочетанием клавиш Ctrl+C, а также много других возможностей, которых нет в оболочке командной строки, например такая замечательная возможность как «подсветка синтаксиса» (появилась в PowerShell 5.0).


    Запустить оболочку PowerShell можно несколькими способами, например:

    • Из командной строки, набрав PowerShell;
    • Через диалоговое окно «Выполнить» (сочетание клавиш Win+R), также набрав PowerShell;
    • В Windows 7 — Пуск->Все программы ->Стандартные ->Windows PowerShell -> Windows PowerShell;
    • В Windows 8.1 или Windows Server 2012 R2 — Пуск->Все программы ->Служебные ->Windows PowerShell;
    • В Windows 10 или Windows Server 2020 — Пуск->Все программы -> Каталог Windows PowerShell (в группе W) -> Windows PowerShell.

    Пример запуска PowerShell в Windows Server 2020

    Скриншот оболочки PowerShell в Windows Server 2020

    Командлеты в PowerShell

    Командлет (cmdlet) – это команда Windows PowerShell, с помощью которой можно осуществлять взаимодействие с объектами операционной системы с целью их управления. Данные команды являются частью языка PowerShell. Командлеты построены по принципу «Глагол-Существительное», разделенные дефисом (-); другими словами, мы сначала указываем, что делать, а через дефис — над чем. Например, командлет Get-Help, где Get — это глагол, означающий «Получить», а Help — существительное «Помощь» в контексте PowerShell «Показать – Справку». Командлеты PowerShell возвращают результаты в виде объектов, что является одним из главных отличий от командной строки Windows, в которой команды возвращают только текст на экран.

    Кроме командлетов на получение данных (Get), существуют и такие типы командлетов как:

    • Add – добавление данных;
    • Clear – очистить;
    • Enable – включить;
    • Disable – выключить;
    • New – создать;
    • Remove – удалить;
    • Set – задать;
    • Start — запустить;
    • Stop – остановить;
    • Export – экспортировать;
    • Import – импортировать;
    • И еще много других.

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

    Как Вы уже поняли, у командлетов есть параметры, с помощью которых мы можем конкретизировать действия командлета. Параметры бывают обязательные и необязательные, например, у командлета Get-Command обязательных параметров нет.

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

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

    Если Вы не нашли нужный командлет по полному названию можете использовать маску в формате *Текст*.

    Конвейер в PowerShell

    Одной из главных возможностей Windows PowerShell является возможность использования конвейера при выполнении команд.

    Конвейер – это передача результата работы командлета через вертикальную черту (|) другому командлету. При этом, как Вы помните, в PowerShell командлеты работают с объектами и возвращают объекты, соответственно по конвейеру передаются также объекты.

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

    Например, давайте узнаем название самого большого файла в каталоге «C:\Windows\System32» (простой пример конвейера).

    • Get-ChildItem – командлет получения объектов в указанном каталоге;
    • Sort-Object – командлет для сортировки объектов, в нашем случае мы сортируем по размеру файла (length -Descending);
    • Select-Object – командлет выбора нужных свойств объекта, в нашем случае мы выводим стандартные поля и только самый первый объект, т.е. большой файл (параметр -First 1).
    Цукерберг рекомендует:  Javascript - Как огра. текст в WP «...» если сам текст генерир. плаги.

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

    Фоновое исполнение заданий

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

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

    В Windows PowerShell для работы с фоновыми заданиями есть следующие командлеты:

    • Start-Job – запустить фоновую задачу;
    • Stop-Job – остановить фоновую задачу
    • Get-Job – посмотреть список фоновых задач;
    • Receive-Job – посмотреть результат выполнения фоновой задачи;
    • Remove-Job – удалить фоновую задачу;
    • Wait-Job – перевести фоновую задачу на передний план, для того чтобы дожидаться ее окончания.

    Для запуска в фоновом режиме необходимо написать команду Start-Job, а в фигурных скобках <> команду или набор команд, которые необходимо выполнить в фоновом режиме.

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

    Запуск задачи в фоновом режиме

    Смотрим на список задач запущенных в фоновом режиме

    Отображаем результат работы задания Job1

    Как видим, у нас появилась задача со статусом «Completed», т.е. она уже выполнилась (просто Get-Service отрабатывает быстро).

    Для того чтобы посмотреть результат работы фоновой задачи, т.е. командлета Get-Service, мы выполнили команду Receive-Job и передали ей имя задания (можно и значение идентификатора). В результате у нас отобразился список служб.

    Удаленное управление на PowerShell

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


    Существует несколько способов удаленного управления:

    • С помощью параметра –ComputerName (есть у многих команд). Другими словами Вы передаете имя компьютера, на котором необходимо выполнить команду, в качестве параметра. Способ обладает недостатком, так как ограничивается выполнением одной команды;
    • С помощью сессий. Командлет Enter-PSSession (интерактивный сеанс). Таким способом Вы подключаетесь к удаленному компьютеру и все команды, которые Вы будете набирать в оболочке PowerShell, будут выполняться на удаленном компьютере так же, как если бы Вы набирали команды непосредственно на удаленном компьютере. Способ также обладает недостатком, так как сеанс ограничивается одним компьютером;
    • С помощью командлета Invoke-Command. С помощью данного способа можно выполнять команды или сценарии как на одном компьютере, так и на нескольких.

    Например, чтобы подключиться к удаленному компьютеру (в примере ниже ServerName) интерактивным сеансом выполните следующую команду:

    Сценарии, функции и модули в Windows PowerShell

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

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

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

    Важно!

    По умолчанию выполнение сценариев в Windows запрещено! Для того чтобы посмотреть политику выполнения сценариев выполните командлет Get-ExecutionPolicy. В результате он вернет действующую политику, например:

    • Restricted – блокируется выполнение любых сценариев (значение по умолчанию);
    • AllSigned – разрешено выполнение сценариев, которые имеют цифровую подпись;
    • RemoteSigned – разрешено выполнение локальных сценариев, все скачанные сценарии должны иметь цифровую подпись;
    • Unrestricted — разрешено выполнение любых сценариев (не рекомендуется, так как небезопасно!).

    Для разрешения выполнения сценариев необходимо использовать командлет Set-ExecutionPolicy с одним из вышеперечисленных параметров.

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

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

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

    Для этого необходимо указать ключевое слово Function и затем в фигурных скобках <> написать алгоритм работы этой функции, т.е. набор команд (например, какая-нибудь часто используемая процедура: создать пользователя с определенными правами, очистить определенные каталоги и так далее). Потом необходимо сохранить все это в сценарий, но только уже с расширением .psm1, так как этот файл будет являться уже модулем.

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

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

    Интегрированная среда сценариев Windows PowerShell (ISE)

    Для того чтобы было удобно писать сценарии, функции и соответственно модули, компания Microsoft разработала специальную графическую программу Integrated Scripting Environment (ISE) — интегрированная среда сценариев. Работать в этой программе очень удобно, к тому же она имеет мощный функционал (создание множества вкладок со сценариями, область вывода, встроенный отладчик и другое).

    Запустить ее можно следующим образом:

    • В Windows 7 — Пуск->Все программы ->Стандартные ->Windows PowerShell -> Windows PowerShell ISE;
    • В Windows 10 или Windows Server 2020 — Пуск->Все программы -> Каталог Windows PowerShell (в группе W) -> Windows PowerShell ISE.

    Примечание! ISE не будет работать на системе Windows Server, установленной в варианте Server Core.

    Скриншот интегрированной среды сценариев PowerShell (ISE) в Windows Server 2020

    На этом у меня все, надеюсь, материал был Вам полезен! Удачи!

    Десять команд PowerShell, которые должен знать каждый администратор Windows

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

    Первый командлет, который должен знать каждый администратор, — это Get-Help. С его помощью можно получить справочную информацию по любой другой команде. Например, чтобы узнать полный синтаксис для команды Get-Process, можно воспользоваться следующей командой:

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

    Хотя PowerShell предусматривает возможность создавать и выполнять сценарии, по умолчанию эта опция отключена, чтобы предотвратить исполнение вредоносного программного кода. Управлять разрешениями на выполнение сценариев можно с помощью команды Set-ExecutionPolicy. Доступны четыре уровня безопасности:

    • Restricted — выполнение сценариев запрещено. Эта опция установлена по умолчанию. Команды в таком случае можно выполнять только в интерактивном режиме.

    • All Signed — разрешено выполнение только сценариев, подписанных доверенным издателем.

    • Remote Signed — разрешено выполнение любых сценариев, созданных локально, а сценарии, созданные на удаленных системах, выполняются только в том случае, если подписаны доверенным издателем.

    • Unrestricted — разрешено выполнение абсолютно любых сценариев.

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

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

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


    PowerShell позволяет получить массу полезных сведений о системе, но иногда бывает недостаточно просто просмотреть эту информацию в окне командной строки. Порой возникает необходимость составить отчет для отправки другому администратору. В таком случае можно воспользоваться командой ConvertTo-HTML, перенаправив на нее вывод любой другой команды. При этом необходимо использовать переключатель -Property для перечисления свойств, которые требуется включить в HTML-отчет, и указать имя файла.

    Возьмем для примера команду Get-Service, позволяющую получить список служб, и создадим на ее основе HTML-отчет с указанием имени и состояния каждой установленной в системе службы. Для этого можно воспользоваться следующей командой:

    Отчеты можно сохранять не только в HTML, но и экспортировать в формат CSV для просмотра в Microsoft Excel. Синтаксис команды, которая применяется для этой цели, аналогичен ConvertTo-HTML. Обязательно следует указать имя файла для сохранения отчета. Например, экспортировать список служб в CSV-файл можно следующей командой:

    При выполнении описанной выше команды CSV-отчет будет включать огромную массу информации, но иногда бывает полезно ограничить набор сведений. Сделать это можно с помощью команды Select-Object, которая позволяет указать, какие свойства должны быть включены в отчет. Например, чтобы создать CSV-отчет с перечислением имен и состояний всех системных служб, можно воспользоваться следующей командой:

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

    На практике эта команда применяется довольно редко. Чаще всего вместо нее используются другие команды, позволяющие отфильтровать данные и сохранить их в формате CSV или HTML.

    Если команда Get-Service выводит список всех системных служб, то команда Get-Process позволяет получить список всех запущенных в данный момент процессов.

    Когда тот или иной процесс зависает, можно выяснить его имя или идентификатор с помощью команды Get-Process, а затем завершить процесс командой Stop-Process с указанием его имени или идентификатора. Например, процесс «Notepad.exe» для Блокнота можно завершить одной из следующих команд:

    Только не стоит забывать, что идентификатор процесса меняется от сеанса к сеансу.

    Spector Training

    воскресенье, 5 августа 2020 г.

    Powershell — заметки для сисадминов-чайников

    Hello!
    Я сам в Powershell являюсь нулевиком плюс.
    Поэтому данные заметки ориентированы на таких же начинающих. На тех, кто не имеет опыта не только в Powershell, но и в программировании на других языках. На тех, кто не понимает, как это все вообще устроено и удивляется каждому небольшому открытию.

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

    Еще замечание. Большинство статей в интернете ориентировано на тех, кто, как считается по умолчанию, уже знает, что такое параметры, переменные, условия и что делают все эти забавные значки — @#$%*.
    Я буду считать, что это все вам неизвестно и стараться пояснять логику, стоящую за этими штуками.

    PowerShell для администраторов SharePoint

    Как в случае с новым выпуском любого продукта, для освоения SharePoint 2010 необходимо многому научиться: освоить новую функциональность и даже заново познакомиться с некоторыми старыми компонентами. Обычно заниматься этим интересно, однако изучение Windows PowerShell оказалось одним из самых трудных барьеров, которые мне приходилось преодолевать

    Я давно работаю с SharePoint. Начав с SharePoint Team Services 2001, я по-настоящему приобрел опыт с Windows SharePoint Services 2.0 (WSS 2.0), с помощью которого управлял фермой из более чем 1200 коллекций сайтов и более чем 10 000 подсайтов. С первых шагов я оценил и начал применять сценарии.

    Особенно полезным оказался инструмент командной строки Stsadm. С помощью Stsadm я управлял крупной фермой, и у меня еще оставалось время посмотреть видеоклипы на YouTube. Знание Stsadm принесло мне немало пользы. Я написал статью об Stsadm в журнале TechNet Magazine, главу об Stsadm в книге и прочитал на TechEd лекцию — угадайте, о чем? Правильно, об Stsadm.

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

    До этого момента в 2010 году мое знакомство с PowerShell было очень ограниченным. По большей части я избегал его, так как, на мой взгляд, этот инструмент слишком ориентирован на разработчиков. В нем есть объекты (что бы ни скрывалось под этим названием). Я — простой человек. Освоить Stsadm, несмотря на его ограничения и странности, было просто. PowerShell казался сложным и замысловатым. Я искренне сомневался, что моих умственных способностей хватит, чтобы одолеть его и привыкнуть использовать так же, как Stsadm. Так я оказался на первой из семи ступеней — печали.

    На седьмой ступени, примирения с судьбой, я собрался с духом и возобновил попытки одолеть чудовище. Я купил пару книг по PowerShell и связался с группами поддержки. Ничего не помогало. PowerShell по-прежнему оставался неприступным, и я мог лишь сложить два числа и написать Hello World на экране. Ни одно из этих достижений не украсит резюме, прилагаемое к заявлению о приеме на работу. Возможно, я просто недостаточно сообразителен, чтобы использовать PowerShell? Может быть, думал я, мне лучше устроиться подсобным рабочим в ближайший ресторан…

    Урок 1. Просто начните работать

    В один прекрасный день меня осенило: нужно зайти с другого конца! Вместо того чтобы пытаться изучить язык, дабы впоследствии использовать PowerShell для решения задач в SharePoint, следует попытаться автоматизировать повседневные задачи и уже попутно изучать язык. Из всех усвоенных мною уроков PowerShell этот — самый важный. В тот день тучи рассеялись, и надо мной и PowerShell просияло солнце.

    Цукерберг рекомендует:  Хобби - 50 лет - с чего начать

    Урок 2. Get-Member

    Мои первые сценарии были довольно простыми, например получить список коллекций сайтов с помощью Get-SPSite или список веб-частей с помощью Get-SPWeb. Несмотря на их примитивность, я постепенно освоил такие концепции, как конвейер PowerShell, и способы форматирования вывода команд с применением таких команд, как Select-Object и Format-Table. Я научился составлять полезные команды в одну строку, например:

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

    В этой команде ясно, что в свойстве Owner хранится имя владельца, но не столь очевидно, что в свойстве SecondaryContact хранится имя совладельца. Свойства и методы объекта не всегда интуитивно понятны. Это один из недостатков, из-за которых PowerShell считается трудным для освоения.

    К счастью, в PowerShell есть команда Get-Member, которая выручала меня во многих затруднительных ситуациях. С ее помощью можно определить свойства и методы любого объекта. Например, с использованием следующей команды можно увидеть все свойства объекта SPSite:

    Запустив эту команду, я обнаружил, что должен использовать Owner и SecondaryContact для извлечения имен основного владельца и совладельца. Таким же образом я получил много другой полезной информации об объектах всех типов. Изучая списки свойств и методов объекта, я смог не только понять, как выполнить ту или иную задачу, но и составлял сценарии, которые ранее считал невозможными.

    Например, получив элементы объекта SPWeb, я смог написать очень удобный сценарий в одну строку. Работая с SharePoint 2003 и SharePoint 2007, я часто помогал пользователям искать причины неполадок с веб-сайтами. Я спрашивал: «Какой шаблон использовался для создания этого веб-сайта?» — и никогда не мог получить ответа, потому что веб-сайт проектировали другие люди.

    У различных веб-сайтов — разные веб-части и характеристики, поэтому полезно знать, какой шаблон использовался при создании веб-сайта. В SharePoint 2003 получить такую информацию было невозможно. В SharePoint 2007 это стало возможным после выхода пакета обновлений SP2. Благодаря PowerShell найти шаблон очень просто с помощью команды

    Мне бы никогда не пришло в голову использовать PowerShell таким образом, но, применив Get-Member к SPWeb, я открыл для себя свойство WebTemplate и задумался. Теперь мой набор инструментов пополнился еще одним бесценным средством.

    Урок 3. Get-Command

    Знать элементы объекта полезно, но только когда удалось понять особенности применения объектов и команд. Научиться искать команды было для меня очень важно. Это делается с помощью еще одной отличной команды — Get-Command, которая перечисляет команды на основе указанного пользователем критерия. Мое знакомство с Get-Command состоялось при использовании следующей однострочной команды, которая перечисляет все команды, относящиеся к SharePoint:

    Их больше 500, намного больше, чем можно усвоить за один раз. Поэтому я начал уточнять поиск команд с использованием других параметров. Например, с помощью следующей однострочной команды можно получить все команды, относящиеся к коллекции сайтов (SPSites, как они называются в PowerShell):

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

    Фундамент будущего

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


    В листинге показано одно из моих последних «произведений». Этот сценарий записывает URL-адреса SharePoint в файл HOSTS на сервере. Как правило, в моих файлах HOSTS серверы SharePoint всегда направлены на самих себя. Это упрощает диагностику и помогает определить, как компьютеры используются индексатором поиска при просмотре содержимого. При установке программных продуктов приходится многократно вносить одни и те же изменения, поэтому данная задача идеально подходит для автоматизации с использованием PowerShell. При подготовке сценария требовалось понять, как применить PowerShell для работы не только с SharePoint, но и с файловыми системами и реестром. Кроме того, нужно было обойти коллекцию объектов посредством цикла ForEach и манипулировать значениями с помощью методов Replace и ToString. У меня уже был фундамент, и я смог подготовить сценарий без особого труда. Подробнее об этом сценарии рассказано в моем блоге по адресу www.toddrkindt.com/edithosts в статье «PowerShell script to write SharePoint URLs to your server’s HOSTS files».

    При освоении SharePoint 2010, как любого программного продукта, приходится изучать много нового, и для меня самым трудным было изучение PowerShell. Но благодаря урокам PowerShell я вырос не только как администратор SharePoint, но, возможно, и как личность. Теперь я могу автоматизировать типовые операции SharePoint, а также некоторые нетривиальные задачи. Кроме того, знание PowerShell полезно и при работе с другими продуктами, такими как Windows Server и SQL Server.

    Листинг 1. Сценарий PowerShell для записи URL-адресов SharePoint в файл HOSTS сервера

    Тодд Клиндт (todd@sharepoint911.com) — консультант по SharePoint, имеет звание SharePoint MVP

    Использование Powershell для выполнения общих сетевых команд

    Посетителей: 31441 | Просмотров: 44370 (сегодня 0) Шрифт:

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

    Что такое Powershell?

    Powershell – это устанавливаемая функция Windows Server 2008. Чтобы установить Powershell, вы должны установить функцию Powershell с помощью мастера добавления функций. Процесс установки занимает около минуты, и как только компонент установлен, у вас появляется доступ к удивительному языку сценариев командной строки. В отличие от других сценарных языков в Windows, Powershell создан исключительно для системных администраторов. Powershell использует .NET и команды (‘cmdlets’ или ‘command-lets’) в своей работе. Будучи пользователем PS, вы можете использовать команды по отдельности или связывать их вместе, чтобы выполнять более сложные задачи.

    Когда вы установили PS, вы сможете запустить Пуск -> Все программы -> Windows Powershell 1.0 , и нажать Windows PowerShell . На этом этапе у вас должно появиться голубое окно CLI, которое выглядит, как показано на рисунке 1.

    Рисунок 1: Окно Windows Powershell Command

    Вы всегда можете сказать, что работаете в Powershell, поскольку в окне ‘PS’ в начале всегда есть следующая строка:

    Теперь, когда powershell установлен и его окно открыто, позвольте мне показать вам некоторые общие сетевые задачи, которые можно выполнить в PS.

    Перечислить IP адреса вашего сервера

    Чтобы получить список IP адресов на вашем сервере Windows 2008 Server, вам нужно использовать следующую команду:

    Вот как выглядят данные после использования этой команды на моем Windows 2008 Server:

    Рисунок 2: Перечисление IP адресов с помощью Windows Powershell

    Как видно из рисунка, исходные данные показывают нам, что у меня есть один адаптер с IP V4 адресом и IP V6 адресом на этом сервере Windows 2008 Server. Само по себе, это не является чем-то удивительным, но подумайте о том, что вы сможете сделать с этим, используя другие сценарные функции.

    Как учит нас руководство пользователей powershell, результирующие данные являются массивом и вы можете посмотреть IP адрес лишь направив эти данные в ‘Select-Object’ (после отключения IPV6), примерно так:

    Рисунок 3: Перечисление IP адреса ТОЛЬКО с Windows Powershell

    Получение списка конфигурации сетевого адаптера с помощью Powershell

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

    Хотя данная статья посвящена рассмотрению использования PS в Windows Server 2008, эта утилита также может использоваться и в Windows XP, Vista или Server 2003. Вот пример полученных данных команды, запущенной на моей рабочей станции Windows XP:

    Рисунок 4: PowerShell показывает конфигурацию сетевого адаптера на Windows XP

    Тестовый опрос компьютера с помощью PowerShell

    Хотя командная строка PS все же может выполнять все обычные команды Windows (например тестовый опрос), сильная сторона Powershell заключается в том, что вы можете взять полученные данные и с легкостью изменить их.

    Вот пример того, как это можно сделать, предоставлено руководством пользователя Windows Powershell. В этом примере результаты Win32_PingStatus анализируются с помощью Select-Object. В этом случае данные просто показывают время ответа и код статуса.

    Вот команда, которая использовалась:

    А вот результаты использования команды на моей машине Windows:

    Рисунок 5: PowerShell данные показывают статус опроса, анализируемого с помощью Select-Object

    Разрешение общего доступа к папке с помощью Windows Powershell

    Буду с вами откровенен. Использование команд Powershell не всегда настолько просто, как использование существующих команд Windows, с которыми вы уже знакомы. Вот пример.

    Следующая команда PS обеспечит общий доступ к папке в C:\temp в качестве ‘davidtemp’ и применит к ней отличную команду:

    С другой стороны, вы могли просто использовать уже проверенную и опробованную команду net share :

    Рисунок 6: PowerShell данные и традиционная команда net share

    Обратите внимание на то, что команда Powershell не просто не сработала, но выдала мне ужасную ошибку. Я пробовал эту команду на Windows XP и Vista и я был администратором системы.

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

    Прочие сетевые и более сложные команды


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

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

    Как вы, возможно, заметили из предыдущих примеров, одним из параметров для большинства команд Powershell является ‘computername’. Когда мы ставим точку (‘.’) вместо имени компьютера (computername), это будет локальный хост (наш компьютер). Однако мы также можем заменять любой IP адрес или имя компьютера Windows в домене, что дает нам возможность использовать эти команды не только на нашем ПК, но и создавать мощные сценарии в Powershell, которые можно применять на всех компьютерах сети.

    Например, вот команда, которая передает IP адрес компьютера Dell через LAN:

    Вот результаты этой команды:

    Рисунок 7: Результаты Powershell получения IP адреса с удаленного ПК

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

    Рисунок 8: Увеличение окна результатов Powershell получения IP адреса удаленного ПК

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

    Взгляните на следующий пример:

    В этом примере был получен список IP адресов и имен домена. Этот список был передан на ‘ForEach-Object’. Для каждого из этих «объектов» (IP адрес / доменные имена), использовался элемент ‘Get-WmiObject’ PingStatus. Затем данные тестового опроса каждого имени домена были пропущены через ‘Select-Object’, в результате чего были отображены только адреса, время ответа и коды статуса.

    Рисунок 9: Тестовый опрос с помощью списка при сочетании и опросе данных

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

    Что еще нужно знать?

    Как я уже говорил, помните, что Powershell работает не только для Windows Server 2008, но и для Windows XP, Vista и Server 2003. Powershell – это бесплатная утилита, которую можно быстро скачать, поскольку она весит всего около 6MB. Все что вам нужно сделать, это перейти по ссылке Powershell download site at this URL.

    Заключение

    Windows Powershell – это очень мощная утилита. В этой статье невозможно описать всего того, что вы сможете сделать с помощью Powershell, но надеюсь, что мне удалось дать вам общую картину возможностей этой утилиты и вдохновить вас на последующие изыскания в этой области. С каждым днем появляются новые книги, курсы и уйма материала в Интернете о функциях Powershell, которые могут использоваться системными администраторами Windows. Учитывая столь сильную привязанность администраторов Windows к графическому интерфейсу, потребуется время на то, чтобы Powershell была принята в тех компаниях, в которых не испытывают острой необходимости в этом инструменте. Я уверен, что администраторы будут использовать Powershell для создания более коротких сценариев, с помощью которых можно будет выполнять более сложные задачи. Надеюсь, что Powershell будет обретать все большую популярность по всему миру!

    Особая благодарность компании Microsoft за предоставление примеров команд в документации руководства пользователя Windows Powershell.

    PowerShell: инструмент не только для сисадмина

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

    Методы открытия оснастки PowerShell

    Powershell очень хорошо развивается и с выходом Windows 10 получил уже 5 версию, но у нас тема другая. Так как открыть powershell? Все просто если в Windows XP, то никак. так он доставляется отдельно, во всех последующих релизах он идет как встроенный компонент. Самый универсальный способ открытия powershell это нажать

    Цукерберг рекомендует:  Шаблоны проектирования Фасад

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

    Как запустить windows powershell от имени администратора в Windows 8.1 и Windows 7

    Открыть windows powershell можно через пуск. В Windows 8.1, Windows 2012 R2 переходите в пункт Служебные — Windows и правым кликом выбираете запустить от имени администратора.

    В Windows 7 и Windows 2008 R2 это выглядит вот так Пуск > Стандартные > Windows PowerShell

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

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

    Далее пункт Администрирование > Windows PowerShell (x86)

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

    Нажимаем кнопку «Дополнительно». У вас откроется дополнительные свойства. где вам нужно выставить галку запуск от имени администратора.

    Все очень просто. Уверен, что у вас теперь не встанет вопроса как вам открыть windows powershell. Еще полезным бывает поменять шрифт в окне powershell.

    Как открыть PowerShell через контекстное меню кнопки «Пуск» в Windows 10

    Компания Microsoft, все больше делает акцент с командной строки в сторону своего сильного языка (PowerShell), и это логично, так как его возможности по управлению операционными системами семейства Windows, почти безграничны, а то и больше, чем в графическом интерфейсе. Начиная с версии Windows 10 1709, в контекстном меню, PowerShell, заменил всем привычный cmd. Щелкаете правым кликом по кнопке пуск в Windows 10 и из контекстного меню, выбираем соответствующий пункт:

    1. Windows PowerShell
    2. Windows PowerShell (администратор) — это как раз и есть режим с максимальными правами в Windows 10.

    Запуск Windows PowerShell с помощью поиска в Windows 10

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


    Запуск Windows PowerShell с помощью меню Пуск в Windows 10

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

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

    Дополнительные и универсальные методы запуска оболочки

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

    В итоге у вас откроется папка с ярлыками, которые присутствуют в меню «Пуск», можете их запускать.

    Еще можно запустить оригинальный, исполняемый файл, который лежит по пути:

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

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

    Ну и еще напомню метод, запуска новой задачи из оснастки «Диспетчер задач». Откройте «Диспетчер задач», выберите пункт меню «Файл — Запустить новую задачу»

    В появившемся окне введите PowerShell.

    Ну и последний известный мне метод, это запуск PowerShell, через проводник Windows 10, для этого откройте проводник, выберите пункт меню «Файл — запустить Windows PowerShell», тут будут оба режима.

    Запуск PowerShell от имени другого пользователя

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

    Чтобы запустить PowerShell от имени другого пользователя вам необходимо зажать кнопку SHIFT, после чего щелкнуть правым кликом мыши по значку PowerShell, из контекстного меню выбрать пункт «Запуск от имени другого пользователя»

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

    так же вы можете запускать новое окно PowerShell из текущего окна пользователя, но с уже новыми правами, для этого введите команду:

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

    Что такое PowerShell ISE

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

    Запуск PowerShell через комбинацию клавиш

    Одним из удобных методов запуска оболочки PowerShell, при очень частом использовании, является назначение для нее горячего сочетания клавиш, при нажатии которых вызывается оболочка. Делается, это очень просто. Откройте окно свойств PowerShell, на вкладке «Ярлык» найдите пункт «Быстрый вызов«, по умолчанию он имеет статус нет.

    Выберите его и нажмите клавишу Shift или Ctrl, или CTRL+SHIFT, в результате чего у вас подставится конструкция для будущей комбинации и так же нажмите любую клавишу из буквенного диапазона, в моем примере получилось CTRL + SHFT + C. Именно такой комбинацией я буду вызывать свою оболочку PowerShell. Сохраняем настройки. Так же отмечу, что вы легко можете ее отменить или поменять на другую.

    Пробую ввести комбинацию быстрого вызова CTRL + SHFT + C, как вижу все прекрасно работает.

    Запуск оболочки из ISE

    До недавнего времени, я обычно ISE открывал из обычной оболочки PowerShell, а не наоборот, но какого же было мое удивление, что в меня «Файл» я обнаружил пункт «Запустить PowerShell.exe» и есть даже сочетание клавиш Ctrl+Shift+P.

    Свойства powershell

    powershell шрифт меняется очень просто перейдите в свойствах на вкладку Шрифт, где вы можете задать размер от 5 до 72.

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

    Тут настройки шрифта немного другие, вместе с их изменением, меняется и размер консоли.

    На вкладке Цвета, можете задать цвет шрифта в powershell да и самого окна. Сделав его например черным, как командная строка.

    Размер буфера powershell

    Так же советую, если вы активный консольщик выставить размер буфера не в 50 команд, а хотя бы в 100.

    Записки IT специалиста

    Технический блог специалистов ООО»Интерфейс»

    • Главная
    • Используем PowerShell для автоматизации установки обновлений

    Используем PowerShell для автоматизации установки обновлений

    • Автор: Уваров А.С.
    • 20.08.2015

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

    Кроме того, в режиме аудита Windows 8 использовать Центр обновления Windows нельзя и установить обновления привычным образом не получится.

    В этих, а также во многих других, случаях имеет смысл воспользоваться специальным модулем PowerShell для работы с Windows Update. Скачать его можно со страницы разработчика на Technet: Windows Update PowerShell Module. Мы настоятельно рекомендуем скачивать данный модуль именно оттуда.

    Данный модуль работает в системах, начиная с Windows Vista и Server 2008 и требует PowerShell 2.0, хотя оптимально будет использование PowerShell 3.0 и выше.

    Архив с модулем содержит папку PSWindowsUpdate, которую следует разместить в одном из двух возможных расположений:

    Если вы хотите использовать данный модуль на постоянной основе, то имеет смысл разместить его в системной папке, в остальных случаях лучше использовать для этого директорию в профиле пользователя. Учтите, в папке Мои документы отсутствуют вложенные директории WindowsPowerShell и Modules, поэтому их следует создать самостоятельно.

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

    Откроем консоль PowerShell от имени Администратора. Прежде всего выясним установленную политику командой:

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

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

    В Windows 7 и иных системах, использующих PowerShell 2.0 вы можете столкнуться со следующей ошибкой: Имя «Unblock-File» не распознано как имя командлета. Она возникает из-за использования в одном из скриптов функции появившейся в PowerShell 3.0.

    Однако ее несложно исправить. В папке с модулем откройте файл PSWindowsUpdate.psm1 и удалите в первой строке последовательность:

    Сохраните исправленный файл и повторите импорт модуля. Теперь можно приступить к работе с ним.

    Прежде всего получим список доступных обновлений:

    А вот и первый сюрприз, в списке обновлений присутствуют языковые модули, Skype и обновление для перехода на Windows 10. Все это приехало бы на ваш компьютер, воспользуйся вы одним из популярных скриптов для этого модуля, доступных в сети.

    К счастью модуль обладает широкими возможностями. Мы можем исключить пакеты из списка по их категории, ключ -NotCategory, названию, ключ -NotTitle, или номеру обновления, ключ -NotKBArticleID. Используем каждый из них, в нашем случае уберем категорию языковых пакетов, Skype и обновление до Windows 10:

    Вот, уже гораздо лучше.

    Теперь можно установить обновления командой:

    Ключи -AcceptAll и -IgnoreReboot включают одобрение всех пакетов и подавляют требование перезагрузки после установки некоторых обновлений.

    Убедившись, что все работает как надо, можно создать собственный пакетный файл, откроем блокнот и в одну строку запишем:

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

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

    В Windows 8 языковые пакеты через WindowsUpdate не распространяются, поэтому команду можно немного упростить.

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

    Для установки отдельного пакета используйте команду (номер пакета использован исключительно для примера):

    Если надо установить несколько пакетов, то разделите их номера запятыми и добавьте ключ -IgnoreReboot, например:

    Мы не ставили своей целью дать в данной статье полный обзор этого модуля, сфокусировавшись на решении конкретной задачи. Поэтому, если вас заинтересовали иные возможности данного модуля, то обратитесь к встроенной справке. Для этого откройте в блокноте файл интересующей функции, например, Get-WUInstall.ps1, каждый из которых автор снабдил подробным описанием.

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

    PowerGUI – графический интерфейс для PowerShell редактора скриптов

    Весьма неплохо сделана система автодополнения вводимого кода:

    Для программиста – самое то. Выпадает список свойств и методов, с их описанием, возвращаемым типом и описанием параметров.

    Вернёмся к нашему редактору. Имеются неплохие возможности для отладки. Я приведу на простом примере математических операций:

    Пошаговое выполнение скрипта, возможность использовать точки остановки (BreakPoints), а также отображение содержимого всех переменных в специальном окне (аналог Watch). Объекты можно разворачивать и получать значение всех их свойств.

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

    Скачать можно отсюда или любого другого места, продукт бесплатный.

    Microsoft выпустила инструментарий для администраторов PowerShell

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

    Ура :) Любимая командная строка (обещают, что вроде как нормальная, а не нечто убогое и неудобное) — теперь и в винде! Боюсь только, что разбираться лень будет.

    «Microsoft Windows PowerShell command line shell and scripting language helps IT Professionals achieve greater productivity. Using a new admin-focused scripting language, more than 130 standard command line tools, and consistent syntax and utilities, Windows PowerShell allows IT Professionals to more easily control system administration and accelerate automation.»

    «bla-bla-bla оболочка командной строки и скриптовый язык поможет IT-профессионалам достигнуть большей продуктивности. Используя новый ориентированный на админа язык скриптов, более чем 130 стандартных инструментов командной строки, а также последовательный синтаксис и утилиты, Уиндоуз ПоверШелл позволит IT-профессионалам легче осуществлять системное администрирование и ускорить автоматизацию.»

    Понравилась статья? Поделиться с друзьями:
    Все языки программирования для начинающих