Windows powershell что это за программа


Windows PowerShell: что это за программа

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

Что такое Windows PowerShell

Windows PowerShell – это скриптовый язык и программа с интерфейсом командной строки для выполнения этих скриптов. Данный язык был выпущен в 2006 году в составе второго сервис-пака для Windows XP и с тех пор PowerShell является частью всех операционных систем от Microsoft. В 2008 году появилась вторая версия данного языка, и начиная с Windows 7 используется именно она. Файлы со скриптами Windows PowerShell имеют расширение PS1 и могут запускаться как привычные всем BAT и CMD файлы.

Windows PowerShell – это скриптовый язык, который разрабатывался в первую очередь для бизнес-клиентов Microsoft, которым нужно мощные инструменты для автоматизации задач по управлению серверами и компьютерами на базе Windows. В качестве основы для данного языка была использована платформа .NET, разрабатываемая компанией Microsoft с 2002 года.

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

Командлеты (на английском cmdlets) формируются по правилу Глагол-Существительное, например, Get-Help. Ознакомиться с основами Windows PowerShell можно с помощью справки (командлет «Get-Help»). Для получения общей информации просто введите команду «Get-Help», для получения справки о конкретном командлете введите «Get-Help Имя-командлета». Например, если ввести команду «Get-Help Get-Process», то мы получим справку о командлете Get-Process.

Как запустить программу Windows PowerShell

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

Также можно открыть меню «Выполнить» с помощью комбинации клавиш Windows-R и ввести команду «powershell».

В Windows 10 программу PowerShell можно запустить из любой папки. Для этого нужно нажать на кнопку «Файл» в верхнем левом углу Проводника и выбрать «Запустить Windows PowerShell».

Как пользоваться программой Windows PowerShell

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

Очистка корзины. Для очистки корзины существует специальный командлет, который называется «Clear-RecycleBin». Данный командлет пригодится при написании скриптов для обслуживания компьютеров. При выполнении командлета нужно указать диск, на котором нужно очистить корзину. Пример:

Clear-RecycleBin c:

На скриншоте внизу видно, как выполняется данный командлет. После введения команды «Clear-RecycleBin c:» появляется запрос на подтверждение. Для того чтобы продолжить выполнение командлета нужно ввести букву «Y» и нажать Enter.

Если к командлету «Clear-RecycleBin c:» добавить «-Force», то очистка корзины выполнится без запроса на подтверждение. Скриншот внизу.

Архивация файлов. Для архивации и распаковки файлов предусмотрены командлеты «Compress-Archive» и «Expand-Archive«. Например, для того чтобы архивировать папку «C:\test\» в архив «C:\archive\test2.zip» нужно выполнить следующий командлет:

Compress-Archive -LiteralPath C:\test\ -DestinationPath C:\archive\test2.zip

В результате выполнения показанной выше команды, в папке «C:\archive\» появится файл «test2.zip», в котором будет заархивировано содержимое папки «C:\test\».

Список командлетов для Windows PowerShell

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

  • Get-Help – получение справки;
  • Update-Help – обновление справки;
  • Get-Command – поиск командлетов;
  • Get-Alias – поиск псевдонимов для командлетов;
  • Get-PSDrive – просмотр подключенных дисков;
  • Get-Member – просмотр свойств и методов, которые есть у объекта;
  • Get-WindowsFeature – просмотр сведений о доступных ролях и компонентах сервера;
  • Install-WindowsFeature (аналог Add-WindowsFeature) — устанавливает роли или компоненты на нужный сервер;
  • Uninstall-WindowsFeature (аналог Remove-WindowsFeature) – удаляет роли или компонента сервера;
  • Get-History – просмотр истории команд, которые вводились в этой сессии;
  • Get-Variable – просмотр списка переменных и их значений;
  • New-Variable – создание новой переменной;
  • Set-Variable – установка значения переменной;
  • Clear-Variable – удаление значения переменной;
  • Remove-Variable – удаление переменной и ее значения;
  • Format-List – просмотр результата команды в виде списка свойств, где в каждой строке отдельное свойство;
  • Format-Table — просмотр результата команды в формате таблицы;
  • Format-Wide — просмотр результата команды в виде широкой таблицы, в которой показывается только одно свойство для каждого объекта;
  • Format-Custom – просмотр результата команды с использованием пользовательского представления;
  • Export-Csv – экспорт данных в формат CSV;
  • Import-Csv – импорт данных из CSV файла;
  • Export-Clixml — экспорт данных в формат XML;

Полный список командлетов для Windows PowerShell вы можете получить, выполнив командлет «Get-Command -CommandType cmdlet».

Посмотрите также:

PowerShell | Microsoft Docs

  • Чтение занимает 2 мин

В этой статье

Windows PowerShell — это оболочка командной строки на основе задач и язык сценариев, разработанный специально для администрирования системы.Windows PowerShell is a task-based command-line shell and scripting language designed especially for system administration. Созданная на основе .NET Framework служба Windows PowerShell помогает ИТ-специалистам и опытным пользователям в управлении и автоматизации администрирования операционной системы Windows, а также приложений, работающих под управлением Windows.Built on the .NET Framework, Windows PowerShell helps IT professionals and power users control and automate the administration of the Windows operating system and applications that run on Windows.

Использование PowerShell.exeUsing PowerShell.exe

Программа командной строки PowerShell.exe запускает сеанс Windows PowerShell в окне командной строки.The PowerShell.exe command-line tool starts a Windows PowerShell session in a Command Prompt window. При использовании PowerShell.exeможно использовать его необязательные параметры для настройки сеанса.When you use PowerShell.exe, you can use its optional parameters to customize the session. Например, можно запустить сеанс, в котором используется конкретная политика выполнения или одна из которых исключает профиль Windows PowerShell.For example, you can start a session that uses a particular execution policy or one that excludes a Windows PowerShell profile. В противном случае сеанс будет таким же, как и любой сеанс, запущенный в консоли Windows PowerShell.Otherwise, the session is the same as any session that is started in the Windows PowerShell console.

  • Чтобы запустить сеанс Windows PowerShell в окне командной строки, введите команду PowerShell .To start a Windows PowerShell session in a Command Prompt window, type PowerShell. В командную строку добавляется префикс PS , указывающий, что вы используете сеанс Windows PowerShell.A PS prefix is added to the command prompt to indicate that you are in a Windows PowerShell session.

  • Чтобы запустить сеанс с определенной политикой выполнения, используйте параметр ExecutionPolicy и введите:To start a session with a particular execution policy, use the ExecutionPolicy parameter, and type:

    PowerShell.exe -ExecutionPolicy Restricted 
  • Чтобы запустить сеанс Windows PowerShell без профилей Windows PowerShell, используйте параметр- Profile и введите:To start a Windows PowerShell session without your Windows PowerShell profiles, use the NoProfile parameter, and type:

    PowerShell.exe -NoProfile 
  • Чтобы начать сеанс, используйте параметр ExecutionPolicy и введите:To start a session , use the ExecutionPolicy parameter, and type:

    PowerShell.exe -ExecutionPolicy Restricted 
  • Чтобы просмотреть файл справки PowerShell.exe, введите:To see the PowerShell.exe help file, type:

    PowerShell.exe -help PowerShell.exe -? PowerShell.exe /? 
  • Чтобы завершить сеанс Windows PowerShell в окне командной строки, введите команду exit .To end a Windows PowerShell session in a Command Prompt window, type exit. Типичная Командная строка возвращает.The typical command prompt returns.

