Открыть окно powershell здесь что это в автозагрузке

Обновлено: 02.07.2024

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

Я уже попробовал следующие методы, но не смог заставить его работать.

Используйте msconfig и добавьте сценарий PowerShell при запуске, но я не могу найти сценарий PowerShell в этом списке.

Создайте ярлык и поместите его в папку автозагрузки. Не повезло.

или % SystemRoot% \ system32 \ WindowsPowerShell \ v1.0 \ powershell.exe -File "C: \ Doc \ Files \ FileMonitor.ps1"

Вот мой сценарий PowerShell:

Я также попытался добавить основную задачу с помощью taskschd.msc. Это все еще не работает.

Вот что я нашел, и, возможно, это поможет отладить его.

Если я открываю окно PowerShell и запускаю там скрипт, он работает. Но если я запускаю его в командной строке CMD,

Это не сработает. Я не уверен, что это проблема с разрешением или что-то еще.

Кстати, у меня установлен PowerShell 3.0, и если я наберу $ host.version, там будет показано 3. Но мой powershell.exe, похоже, все еще v1.0.

Я наконец-то заставил свой скрипт PowerShell автоматически запускаться при каждом запуске. Вам нужно будет создать два файла: первый - это скрипт Powershell (например, script.ps1 ), а второй - файл .cmd, который будет содержать команды, которые будут выполняться в командной строке (например, startup.cmd ).

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

  1. Создайте сценарий .ps1 и поместите его в папку. Я положил его на свой рабочий стол для простоты. Путь будет выглядеть примерно так:

C: \ Users \ & л; имя_пользователя > \ Desktop \ script.ps1

C: \ Users \ < имя_пользователя > \ AppData \ Roaming \ Microsoft \ Windows \ Меню Пуск \ Программы \ Запуск \ startup.cmd

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

Откройте файл .cmd в текстовом редакторе и введите следующие строки:

PowerShell -Command "Set-ExecutionPolicy Unrestricted" >> "%TEMP%\StartupLog.txt" 2>&1 PowerShell C:\Users\<user_name>\Desktop\script.ps1 >> "%TEMP%\StartupLog.txt" 2>&1

Это сделает две вещи:

  1. Установите для политики выполнения вашей PowerShell значение Неограниченно. Это необходимо для запуска сценариев, иначе PowerShell этого не сделает.
  2. Используйте PowerShell для выполнения сценария .ps1, найденного по указанному пути.

Этот код специально для PowerShell v1.0. Если вы используете PowerShell v2.0, он может немного отличаться. В любом случае, проверьте этот источник на наличие кода .cmd.

Теперь, когда у вас есть файлы .ps1 и .cmd по соответствующим путям и со сценарием для каждого, все готово.

Вы можете установить его в качестве запланированной задачи и установить триггер задачи для «При запуске»

Что я делаю, это создаю ярлык, который помещаю в shell: startup.

Ярлык имеет следующее:

Цель: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Command "C:\scripts\script.ps1"

(замена scripts \ scripts.ps1 на то, что вам нужно)

Начать с: C:\scripts

(замена скриптов папкой с вашим скриптом)

Скопируйте ps1 в эту папку и создайте его при необходимости. Он будет запускаться при каждом запуске (до входа пользователя в систему).

Также это можно сделать через GPEDIT.msc, если он доступен в вашей сборке ОС (возможно, ОС более низкого уровня).

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

powershell.exe -noexit -command "& \path\to\script.ps1"

 введите описание изображения здесь

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

Создайте новый ярлык , щелкнув правой кнопкой мыши и в контекстном меню выберите пункт меню: New => Ярлык

Создайте ярлык для вашего скрипта, например:

C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe -NoProfile -Command "C: \ Users \ someuser \ Documents \ WindowsPowerShell \ Scripts \ somesscript.ps1"

Обратите внимание на использование -NoProfile . Если вы много инициализируете в вашем файле $ profile, неэффективно загружать его, чтобы просто запустить скрипт Powershell. -NoProfile пропустит загрузку файла вашего профиля и будет разумно указать, нужно ли запускать его перед выполнением скрипта Powershell.

Здесь вы видите такой ярлык, созданный (файл .lnk со значком Powershell с символом ярлыка):

Это сработало для меня. Создано запланированное задание с подробностями ниже: Триггер: при запуске

Действия: Программа /скрипт: powershell.exe Аргументы: -файл

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

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

Щелкните правой кнопкой мыши в этой папке и в контекстном меню выберите новый ярлык. Введите следующее:

C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe -NoProfile -Команда "C: \ myfolder \ somescript.ps1"

Это запустит сценарий Powershell без запуска сценариев $ profile для более быстрого выполнения. Это обеспечит запуск сценария powershell.

Папка оболочки: автозагрузка находится в:

$ ENV: APPDATA \ Microsoft \ Windows

А затем в папку:

Как обычно, Microsoft делает некоторые вещи немного сложными для нас, когда путь содержит пробелы, поэтому вам нужно поместить кавычки вокруг полного пути или просто нажать вкладку внутри 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 команды

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

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

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

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

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

Что это Windows PowerShell в Windows 10

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


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

СВЯЗАННЫЕ С: Чем PowerShell отличается от командной строки Windows

Хотя вы можете открыть PowerShell из меню «Пуск», этот список содержит некоторые (потенциально) более простые и менее известные способы запуска этого инструмента.

Из меню опытных пользователей

Меню Power Users появляется на панели задач при нажатии Windows + X. Это простой способ получить доступ к множеству настроек, утилит и системных программ из одного меню.

Чтобы открыть PowerShell из этого меню, нажмите Windows + X, а затем нажмите «Windows PowerShell» или «Windows PowerShell (Admin)».

щелчок

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

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

СВЯЗАННЫЕ С: Как вернуть командную строку в меню Windows + X Power Users

Из меню «Пуск»

Вероятно, одним из самых быстрых способов открыть PowerShell является поиск в меню «Пуск». Просто щелкните значок «Пуск» или «Поиск», а затем введите «powershell» в поле поиска.

Нажмите значок поиска и введите

Теперь нажмите «Открыть» или «Запуск от имени администратора», чтобы открыть PowerShell как обычно, так и с правами администратора.

щелчок

Прокручивая все приложения в меню «Пуск»

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

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

Нажмите значок «Пуск», а затем нажмите

Прокрутите вниз, щелкните папку «Windows PowerShell» и выберите «Windows PowerShell», чтобы открыть ее.

Нажмите на

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

Щелкните правой кнопкой мыши

Из коробки бега

Нажмите Windows + R, чтобы открыть диалоговое окно «Выполнить», а затем введите «powershell» в текстовое поле. Вы можете либо нажать «ОК» (или нажать Enter), чтобы открыть обычное окно PowerShell, либо нажать Ctrl + Shift + Enter, чтобы открыть окно PowerShell с повышенными правами.

Тип

Из меню «Файл» Проводника

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

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

Оказавшись там, нажмите «Файл», наведите курсор на «Открыть Windows PowerShell» и выберите один из следующих параметров:

  • «Откройте Windows PowerShell»: Откроется окно PowerShell в текущей папке со стандартными разрешениями.
  • «Откройте Windows PowerShell от имени администратора»: Откроется окно PowerShell в текущей папке с правами администратора.

щелчок

Обратите внимание, что этот метод не работает из каталога «Быстрый доступ». Вы найдете возможность открыть PowerShell серым цветом при нажатии «Файл».

Из адресной строки проводника

Чтобы открыть PowerShell из адресной строки проводника, откройте проводник. Нажмите на адресную строку, введите «powershell» и нажмите Enter.

Тип

PowerShell откроется с уже заданным путем к текущей папке.

Окно PowerShell.

Из диспетчера задач

Чтобы открыть диспетчер задач, нажмите Ctrl + Shift + Esc. В появившемся окне нажмите «Подробнее».

щелчок

Теперь нажмите File> Run New Task.

щелчок

Введите «powershell» в текстовое поле и нажмите «OK», чтобы продолжить.

Тип

Если вы хотите запускать PowerShell с правами администратора, убедитесь, что выбран параметр «Создать эту задачу с правами администратора».

Из контекстного меню правой кнопкой мыши

щелчок

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

СВЯЗАННЫЕ С: Как добавить «Открыть PowerShell здесь» в контекстное меню для папки в Windows


Создать ярлык PowerShell на рабочем столе

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

Для этого щелкните правой кнопкой мыши пустое место на рабочем столе. В контекстном меню выберите «Создать»> «Ярлык».

В появившемся окне введите «powershell» в текстовое поле и нажмите «Далее», чтобы продолжить.

Тип

Назовите ваш ярлык, а затем нажмите «Готово», чтобы создать его.

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

Теперь, когда вы дважды щелкнете по значку, откроется PowerShell.


Если вы хотите открыть PowerShell с правами администратора, щелкните правой кнопкой мыши ярлык и выберите «Свойства» в контекстном меню.

щелчок

щелчок

Наконец, установите флажок рядом с параметром «Запуск от имени администратора», чтобы разрешить запуск ярлыка с самыми высокими привилегиями.

Выберите

Нажмите «ОК» в обоих окнах, чтобы сохранить изменения и закрыть окна свойств.

Windows PowerShell — это обработчик скриптов .DLL , который внедрен в несколько узлов. Самый распространенный запускаемый узел — интерактивная командная строка powershell.exe и интерактивная среда скриптов powershell_ise.exe .