ПримечанияRemarks

  • Полный список параметров командной строки PowerShell.exe см. в разделе about_PowerShell.Exe.For a complete list of the PowerShell.exe command-line parameters, see about_PowerShell.Exe.

  • Дополнительные сведения о других способах запуска Windows PowerShell см. в разделе Запуск Windows PowerShell.For information about other ways to start Windows PowerShell, see Starting Windows PowerShell.

  • Windows PowerShell выполняется в варианте установки Server Core в операционных системах Windows Server.Windows PowerShell runs on the Server Core installation option of Windows Server operating systems. Тем не менее функции, требующие графического пользовательского интерфейса, такие как Интегрированная среда сценариев Windows PowerShell (ISE), и командлеты Out-GridView и for -Command , не выполняются в установках Server Core.However, features that require a graphic user interface, such as the Windows PowerShell Integrated Scripting Environment (ISE), and the Out-GridView and Show-Command cmdlets, don't run on Server Core installations.

Дополнительные ссылкиAdditional References

Windows PowerShell — что это за программа

В последних версиях системы вместо классической командной строки можно обнаружить оболочку Windows PowerShell. Это программа является усовершенствованной командной строкой. Принцип работы в обновлённой оболочке совсем не изменился. Непосредственно путём выполнения команд происходит внесение изменений в систему.

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

Что такое Windows PowerShell в Windows 10

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

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

Язык скриптов воспринимает команды из классической командной строки Windows 10. В свою очередь, имеет богатый собственный язык, который состоит из определённых дополнительных команд (cmdlets). Убедитесь, что установлен компонент NET Framework 3.5 для Windows 10.

Как запустить PowerShell в Windows 10

Достаточно нажать сочетание Win+X и в контекстном меню Пуск выбрать Windows PowerShell (администратор). В последних версиях операционной системы командная строка была заменена на Windows PowerShell. Можно в параметрах заменить командную строку оболочкой Windows PowerShell в меню, которое появляется при щелчке правой кнопкой мыши по кнопке Пуск.

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

А также можно запустить Windows PowerShell в определённой папке. Достаточно зажать клавишу Shift и в контекстном меню выбрать Открыть окно PowerShell здесь. В предыдущих версиях операционной системы вместо PowerShell был доступный пункт командной строки. Для перехода в командную строку в окне Windows PowerShell выполняем команду Cmd.

Основные команды для PowerShell

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

  • Get-Help — отображение справочных сведений о командлетах и основных понятиях. В справке описываются командлеты, функции, сценарии и модули, а также объясняются основные понятия, в том числе элементы языка Windows PowerShell.
  • Update-Help — загрузка и установка файлов справки с общей папки или Интернета. После обновлений операционной системы может понадобиться обновление справки — обнаружение, скачивание и установка обновлений для модулей.
  • Get-Command — вывод всех доступных функций и командлетов, с авто заполнением строки. Выбрав интересующую команду, выполните её с Get-Help для быстрого получения справки. Например, ознакомится с Get-Help Remove-AppxPackage.

Заключение

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

Что такое Windows PowerShell и для чего он нужен

Изучая меню пуск Windows 7 или начальный экран Windows 8 1, начинающие пользователи нередко открывают для себя приложения, назначение которых им не понятно. Как раз одно из таких приложений - PowerShell. Что же такое этот самый PowerShell и есть ли от него хоть какой-то толк? Ну, раз его кто-то придумал и интегрировал в Windows, значит, толк всё-таки есть. Кстати, этим самым придумавшим PowerShell является компания Microsoft.

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

Что умеет этот инструмент администрирования? Много чего. С его помощью системные администраторы и опытные пользователи могут управлять процессами, службами, файловыми хранилищами, аккаунтами и даже серверами. Также оболочка позволяет запускать внешние команды, работать с объектами .NET, COM и XML, проделывать разные трюки и т.п., создавать и выполнять собственные сценарии. Кстати, для написания скриптов в Windows предусмотрена специальная графическая консоль ISE, являющаяся своего рода дополнением к основной оболочке PowerShell.

Как и консоль CMD, оболочка PowerShell имеет свой набор команд, именуемых командлетами. Утилита распознает многие из команд CMD, но в целом синтаксис языка, определения командлетов и их параметров отличаются от того, что пользователи привыкли видеть в обычной командной строке. Кроме того, знакомые команды вроде dir, cd, copy и т.п., прекрасно понимаемые PowerShell, на самом деле являются псевдонимами. Например, команда Dir, служащая для просмотра файловой системы соответствует «родному» командлету Get-ChildItem. Псевдонимы или как принято говорить, алиасы, служат чисто для удобства.

Разобраться с PowerShell начинающему пользователю, особенно если тот незнаком хотя бы с основами обычной командной строки, будет непросто. А руководств и справочников, достаточно понятных и простых для усвоения, не так уж и много. Есть неплохое руководство, написанное Франком Кохом, с которым мы рекомендуем ознакомиться, если вы всё же решитесь приступить к изучению скриптового языка PowerShell. Ну, и конечно, собственная справочная системы оболочки.

Она мощная и развёрнутая, с множеством конкретных примеров. Пользоваться ей достаточно просто. Основная информация по справочной системы выводится командлетом Get-Help. Командлет Get-Command выводит список всех доступных команд.

Get-Command

Для получения справки по конкретному командлету или алиасу используется связка get-help командлет. Например, команда get-help get-process выведет основную справку по использованию командлета get-process, отвечающего за вывод списка текущих процессов. Передав же ей параметры –detailed, -examples, -full или –online, можно будет получить самые подробные сведения обо всех его нюансах.

Windows PowerShell что это за программа

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

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

Возможности и предназначение программы PowerShell

Данная программа является интерфейсом для скриптового языка, а также является платформой для выполнения этих скриптов. PowerShell был выпущен в 2006 году, который входил во второй сервис-пак и с того времени программа стала частью всех операционных систем компании Microsoft. Скрипты данной программы имеют расширение PS1 и способны запускаться, подобно файлам BAT и CMD.

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

Продуктl дает возможность автоматизировать множество различных задач и процессов. Она позволяет установить контроль над службами, аккаунтами, настройками, процессами и т.д. Скриптовый язык воспринимает все команды из командной строки ОС, в свою очередь имеет богатый собственный язык, который состоит из определенных команд, они называются командлетами (cmdlets). Эти командлеты работают по принципу Глагол + Существительное. К примеру, «Get-Help», что в переводе с английского означает «Получить Помощь». Этот командлет вызывает справку. Для того, чтобы получить информацию о каком-либо командлете, введите «Get-Help Get-Process». В этом случае программа предоставит информацию о камендлете «Get-Process».

Запуск и работа в Windows PowerShell

Разобрав, что за приложение Windows PowerShell, разберёмся с особенности его запуска. Есть несколько различных способов запустить программу Windows PowerShell в ОС. Для простоты поиска программ в операционной системе существуют окно поиска. Его можно найти, открыв ярлык «Мой компьютер» в верхней части экрана с правой стороны. Введите запрос «PowerShell» и в результатах поиска откройте программу. В Windows 10 программу можно запустить из любой рабочей папки, для этого нужно сделать клик по кнопке «Файл» в верхней части слева.

Для того, чтобы продемонстрировать как работает программа Windows PowerShell, испробуем ее некоторые возможности, например, давайте почистим корзину. Для этой функции есть специальный командлет – «Clear-RecycleBin». Он пригодится для написания скрипта при обслуживании компьютеров. При вводе такой команды, нужно указать локальный диск, на котором расположено приложение, с которым необходимо выполнить это действие: «Clear-RecycleBin C:». Далее появится строка с запросом на подтверждение, здесь необходимо нажать клавишу «Y» и «Enter».

Если к командлету «Clear-RecycleBin C:» добавить часть «-Force», корзина очиститься без подтверждения.

  1. Давайте распакуем архив при помощи программы PowerShell.
  2. Для этого существуют заданные команды «Expand-Archive» и «Compress-Archive».
  3. Для того, чтобы заархивировать папку «C:\file\» в «C:\archive\file2.zip», следуйте указанной команде: «Compress-Archive –LiteralPath C:\file\ -DestinationPath C:\archive\file2.zip.
  4. В результате исполнения этой команды в указанной выше директории появится архив с именем «file2.zip», в котором будет заархивировано содержимое папки «C:\file\».

Основные командлеты программы PowerShell

У этой программы есть масса разных команд, применяемых к различным компонентам Windows и описать их все в это статье не выйдет. Вот некоторые основные команды l:

  1. «Update-Help» — обновление справки для определенного компонента.
  2. «Get-Help» — получение справки.
  3. «Get-Command» — поиск из списка командлетов.
  4. «Format-Table» — обзор результата определенной команды в таблице.
  5. «New-Variable» — новая переменная.
  6. «Remove-Variable» — удаление значения переменной.
  7. «Set-Variable» — указать значение для переменной.
  8. «Format-Wide» — обзор результата выполненной команды в виде таблицы, в которой присутствует только одно свойство для одного объекта.

Как запустить PowerShell Windows - что умеет и как остановить

О существовании Windows PowerShell пользователи массово узнали после выхода Windows 10. Однако, эта программа появилась в составе пакета Windows XP еще в 2006 году. Ее расположили в пакете стандартных программ, пользовались возможностями PowerShell только продвинутые владельцы ПК.

Что такое PowerShell?

PowerShell является неотъемлемой частью всех операционных систем линейки Windows, начиная от SP2 XP. Эта программа напоминает командную строку и поддерживает скриптовый язык. Изначально она разрабатывалась для клиентов, которые строили на базе компьютеров Windows корпоративную сеть, то есть для решения задач бизнеса. Использование PowerShell позволяло автоматизировать рабочие процессы по управлению удаленными машинами и серверами.

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

  • настройками;
  • аккаунтами пользователей;
  • процессами;
  • службами;
  • файлами.

Команды формируются на английском языке и состоят из глагола и существительного. Именно создание скриптов затрудняет общение пользователей с программой.

Как запустить программу?

Приведем все возможные способы, позволяющие Windows PowerShell запустить. Их можно использовать на разных системах:

  1. Во всех версиях Windows в меню «Пуск» есть строка поиска. Введите в нее PowerShell, чтобы найти нужную программу. Это самый простой рабочий способ поиска. Верхний результат в списке и будет искомая утилита.
  2. Легче всего найти эту программу в Windows 10. В этой версии операционной системы командную строку для скриптового языка добавили во все папки. Для этого в верхней строке найдите контекстный раздел «Файл», щелкните по нему. В выпавшем меню найдите строку «Запустить Windows PowerShell». При этом у вас будет вда варианта: запустить программу как простому пользователю или от имени администратора. Последний доступен тем, кто работает на ПК с основной учетной записи, дающей большие полномочия.
  3. PowerShell Windows 7 проще найти при помощи панели «Выполнить». Вызовите ее сочетанием клавиш Win+R. Введите в появившейся строке PowerShell, а затем нажмите кнопку «Ок». В результате утилита будет запущена.

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

Особенности использования программы

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

  1. Очистка корзины. Это действие не сложно произвести вручную, но если вы захотите автоматизировать процесс, то вам потребуется команда PowerShell Clear-RecycleBin с:. После того как вы это сделаете, вам нужно будет подтвердить свои действия кнопкой Y, а затем завершить действие клавишей Enter. Можно заставить скрипт не выводить на экран лишний подтверждений, если вы наберете сразу после команды слово «-Force».
  2. Управление архивацией и распаковкой файлов. Для этого вам необходимо выбрать одну из двух команд «Compress-Archive» (заархивировать) или «Expand-Archive» (распаковать). После нее нужно будет прописать путь к нужной папке и указать место, куда системе нужно будет записать результат. Например, Compress-Archive -LiteralPath C:\test\ -DestinationPath C:\archive\test2.zip. При этом система автоматически запакует папку test, а затем создаст в директории archive сжатую папку test2 с расширением zip.

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

Наиболее популярные команды PowerShell

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

  • Get-Help – выведение на экран справки, если вместо первого слова использовать Update, то вы обновите информацию;
  • Get-Command – поиск доступных команд;
  • Get-History – просмотр списка команд, которые выи вводили в этой сессии;
  • Format-List – выведение на экран результата выполнения команд в виде списка свойств;
  • Export-Clixml – экспорт данных в таблицу в формате xml, для ее просмотра нужно будет поставить офисную утилиту Excel или ей аналогичную.

Большинство пользователей работает с компьютером без утилиты PowerShell. Если вы хотите освоить ее, то с полным списком команд можно ознакомиться при помощи команды: Get-Command -CommandType cmdlet.

Как остановить утилиту?

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

  1. Отключить ее на время. Для этого запустите PowerShell и введите команду: Start-Sleep 1000. В этом примере 1000 – количество секунд, в течение которых не будет работать утилита, поставить можно любое значение.
  2. Отключение временное или постоянное для Windows 8 и 10. Зайдите в раздел «Панель управления», затем выберите «Программы и компоненты», далее найдите пункт «Включение и отключение компонентов Windows». В списке найдите Windows Powershell и уберите маркер рядом с этой строчкой.
  3. Запустите «Командную строку» от имени администратора. Введите в ней Stop-Process-name powershell. После этого утилита будет остановлена до следующей перезагрузки операционной системы.

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

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


Что такое Windows PowerShell? - Переполнение стека

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Связаться с разработчиками и технологами
.

Что такое PowerShell? | Блог о сценариях

Dr Scripto

Резюме : Специалист по сценариям Microsoft, Эд Уилсон, объясняет Windows PowerShell.

Привет, сценарист! Я постоянно слышу этот термин… повсюду… везде. Но я не знаю, что это такое. Вы можете сказать мне: «Что такое Windows PowerShell?»

—DB

Hello DB,

Разработчик сценариев Microsoft, Эд Уилсон, здесь. Сегодня утром холодно. По крайней мере, это Шарлотта, Северная Каролина - почти холодно.Этого достаточно, чтобы удержать меня внутри с чашкой хорошего чая «Английский завтрак» и свежеприготовленной черничной лепешкой. Я решил проверить электронную почту, отправленную на адрес [email protected] на моем Surface Pro 3. Сегодня один из тех дней… когда я пытаюсь выполнить некоторую работу до выходных, поэтому мне не нужно слишком беспокоиться о неделе. приходить. Все это требует баланса - немного предварительного планирования и немного удачи.

DB, вы хотите знать: «Что такое Windows PowerShell?» Определить Windows PowerShell - это своего рода уловка, гораздо проще описать, что делает Windows PowerShell или зачем она нужна, но я ненавижу это.На самом деле, я ненавижу, когда провожу исследования и натыкаюсь на отличную статью. Я ищу цитату для своей статьи, и нигде нет цитируемого материала. Тьфу. Он отлично подходит для фона, но мне нужна красивая сочная цитата, чтобы подкрепить мой тезис. Это распространенная дилемма. Итак, вот хорошая цитата:

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

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

Windows PowerShell и интерактивна, и скрипт.

Одна вещь, которая сбивает людей с толку, когда говорят о Windows PowerShell, - это то, что они видят то, что выглядит как большое синее окно командной строки, и думают: «О, это Windows PowerShell». В другой раз они видят то, что выглядит как действительно сложный набор кода, и думают: «О, это Windows PowerShell.”

Конечно, одна из замечательных особенностей Windows PowerShell - это то, что она интерактивна. Я легко могу набрать короткую команду и получить массу информации. Вот пример, который возвращает много информации о каждом процессе, запущенном на моем ноутбуке:

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

Но как насчет аспекта языка сценариев в Windows PowerShell? Что ж, обычно это происходит через интегрированную среду сценариев Windows PowerShell (ISE). Замечательно то, что я могу использовать в своем скрипте те же команды, что и в интерактивной среде Windows PowerShell. Фактически, в своей простейшей форме сценарий Windows PowerShell - это файл, содержащий набор команд Windows PowerShell.Сценарий Windows PowerShell имеет следующие преимущества:

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