Информацию о запуске Windows PowerShell в Windows Server 2012 R2, Windows 8.1, Windows Server 2012 и Windows 8 см. в статье Общие задачи управления и навигации в Windows.

В PowerShell есть переименованный двоичный файл

Начиная с PowerShell 6 двоичный файл PowerShell был переименован в pwsh.exe для Windows и pwsh для macOS и Linux. Вы можете запустить предварительную версию PowerShell с помощью pwsh-preview . Дополнительные сведения см. в статье Сведения о pwsh.

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

Документ Ссылка
Справка по командлетам Обозреватель модулей PowerShell
Установка в Windows Установка PowerShell в Windows
Установка в macOS Установка PowerShell в macOS
Установка в Linux Установка PowerShell в Linux

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

Запуск Windows PowerShell в более ранних версиях Windows

В этом разделе объясняется, как запустить Windows PowerShell и интегрированную среду скриптов Windows PowerShell (ISE) в Windows 7, Windows Server 2008 R2 и Windows Server 2008. Кроме того, здесь поясняется, как включить дополнительный компонент Windows PowerShell ISE в Windows PowerShell 2.0 в ОС Windows Server 2008 R2 и Windows Server 2008.

Используйте любой из следующих методов для запуска установленной версии Windows PowerShell 3.0 или Windows PowerShell 4.0, где это возможно.

Из меню "Пуск"

В командной строке

В cmd.exe, Windows PowerShell или интегрированной среде сценариев Windows PowerShell для запуска Windows PowerShell введите следующее:

Можно также использовать параметры программы powershell.exe для настройки сеанса. Дополнительные сведения см. в статье Справка по командной строке PowerShell.exe.

С правами администратора (Запуск от имени администратора)

Запуск интегрированной среды сценариев Windows PowerShell в более ранних версиях Windows

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

Из меню "Пуск"

В командной строке

В cmd.exe , Windows PowerShell или интегрированной среде сценариев Windows PowerShell для запуска Windows PowerShell введите следующее:

С правами администратора (Запуск от имени администратора)

Включение интегрированной среды сценариев Windows PowerShell в более ранних версиях Windows

При использовании Windows PowerShell 4.0 и Windows PowerShell 3.0 интегрированная среда сценариев Windows PowerShell по умолчанию включена во всех версиях Windows. Если она еще не включена, Windows Management Framework 4.0 или Windows Management Framework 3.0 включает ее.

При использовании Windows PowerShell 2.0 интегрированная среда сценариев Windows PowerShell по умолчанию включена в Windows 7. В Windows Server 2008 R2 и Windows Server 2008 эта функция является дополнительной.

Чтобы включить интегрированную среду сценариев Windows PowerShell для Windows PowerShell 2.0 в Windows Server 2008 R2 или Windows Server 2008, выполните указанные ниже действия.

Включение интегрированной среды сценариев Windows PowerShell Windows PowerShell (ISE)

  1. Запустите диспетчер серверов.
  2. Щелкните Компоненты и выберите Добавить компоненты.
  3. В меню "Выберите компоненты" щелкните интегрированную среду сценариев Windows PowerShell.

Запуск 32-разрядной версии Windows PowerShell

При установке Windows PowerShell на 64-разрядном компьютере в дополнение к 64-разрядной версии устанавливается Windows PowerShell (x86) — 32-разрядная версия Windows PowerShell. При открытии Windows PowerShell по умолчанию запускается 64-разрядная версия.

Однако в некоторых случаях нужно запустить Windows PowerShell (x86), например при использовании модуля, которому требуется 32-разрядная версия, или при удаленном подключении к 32-разрядному компьютеру.

Для запуска 32-разрядной версии Windows PowerShell воспользуйтесь любой из следующих процедур.

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




Основные возможности

Windows PowerShell позволяет:

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

Оболочка и среда разработки

Существует Windows PowerShell в двух ипостасях: помимо эмулятора консоли с командной оболочкой есть интегрированная среда сценариев (Integrated Scripting Environment — ISE). Чтобы получить доступ к интерфейсу командной строки достаточно выбрать соответствующий ярлык в меню Windows или запустить powershell.exe из меню «Выполнить». На экране появится синее окошко, заметно отличающееся по возможностям от допотопного cmd.exe. Там есть автодополнение и другие фишки, привычные пользователям командных оболочек для Unix-систем.


Для работы с оболочкой нужно запомнить некоторые сочетания клавиш:

  • Стрелки вверх и вниз прокручивают историю для повтора ранее набранных команд;
  • Стрелка вправо в конце строки перенабирает предыдущую команду посимвольно;
  • Ctrl+Home удаляет набранный текст от позиции курсора до начала строки;
  • Ctrl+End удаляет текст от курсора до конца строки.