Здесь показан простой сценарий Windows PowerShell:

Общая информационная модель

Я могу использовать общую информационную модель (CIM) для выполнения команд в удаленных системах и администрирования различных систем в гетерогенной среде.Это связано с тем, что командлеты CIM соответствуют стандартам CIM и WS-Man, которые определены Целевой группой распределенного управления (DMTF). Для получения дополнительной информации об этом см. Введение в командлеты CIM.

Следует помнить, что Windows PowerShell - это приложение .NET Framework. Таким образом, любой пользователь может использовать Windows PowerShell для выполнения любых действий, которые он может выполнять. Следовательно, Windows PowerShell - не супер-инструмент. Если, например, у пользователя нет прав на управление принтерами или установку драйверов устройств, этот пользователь не может запустить сценарий, который управляет принтерами или устанавливает драйверы устройств.Пользователь может делать только то, что у него есть возможность.

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

Примером этого является то, что я знаю командлет Export-StartLayout Windows PowerShell.Используя это, я могу экспортировать макет начального экрана и сохранить его. Я понятия не имею, как это сделать с помощью графического инструмента. Фактически, я понятия не имею, с чего бы начать, если это не где-нибудь за пределами вкладки Settings .

В любом случае, DB, есть введение к вашему вопросу «Что такое Windows PowerShell». Присоединяйтесь ко мне завтра, когда я расскажу, почему вам следует изучить Windows PowerShell.

Я приглашаю вас подписаться на меня в Twitter и Facebook. Если у вас есть какие-либо вопросы, отправьте мне письмо по адресу scripter @ microsoft.com, или разместите свои вопросы на официальном форуме Scripting Guys. До завтра. А пока мир.

Эд Уилсон, Microsoft Scripting Guy

Dr Scripto

Scripter, PowerShell, vbScript, BAT, CMD

.

PowerShell | Средство управления системой и среда сценариев

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

PowerShell в основном предоставляет тот же набор команд, что и cmd.exe . Обладая достаточным знанием общих стандартных команд, PowerShell можно использовать так же, как и командную строку.Однако он также обеспечивает доступ к подчиненным внутренним компонентам Windows, которые ранее не были доступны с помощью cmd.exe. например Реестр Windows и Windows Management Instrumentation (WMI) . Командная строка Windows PowerShell также следует четкой логике согласованной структуры команд и синтаксиса и в этом отношении имеет больше смысла, чем cmd.exe.

Еще одна особенность, которая выделяет Windows PowerShell: в отличие от командной строки и Unix-подобных систем, программа работает полностью на основе объектов вместо выдачи результатов команд в текстовой форме (строках).Каждый объект имеет свойств и методов , которые определяют, как его можно использовать. Таким образом объект процесса Windows представляет такие свойства, как имена и идентификаторы процессов, а также методы для приостановки и завершения процессов.

Поскольку результаты команд всегда выдаются как объекты .NET, конвейерная обработка в PowerShell позволяет выполнять гораздо более сложные задачи, чем cmd.exe . Это работает за счет использования вывода одного объекта в конвейере в качестве ввода для следующего объекта.Например, большие и сложные объемы данных можно отфильтровать по расширениям файлов и отформатировать в виде открытого списка.

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

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

Вот краткое описание преимуществ и недостатков Windows PowerShell по сравнению с командной строкой:

.

Начало работы с PowerShell Core в Windows, Mac и Linux

Эшли

Сегодня у нас есть гостевой пост от Honorary Script Guy и Microsoft Premier Field Engineer Эшли МакГлоун, также известного как GoateePFE.

Это глубже, чем Кока-Кола против Пепси или Форд против Шеви. Мы разрушаем барьеры. Кошки и собаки живут вместе. Готовы ли вы к этому?

Что такое PowerShell Core?

Следующий выпуск PowerShell (6.0) был открыт в прошлом году и в настоящее время находится в стадии бета-тестирования. Однако это PowerShell Core , предназначенный для кроссплатформенной работы в Windows, Mac и Linux. PowerShell Core работает поверх .NET Core, кроссплатформенной версии базы кода с открытым исходным кодом, которая используется в большей части мира Windows. Эта версия PowerShell будет отличаться от той версии Windows PowerShell, которую вы видите сегодня встроенной в Windows.

Мой Mac Demo Rig

У меня классная работа, и мне нравится мой Microsoft Surface Pro 4.Но теперь в моей сумке также есть MacBook Pro с виртуальными машинами Windows и Linux для одной идеальной демонстрационной машины. Теперь я могу продемонстрировать PowerShell Core 6 и Visual Studio Code одновременно в трех разных операционных системах. Я даже могу продемонстрировать удаленное взаимодействие PowerShell между всеми тремя операционными системами. Как это круто?!

Бета-версия PowerShell Core 6 поддерживает значительный список дистрибутивов Linux. Для своих демонстраций я выбрал Ubuntu Desktop, чтобы работать как с PowerShell Core, так и с Visual Studio Code.Согласно http://distrowatch.com, это одна из самых популярных разновидностей Linux.

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

Что мне нужно?

Чтобы начать работу с PowerShell Core, вы хотите установить и настроить эти три элемента в выбранной вами операционной системе (ах):

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

Если вы любитель Linux, возможно, вы думаете: «Хорошо. У меня уже установлен OpenSSH ». Прочтите ссылку OpenSSH выше, чтобы узнать, как редактировать файл sshd_config для поддержки удаленного взаимодействия PowerShell.

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

В Mac или Linux просто откройте окно терминала и введите powershell . Вы должны увидеть баннер об авторских правах (нет года для бета-тестирования) и получить подсказку PS.Введите $ PSVersionTable , чтобы увидеть свою версию.

  козлиная бородка @ ub: ~ $ powershell PowerShell Авторское право (C) Корпорация Microsoft. Все права защищены. PS / home / goatee> $ PSVersionTable Имя Значение ---- ----- PS Версия 6.0.0-бета Ядро PSEdition Сборка версии 3.0,0.0 CLRVersion GitCommitId v6.0.0-beta.1 ОС Linux 4.4.0-78-generic # 99-Ubuntu SMP Чт апр ... Платформа Unix PSCompatibleVersions {1.0, 2.0, 3.0, 4.0 ...} PSRemotingProtocolВерсия 2.3 Сериализация Версия 1.1.0.1 WSManStackVersion 3.0  

Введите Get-Command , чтобы узнать, какие командлеты доступны в вашем сеансе.

  PS / home / goatee> Get-Command  

Возможно, вам будет сложно запустить PowerShell Core 6 на виртуальной машине Windows, на которой уже изначально установлен PowerShell. Вот один из способов его запуска:

  • Перейдите в каталог установки бета-версии: C: \ Program Files \ PowerShell * beta_directory * \
  • Введите $ PSVersionTable , чтобы увидеть собственную версию PowerShell
  • Теперь введите .\ powershell.exe и нажмите Enter
  • . Введите $ PSVersionTable еще раз, чтобы увидеть, что PSEdition отображается как Core и с другим номером версии

Обратите внимание на трюк здесь. \ перед EXE, иначе он найдет собственный EXE для Windows PowerShell.

А теперь кое-что новенькое! Попробуйте следующее:

Get-Variable Is *

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

  PS / home / goatee> Get-Variable Is * Имя Значение ---- ----- IsCoreCLR True IsLinux True IsOSX Ложь IsWindows False  

Что нужно знать

  • Чувствительность к регистру Windows не чувствительна к регистру, поэтому PowerShell в Windows тоже.Однако в Linux учитывается регистр. Команды PowerShell на Mac и Linux не чувствительны к регистру, но иногда значения, зависящие от операционной системы (например, имена переменных среды, такие как PATH ), чувствительны к регистру.
  • Косая черта PowerShell в Windows всегда допускала прямую и обратную косую черту в путях, поэтому при переходе на Mac и Linux возникают минимальные проблемы с направлением косой черты. (Однако всегда рекомендуется использовать такие переменные, как $ pwd и $ PSScriptRoot , а также командлеты, такие как Split-Path / Join-Path , для создания путей, соответствующих любой данной платформе.)
  • Псевдонимы PowerShell в Windows всегда имела псевдонимы Linux, такие как ls , cat , man и т. Д. Однако эти псевдонимы PowerShell не существуют на Mac и Linux, чтобы избежать конфликта с собственными двоичными эквивалентами.

Что мне теперь делать?

Для пользователей Windows, использующих Mac или Linux

  • Получите список доступных модулей:
      PS / home / goatee> Get-Module -ListAvailable Каталог: / home / goatee /.локальный / share / powershell / модули ModuleType Имя версии ExportedCommands ---------- ------- ---- ---------------- Manifest 1.1.0.0 Microsoft.PowerShell.Archive {Сжать-архив, ... Манифест 3.0.0.0 Microsoft.PowerShell.Host {Start-Transcript, ... Манифест 3.1.0.0 Microsoft.PowerShell.Management {Add-Content, Clea ... Манифест 3.0.0.0 Microsoft.PowerShell.Security {Get-Credential, G... Манифест 3.1.0.0 Microsoft.PowerShell.Utility {Format-List, Form ... Скрипт 1.1.2.0 PackageManagement {Find-Package, Get ... Скрипт 3.3.9 Приставать {описать, контекст ... Скрипт 1.1.2.0 PowerShellGet {Install-Module, F ... Скрипт 0.0 PSDesiredStateConfiguration {ThrowError, Get-P ... Скрипт 1.2 PSReadLine {Get-PSReadlineKey ...  
  • Команды и конвейеры PowerShell работают так же, как и всегда:
      PS / home / goatee> Get-Process | Сортировка-Объект ЦП-По убыванию | Выбрать объект -First 5 NPM (K) PM (M) WS (M) Идентификатор процессора (ов) SI ProcessName ------ ----- ----- ------ - - ----------- 0 0.00 38,65 8,04 1259 259 Xorg 0 0,00 64,11 4,79 1985 985 комп. 0 0,00 101,68 3,42 2104949 gnome-программное обеспечение 0 0,00 90,87 2,86 2693568 PowerShell 0 0,00 9,47 2,36 2110 949 prlcc  
  • Использовать псевдонимы Windows на Mac и Linux:
      dir CD  
  • Поскольку PowerShell Core основан на.NET Standard, вы можете работать с .NET из консоли, как в Windows:
      PS / home / goatee> [math] :: pi 3,14159265358979 PS / home / goatee> [математика] :: pow (2,8) 256 PS / home / goatee> (Get-Date) .AddDays (7) 29 мая 2017 г. 15:51:47  
  • PSReadline и завершение табуляции также работают, но по умолчанию EditMode установлен на Emacs , что приводит к немного иному поведению: когда вы нажимаете Tab , если вы не набрали достаточно символов, чтобы соответствовать одному завершению , вы получите список доступных команд, начинающихся с этих символов, вместо полного завершения.

Для Mac или Linux, использующих PowerShell

Командлет Get-Command сообщит вам все команды, доступные в вашем сеансе. Затем передайте имя команды Get-Help точно так же, как man :

  PS / home / goatee> Get-Command PS / home / goatee> Get-Help Get-Process  

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

  PS / home / goatee> Update-Help  

Обратите внимание, что вы можете смешивать собственные команды и PowerShell в едином объектно-ориентированном конвейере.

  cat / etc / passwd | ConvertFrom-Csv -Delimiter ':' -Header Name, Passwd, UID, GID, Description, Home, Shell | Имя объекта сортировки | Формат-таблица  

Вот некоторые из многих общих черт между PowerShell и bash (подробнее здесь):

man 9020 Archand -Архив 90 199
Linux PowerShell
compgen / man builtin Get-Command
Get-Help
ls Get-ChildItem
cat / tail Get-Content
ps / top Get-Process
203 wc Measure Object
sort Sort-Object
тройник тройник
grep Select-String
touch New-Comp Item
история Get-History / Invoke-History
cd ~ cd ~ / cd $ home
pwd $ pwd
env Get-ChildItem env: \

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

Вот пример tail в PowerShell:

  # Linux хвост -f my.log # PowerShell Get-Content -Path my.log -Tail 10 -Wait  

Вот пример wc в PowerShell. Обратите внимание, что результаты немного отличаются, потому что вывод ps отличается от Get-Process .

  PS / home / goatee> ps aux | Туалет 191 2240 19045 PS / home / goatee> Get-Process | Мера-объект Количество: 190 В среднем : Сумма: Максимум: Минимум: Свойство : PS / home / goatee> Get-Process | Мера-Объект-Линия -Слово -Символ Линии Слова Символы Свойство ----- ----- ---------- -------- 188 376 7394  

CTRL + R позволит вам искать и выполнять историю команд в PowerShell во всех операционных системах.Эта функциональность - лишь одна из функций модуля PSReadline, автоматически загружаемых для вас.

Удаленное взаимодействие PowerShell через SSH

PowerShell Core 6 включает новые параметры для удаленного взаимодействия через SSH. Вот почему вам пришлось установить и настроить OpenSSH на каждом компьютере.

  Enter-PSSession -Hostname  -Username  -SSHTransport  

Эта область потребовала некоторой настройки, чтобы заставить меня работать, поэтому внимательно следите за действиями в руководстве.Пользователям Windows необходимо немного изучить vi или nano , чтобы отредактировать файл sshd_config в Linux с использованием записей из руководства.

Вот как выглядит просмотр компьютера с Windows из сеанса удаленного взаимодействия Linux SSH:

  PS / home / goatee> Enter-PSSession -HostName 10.211.55.3 -UserName goatee10 \ testadmin -SSHTransport пароль goatee10 \ [email protected]: [10.211.55.3]: PS C: \ Users \ testadmin \ Documents> cd \ [10.211.55.3]: PS C: \> dir Каталог: C: \ Режим LastWriteTime Длина Имя ---- ------------- ------ ---- г ----- 3.05.2017 20:20 MSOTraceLite г ----- 18.03.2017 17:03 PerfLogs д-р --- 27.04.2017 13:38 Программные файлы д-р --- 19.04.2017 11:57 Программные файлы (x86) г ----- 13.05.2017 15:24 Источник d-r --- 02.05.2017 7:50 Пользователи г ----- 5/5/2017 9:24 Windows [10.211.55.3]: PS C: \> выход PS / главная / козлиная бородка>  

Visual Studio Code

После установки Visual Studio Code вы хотите добавить расширение PowerShell. Откройте код, щелкните квадрат на левой панели, введите powershell и установите расширение. Он попросит вас нажать, чтобы перезагрузить окно.

С выпуском расширения PowerShell v1.x для Visual Studio Code теперь стало возможным иметь кроссплатформенное редактирование PowerShell, очень похожее на ISE в Windows:

  • F5 и F8 будут запускать все или некоторые из них. скрипт.
  • У вас есть интерактивное окно вывода внизу.
  • Intellisense и автодополнение ускоряют кодирование. CTRL + SPACE здесь также работает.
  • Отладчик имеет точки останова и пошаговое выполнение.

И это также лучше, чем ISE во многих отношениях:

  • Парные знаки препинания вводятся автоматически (() [] {} »« »).
  • Выберите код, щелкните правой кнопкой мыши и выберите Выбор формата или Форматировать документ , чтобы отформатировать код в соответствии со стандартными методами.(Моя любимая новая функция!)
  • Щелкните функцию правой кнопкой мыши и выберите Перейти к определению или Найти все ссылки .
  • Поиск выделяет результаты на полосе прокрутки.
  • Анализатор сценариев предоставляет предупреждения о передовых методах кодирования.

Если вы редактируете новый файл в Коде, вам необходимо запустить PowerShell одним из двух способов:

  • Сохраните файл с расширением .ps1 или .psm1 .
  • В правом нижнем углу щелкните Plain Text , а затем выберите PowerShell для языкового режима.

Эти шаги запускают интерактивное окно вывода и завершение синтаксиса. Удивительно, что возможности редактирования в Windows, Mac и Linux полностью совпадают.

Если вы хотите узнать больше о редактировании PowerShell с помощью VS Code, посмотрите презентацию Дэвида Уилсона для группы пользователей AZPosh или его презентацию на PowerShell и DevOps Global Summit 2017.

Desired State Configuration

Этот пост в блоге получает довольно долго, поэтому сегодня я не буду вдаваться в настройку желаемого состояния.Однако вы можете прочитать Начало работы с конфигурацией желаемого состояния (DSC) для Linux на сайте документации.

По-настоящему кроссплатформенный код

В зависимости от поставленной задачи мы можем запустить один и тот же код в PowerShell Core на всех трех платформах. Например, в выбранной вами операционной системе запустите этот вызов REST и обработайте ответ JSON:

  (Invoke-WebRequest -Uri 'http://jsonplaceholder.typicode.com/posts?userid=1' -Method Get) .Content | ConvertFrom-Json  

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

Your Turn

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

.

Общие сведения о шести профилях PowerShell

Dr Scripto

Резюме : Разработчик сценариев Microsoft, Эд Уилсон, обсуждает шесть различных профилей Windows PowerShell и когда их использовать.

Привет, сценарист! Чувак, я читал несколько постов в твоем лучшем блоге; и прежде всего, я хочу сказать, что я думаю, что вы великолепны. Теперь вопрос: у меня нет профиля Windows PowerShell. Я имею в виду, что понимаю, но не совсем. Вот часть моей проблемы.Я помещаю некоторые вещи в профиль, а затем возвращаюсь, а их там нет. Мол, что с этим делать? Я надеюсь, что вы можете мне помочь. Между прочим, я с нетерпением жду встречи с вами и Scripting Wife на TechEd 2012 в Орландо. Вы меня узнаете, потому что я вроде как выгляжу как Уркель, и я всегда ношу клетчатые рубашки (но я не ношу подтяжки).

—BB

Здравствуйте, BB,

Разработчик сценариев Microsoft, Эд Уилсон, здесь. Прошлая неделя была просто отличной. Однажды вечером мы с Женой-сценаристом ужинали с Ричем из группы пользователей Windows PowerShell в Нью-Йорке (он также является модератором форума Scripting Guys и автором нескольких гостевых блогов).Рич был достаточно любезен, чтобы принести мне зеленого чая Gunpower, и я его сейчас пью. Это замечательно, если в кастрюлю добавить половину чайной ложки органической лаванды. У нас также был подкаст PowerScripting с участием двух победителей Scripting Games 2012 года и Джеффри Сновера. Этот разговор был интересным и информативным. Мне также нравится разговаривать с Джеффри, и я с нетерпением жду возможности присутствовать хотя бы на одном из его сеансов на Microsoft TechEd 2012.

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

Описание

Путь

Текущий пользователь, текущий хост - консоль

$ Главная \ [Мои] Документы \ WindowsPowerShell \ Профиль.ps1

Текущий пользователь, все хосты

$ Главная \ [Мои] документы \ Profile.ps1

Все пользователи, текущий хост - консоль

$ PsHome \ Microsoft.PowerShell_profile .ps1

Все пользователи, все хосты

$ PsHome \ Profile.ps1

Текущий пользователь, текущий хост - ISE

$ Главная \ [Мои] Документы \ WindowsPowerShell \ Microsoft.P owerShellISE_profile.ps1

Все пользователи, текущий хост - ISE

$ PsHome \ Microsoft.PowerShellISE_profile.ps1

Понимание шести профилей Windows PowerShell

Чтобы понять шесть профилей Windows PowerShell, нужно помнить, что они перемещаются. Они меняются (вроде как лестницы в Хогвартсе). Пока вы понимаете, что это движущаяся цель, с вами все будет в порядке.В большинстве случаев, говоря о профиле Windows PowerShell, люди имеют в виду текущего пользователя , текущий профиль хоста . Фактически, если никто не квалифицирует профиль Windows PowerShell с его связанной областью или описанием, можно с уверенностью предположить, что речь идет о текущем профиле C urrent User, Current Host .

Примечание Профиль Windows PowerShell (любой из шести) - это просто сценарий Windows PowerShell.У него особое имя, и он находится в особом месте, но это просто сценарий. В этом смысле он похож на старомодный командный файл autoexec.bat. Поскольку профиль Windows PowerShell представляет собой сценарий Windows PowerShell, необходимо включить политику выполнения сценария перед настройкой и использованием профиля Windows PowerShell. Для получения информации о политике выполнения сценария обратитесь к этому сборнику Hey, Scripting Guy! Блоги.

Проверка переменной $ profile

Когда вы запрашиваете автоматическую переменную $ profile , она возвращает путь к текущему профилю C urrent User, Current Host profile.В этом есть смысл, и это отличный способ легко получить доступ к пути к профилю. Следующий сценарий иллюстрирует эту технику из консоли Windows PowerShell.

PS C: \> $ profile

C: \ Users \ ed.IAMMRED \ Documents \ WindowsPowerShell \ Microsoft.PowerShell_profile.ps1

Внутри Windows PowerShell ISE, когда я запрашиваю автоматическую переменную $ profile , я получаю вывод, который показан здесь.

PS C: \ Users \ ed.IAMMRED> $ profile

C: \ Users \ ed.IAMMRED \ Documents \ WindowsPowerShell \ Microsoft.PowerShell ISE _profile.ps1

Чтобы сэкономить немного времени на анализе…

Разница между консолью Windows PowerShell C текущий пользователь, текущий хост путь профиля и путь к профилю Windows PowerShell ISE C urrent User, Current Host путь к профилю состоит из трех букв: ISE.

BB, эти три буквы, вероятно, вызывают у вас проблемы. Скорее всего, вы что-то настраиваете в своем профиле консоли Windows PowerShell, а это недоступно в среде Windows PowerShell ISE.

Распознавание профилей

Вы можете передать переменную $ profile по конвейеру командлету Get-Member и просмотреть дополнительные свойства, существующие в переменной $ profile . Этот метод показан здесь.

PS C: \> $ PROFILE | Get-Member -MemberType noteproperty | выберите имя

Имя

—-

AllUsersAllHosts

AllUsersCurrentHost

CurrentUserAllHosts

CurrentUserCurrentHost

Если вы используете консоль 000 для PowerShell 000 из профиля 000, переменная 000 $ и 000 Свойства заметки относятся к консоли Windows PowerShell.Если вы получаете доступ к переменной $ profile из Windows PowerShell ISE, свойства заметок AllUsersCurrentHost и CurrentUserCurrentHost относятся к профилям Windows PowerShell ISE.

Использование переменной $ profile для ссылки не только на текущий хост

Когда вы ссылаетесь на переменную $ profile , по умолчанию она обращается к текущему пользователю C , текущему профилю хоста . Если вы передадите переменную по конвейеру командлету Format-List , она по-прежнему будет относиться к текущему пользователю C , текущему профилю хоста .Этот метод показан здесь.

PS C: \> $ PROFILE | Format-List *

C: \ Users \ ed.IAMMRED \ Documents \ WindowsPowerShell \ Microsoft.PowerShell_profile.ps1

Это приводит к некоторой путанице, особенно потому, что командлет Get-Member выявляет наличие нескольких профилей и несколько свойств заметки. Чтобы увидеть все профили для текущего хоста, используйте параметр force . Он раскрывает скрытые свойства. Здесь показана команда, иллюстрирующая эту технику.

$ ПРОФИЛЬ | Format-List * -Force

Команда и связанные с ней выходные данные показаны на следующем рисунке.

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

$ PROFILE.CurrentUserAllHosts

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

Определите, существует ли конкретный профиль.

Чтобы определить, существует ли определенный профиль, используйте командлет Test-Path и соответствующий вариант переменной $ profile . Например, чтобы определить, существует ли текущий пользователь C urrent, текущий хост , вы можете использовать переменную $ profile без модификатора или использовать свойство заметки Cu rrentUserCurrentHost .Следующий пример иллюстрирует оба из них.

PS C: \> test-path $ PROFILE

True

PS C: \> test-path $ PROFILE.CurrentUserCurrentHost

True

PS C: \>

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

PS C: \> test-path $ PROFILE.AllUsersAllHosts

False

PS C: \> test-path $ PROFILE.AllUsersCurrentHost

False

PS C: \> test-path $ PROFILE.CurrentUserAllHosts

False

PS C: \>

Создание нового профиля

Чтобы создать новый профиль для текущего пользователя на всех хостах, используйте свойство Cu rrentUserAllHosts автоматической переменной $ profile и командлет New-Item . Этот метод показан здесь.

PS C: \> новый элемент $ PROFILE.CurrentUserAllHosts -ItemType файл -Force

Каталог: C: \ Users \ ed.IAMMRED \ Documents \ WindowsPowerShell

Режим LastWriteTime Длина Имя

—- ————- ———-

-a— 17.05.2012 14:59 0 profile.ps1

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

ise $ PROFILE.CurrentUserAllHosts

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

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

Я приглашаю вас подписаться на меня в Twitter и Facebook. Если у вас есть какие-либо вопросы, отправьте мне письмо по адресу [email protected] или разместите свои вопросы на официальном форуме разработчиков сценариев. До завтра. А пока мир.

Эд Уилсон, Microsoft Scripting Guy

Dr Scripto

Scripter, PowerShell, vbScript, BAT, CMD

.

Основы рабочего процесса Windows PowerShell: когда и зачем его использовать

Dr Scripto

Резюме: Гостевой блоггер Джефф Воутерс рассказывает об основах рабочих процессов Windows PowerShell 3.0: когда и почему.

Разработчик сценариев Microsoft, Эд Уилсон, здесь. Сегодня мы с The Scripting Wife едем из Осло, Норвегия, в Эйндховен, Нидерланды, где я завтра выступлю на мероприятии группы пользователей Dutch PowerShell. Сегодня вечером мы проведем ночь в спальном вагоне в поезде на последней части пути между Копенгагеном, Дания, и Утрехтом в Нидерландах.Раньше я ездил в спальной машине, но это будет первый раз для Терезы, и она очень взволнована. Как только мы прибудем в Утрехт, Microsoft PFE Стефан Странджер встретит нас, чтобы провести остаток пути к мероприятию группы пользователей.

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

Джефф Воутерс (B ICT, MCITP, MCSA, MCSE) - внештатный технический консультант из Нидерландов, специализирующийся на высокой доступности и автоматизации с использованием продуктов Microsoft и Citrix с использованием таких технологий, как виртуализация, резервирование, кластеризация, и репликация.Он также страстно увлечен Windows PowerShell и является одним из основателей группы пользователей Dutch PowerShell в 2012 году.

Джефф выступал с докладом на таких ИТ-мероприятиях, как конференция по виртуализации E2E (ранее известная как PubForum), BriForum Chicago и NGN. (Голландское ИТ-сообщество). Вы можете найти Джеффа в социальных сетях (Twitter @JeffWouters | Facebook @JeffWouters | LinkedIn @JeffWouters) и в его блоге. Он говорит и ведет блоги в основном о Windows PowerShell и виртуализации, но то и дело проскальзывает что-то еще, что вызывает его интерес.

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

Убери это, Джефф.

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

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

А потом пришло письмо Эда с вопросом, не хочу ли я написать гостевой пост для сценариста! Блог. Как только я прочитал письмо, я подумал о своем плане написать сообщение о рабочем процессе и подумал, что это будет отличная тема для блога Эда.

И вот я… Джефф Воутерс, энтузиаст PowerShell, из Нидерландов и блоггер на http://www.jeffwouters.nl.

Что такое рабочий процесс?

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

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

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

PowerShell имеет базовый модуль с именем PSWorkflow , который просто использует Windows Workflow Foundation. Рабочий процесс не является чем-то родным для Windows PowerShell - он просто очень грамотно использует технологию, которая уже есть в операционной системе Windows.

Сила рабочего процесса

Чтобы по-настоящему понять силу рабочего процесса, я могу только посоветовать вам просто начать его использовать.

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

В Windows Server 2012 они полностью переписали эту вещь, и она стала намного быстрее, потому что теперь это в основном графический интерфейс (ОЧЕНЬ!) Кода Windows PowerShell и WMI. Он также позволяет вам управлять своей средой с единой консоли, потому что он также использует рабочий процесс!

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

Зачем нужен рабочий процесс?

Дон Джонс, MVP по Windows PowerShell, уже рассказал об этом в одном из своих постов, поэтому я не буду переделывать его работу: http://powershell.org/wp/2012/08/30/powershell-workflow -когда-следует-вам-это использовать.

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

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

С кодом разработчики называют это модульным программированием. Когда вы делаете это мысленно, я называю это модульным мышлением. Итак, когда я начинаю писать сценарии, я думаю: Задачи> Рабочие процессы> Функции> Модули… именно в таком порядке.
Лично для меня это значительно облегчило мою жизнь по написанию сценариев.

Не использовать рабочий процесс, если нет другого выхода…?

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

  1. Когда вы можете читать функции, вы можете читать рабочие процессы - они читаются.
  2. Рабочий процесс очень мощный даже на начальном уровне.
  3. Много раз использование рабочего процесса потребует гораздо меньше кода по сравнению с его неиспользованием, пока он остается читаемым.
  4. Это может серьезно сократить время выполнения ваших скриптов.
  5. Когда вы придерживаетесь основ, хотя они по-прежнему соответствуют вашим потребностям, это не так уж сложно… правда!

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

Практичные и простые приложения для рабочего процесса

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

Первый вариант - написать 150 строк кода - мне не хотелось бы этого делать.

Второй - написать небольшой цикл:

1..50 | ForEach-Object {New-VM -Name VM $ _ -MemoryStartupBytes 512MB –NewVHDPath «D: \ Hyper-V \ Virtual Hard Disks \ VM $ _. Vhdx» -NewVHDSizeBytes 15GB}

В цикле задачи выполняются последовательно . Вот где рабочий процесс может помочь вам серьезно ускорить работу простым способом. С помощью рабочего процесса вы можете использовать параметр -Parallel с командлетом ForEach , который позволяет одновременно использовать 5 параллельных потоков.Таким образом, если ваше оборудование может справиться с нагрузкой, создание виртуальных машин может стать примерно в 5 раз быстрее!

Третий способ сделать это с помощью рабочего процесса:

workflow New-VirtualMachines

{

$ VMs = 1..50

foreach -parallel ($ VM в $ VM)

{

New-VM -Name VM $ VM -MemoryStartupBytes 512MB –NewVHDPath «D: \ Hyper-V \ Virtual Hard Disks \ VM $ VM.vhdx» -NewVHDSizeBytes 15GB

}

}

Время выполнения первого скрипта составляло около 9 минут в мое окружение; время выполнения сценария рабочего процесса составило около 2 минут! Но для всех вас, кто думает, что это довольно статично, рабочие процессы принимают параметры так же, как и функции.Следующий рабочий процесс принимает как имя виртуального компьютера, количество виртуальных машин для создания, так и размер VHD в качестве входных параметров:

рабочий процесс New-VirtualMachines

{

[CmdletBinding ()]

Param (

[Parameter (Обязательный = $ true, Position = 0)] $ VMName,

[Параметр (Обязательный = $ true, Position = 1)] $ VMCount,

[Параметр (Обязательный = $ true, Position = 2)] $ VHDSize

)

$ VMs = 1 .. $ VMCount

foreach -parallel ($ VM in $ VMs)

{

New-VM -Name $ VMName $ VM -MemoryStartupBytes 512MB -NewVHDPath “D: \ Hyper-V \ Виртуальные жесткие диски \ $ VMName $ VM.vhdx ”-NewVHDSizeBytes $ VHDSize

}

}

Вы можете просто вызвать этот рабочий процесс так же, как и функцию:

New-VirtualMachines -VMName VM -VMCount 50 -VHDSize 15GB

Даже на базовом уровне это легко, быстро, легко читается и можно использовать повторно!

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

9158

3 9158

9158

Запустите службу MyAppQueue

, так что

Номер

Подождите, пока наберется номер

Target

Задача

1

WEB01

Служба Stop MyApp

Остановить службу MyAppQueue

3

1,2

FS01

Удалить MyAppQueue.xml

4

1,2

FS02

Удалить MyAppQueue.xml

5

5

6

5

WEB01

Запустите службу MyApp

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

Обновление рабочего процесса - MyApp

{

последовательность

{

Invoke-Command -ComputerName WEB1 {Stop-Service -Name MyApp -Force}

Invoke-Command -ComputerName WEB1 {Stop-Service -name MyAppQueue

-Force}

параллельный

{

Invoke-Command -ComputerName FS1
{

Remove-Item -Path “D: \ MyApp \ Files \ MyAppQueue.xml ”–Force

}

Invoke-Command -ComputerName FS2

{

Remove-Item -Path“ D: \ MyApp \ Files \ MyAppQueue.xml ”–

}

}

Invoke-Command -ComputerName WEB1 {Start-Service -Name MyAppQueue}

Invoke-Command -ComputerName WEB1 {Start-Service -Name MyApp}

}

}

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

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

Функция и рабочий процесс

В чем разница? Нет, подождите ... это неправильный вопрос, потому что это две разные вещи.Что то же самое? Да вот тот!

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

Сравните рабочий процесс развертывания виртуальной машины несколькими строками ранее с этой функцией развертывания виртуальной машины:

функция New-VirtualMachines

{

[CmdletBinding ()]

Param (

[Parameter (Mandatory = $ true, Position = 0)] $ VMName,

[Параметр (Обязательный = $ true, Позиция = 1)] $ VMCount,

[Параметр (Обязательный = $ true, Позиция = 2)] $ VHDSize

)

$ ВМ = 1 .. $ VMCount

foreach ($ VM в $ VM)

{

New-VM -Name $ VMName $ VM -MemoryStartupBytes 512MB -NewVHDPath “D: \ Hyper-V \ Virtual Hard Disks \ $ VMName $ VM.vhdx ”-NewVHDSizeBytes $ VHDSize

}

}

Как вы могли заметить, их всего два:

  1. Замените« рабочий процесс »на« функцию »в первой строке.
  2. Удалите -Параллель из линии 10 . Функции не знают -Параллельный , знает только рабочий процесс.

Сходите с ума от основ

Функция может вызывать рабочий процесс, а рабочий процесс может вызывать функцию. Но поскольку функция может вызывать функцию, рабочий процесс также может вызывать рабочий процесс - все еще следует? Здесь он может внезапно стать чрезмерно сложным и где рабочий процесс позволяет проверять наведение.

Также помните о своих ресурсах. Когда вы создаете 5 файлов VHDX одновременно с помощью ForEach -Parallel , ваша среда может внезапно стать медленной.Так что подумайте, прежде чем писать сценарий. И, если вы действительно хотите все усложнять, вот что вам обязательно понравится. Внутри блока последовательности может быть параллельный блок. И внутри этого параллельного блока вы можете иметь блок последовательности и так далее, и тому подобное.

Чтобы дать вам представление, я взял рабочий процесс Refresh-MyApp , который я использовал ранее в этом скрипте, и добавил к нему несколько вещей - просто чтобы дать вам представление о том, насколько легко можно чрезмерно усложнять вещи:

Обновление рабочего процесса - MyApp

{

последовательность {

Invoke-Command -ComputerName WEB1 {Stop-Process -Name MyApp -Force}

Invoke-Command -ComputerName WEB1 {Stop-Process -Name MyAppQueue -Force}

параллельно {

Invoke-Command -ComputerName FS1 {Remove-Item -Path «D: \ MyApp \ Files \ MyAppQueue.xml ”–Force}

Invoke-Command -ComputerName FS2 {Remove-Item –Path“ D: \ MyApp \ Files \ MyAppQueue.xml ”–Force}

последовательность {

parallel {

Invoke-Command -ComputerName FS1 {Stop-Process -Name MyAppFSQueue}

Invoke-Command -ComputerName FS2 {Stop-Process -Name MyAppFSQueue}

}

Invoke-Command -ComputerName FS1 {Remove-Item –Path “D: \ MyApp \ Log \ Queue .log »–Force}

Invoke-Command -ComputerName FS2 {Remove-Item –Path« D: \ MyApp \ Log \ Queue.log ”–Force}

parallel {

Invoke-Command -ComputerName SQL1 {Stop-Process -Name mssqlserver -Force}

Invoke-Command -ComputerName SQL2 {Stop-Process -Name mssqlserver -Force}

Invoke-Command -ComputerName SQL3 {Stop-Process -Name mssqlserver -Force}

}

parallel {

Invoke-Command -ComputerName SQL1 {Start-Process -Name mssqlserver -Force}

Invoke-Command -ComputerName SQL2 {Start-Process -Name mssqlserver -Force}

Invoke-Command -ComputerName SQL3 {Start-Process -Name mssqlserver -Force}

}

последовательность {

Invoke-Command -ComputerName FS1 {Start-Process -Name MyAppFS

}

-Command -ComputerName FS2 {Start-Process -Name MyAppFSQueue}

}

}

}

Invoke-Command -ComputerName WEB1 {Start-Process -Name MyAppQueue}

Invoke-Command -ComputerName WEB1 {Start-Process -Name MyApp}

}

Send-MailMessage -From «MyApp @ domain.com »-Для« [email protected] »-Тема« Обслуживание MyApp завершено »-Тело« Сценарий обслуживания MyApp запущен ».

}

Вот таблица, объясняющая внутренние взаимосвязи скрипта.

SQL2

Номер

Ожидание номера

Цель

Задача

1

62

62

2

WEB1

Остановить процесс MyAppQueue

3

1-2

.xml

4

1-2

FS2

Удалить MyAppQueue.xml

5

5

Остановить процесс MyAppFSQueue

6

1-4

FS2

Остановить процесс MyAppFSQueue

Удалить очередь.log

8

1-7

FS2

Удалить Queue.log

9

Остановить процесс mssqlserver

10

1-8

SQL2

Остановить процесс mssqlserver

Остановить процесс mssqlserver

12

1-11

SQL1

Запустить процесс mssqlserver

Запустить процесс mssqlserver

14

1-11

SQL3

Запустить процесс mssqlserver

15

1-14

63 FS1 9018

16

1-15

FS2

Запустить процесс MyAppFSQueue

17

1-16

WEBue 9018

WEBue 9018

WEBue 9018

18

1-17

WEB2

Начать процесс MyApp

19

1-18

Цель этого поста

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

Удачного сценария!

~ Джефф

Спасибо, Джефф, отличная работа.

Я приглашаю вас подписаться на меня в Twitter и Facebook.Если у вас есть какие-либо вопросы, отправьте мне письмо по адресу [email protected] или разместите свои вопросы на официальном форуме разработчиков сценариев. До завтра. А пока мир.

Эд Уилсон, Microsoft Scripting Guy

Dr Scripto

Scripter, PowerShell, vbScript, BAT, CMD

.

Смотрите также