Windows PowerShell ISE является полноценной средой разработки с поддерживающим вкладки и подсветку синтаксиса редактором кода, конструктором команд, встроенным отладчиком и другими программистскими радостями. Если в редакторе среды разработки после имени команды написать знак дефис, вы получите в выпадающем списке все доступные параметры с указанием типа. Запустить PowerShell ISE можно либо через ярлык из системного меню, либо с помощью исполняемого файла powershell_ise.exe.


Командлеты

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

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

Есть системные, пользовательские и опциональные командлеты: в результате выполнения все они возвращают объект или массив объектов. К регистру они не чувствительны, т.е. с точки зрения интерпретатора команд нет разницы между Get-Help и get-help. Для разделения используется символ ‘;’, но ставить его обязательно только если в одной строке выполняется несколько командлетов.

Командлеты Windows PowerShell группируются в модули (NetTCPIP, Hyper-V и т.д.), а для поиска по объекту и действию существует командлет Get-Command. Показать справку по нему можно так:


По умолчанию команда отображает краткую справку, но в командлеты при необходимости передаются параметры (аргументы). С их помощью можно, например, получить детальную (параметр -Detailed) или полную (параметр -Full) справку, а также вывести на экран примеры (параметр -Examples):


Справка в Windows PowerShell обновляется командлетом Update-Help. Если строка команд получается слишком длинной, аргументы командлета можно перенести на следующую, написав служебный символ ‘`’ и нажав Enter — просто закончить писать команду на одной строке и продолжить на другой не получится.

Ниже приведем несколько примеров распространенных командлетов:

Get-Process — показать запущенные в системе процессы;
Get-Service — показать службы и их статус;
Get-Content — вывести содержимое файла.

Для часто используемых командлетов и внешних утилит в Windows PowerShell есть короткие синонимы — алиасы (от англ. Alias). Например, dir — алиас Get-ChildItem. Есть в списке синонимов и аналоги команд из Unix-систем (ls, ps и т.д.), а командлет Get-Help вызывается командой help. Полный список синонимов можно посмотреть с помощью командлета Get-Alias:


Сценарии, функции, модули и язык PowerShell

Скрипты Windows PowerShell хранятся в виде обычных текстовых файлов с расширением .ps1. Запустить их двойным кликом нельзя: нужно правой кнопкой мыши вызвать контекстное меню и выбрать пункт «Запустить в PowerShell». Из консоли придется либо указать полный путь к скрипту, либо перейти в соответствующий каталог и написать имя файла. Запуск сценариев также ограничен системной политикой, а для проверки текущих настроек можно использовать командлет Get-ExecutionPolicy, который выдаст одно из следующих значений:

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

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


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

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

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

Конвейеры

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

Простейший пример конвейера выглядит так:


Сначала выполняется командлет Get-Service, а потом все полученные им службы передаются на сортировку по свойству Status командлету Sort-Object. В какой именно аргумент передается результат работы предыдущего участка конвейера, зависит от его типа — обычно это InputObject. Подробнее этот вопрос будет рассматриваться в посвященной языку программирования PowerShell статье.

При желании цепочку можно продолжить и передать результат работы Sort-Object еще одному командлету (выполняться они будут слева направо). Кстати, пользователям Windows доступна и привычная всем юниксоидам конструкция для постраничного вывода:

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

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

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

Для запуска фоновой задачи мы используем командлет Start-Job и в фигурных скобках указываем команду или набор команд:


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


Теперь покажем результат работы задания Job1:


Всё довольно просто.

Удаленное выполнение команд

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

  • У многих командлетов есть параметр -ComputerName , но таким способом не получится, например, создать конвейер;
  • Командлет Enter-PSSession позволяет создать на удаленной машине интерактивный сеанс;
  • С помощью командлета Invoke-Command можно выполнять команды или сценарии на одном или нескольких удаленных компьютерах.

Версии PowerShell

С момента первого релиза в 2006 году PowerShell серьезно изменился. Инструмент доступен для множества систем, работающих на разных аппаратных платформах (x86, x86-64, Itanium, ARM): Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008/2008 R2, Windows 7, Windows 8, Windows 8.1, Windows RT, Windows RT 8.1, Windows Server 2012/2012 R2, Windows 10, Windows Server 2016, GNU/Linux и OS X. Последний релиз 6.2 выпущен 10 января 2018 года. Написанные для более ранних версий скрипты с высокой вероятностью будут работать в более поздних, а вот с обратным переносом могут возникнуть проблемы, поскольку за годы развития в PowerShell появилось большое количество новых командлетов. Узнать версию установленной на компьютере командной оболочки можно с помощью свойства PSVersion встроенной переменной $PSVersionTable:


Также можно воспользоваться командлетом:


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

Итоги

Читайте также: