Андрей Смирнов
Время чтения: ~24 мин.
Просмотров: 1

Chapter 1 — getting started with powershell

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

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

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

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

Важно!

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

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

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

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

  Set-ExecutionPolicy RemoteSigned

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

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

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

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

  Get-ChildItem Env:\PSModulePath | Format-Table -AutoSize

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

Использование 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 в окне командной строки, введите команду .To start a Windows PowerShell session in a Command Prompt window, type . В командную строку добавляется префикс 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:

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

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

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

  • Чтобы завершить сеанс Windows PowerShell в окне командной строки, введите команду .To end a Windows PowerShell session in a Command Prompt window, type . Типичная Командная строка возвращает.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.

Причины ошибок в файле Powershell.exe

Проблемы Powershell.exe могут быть отнесены к поврежденным или отсутствующим файлам, содержащим ошибки записям реестра, связанным с Powershell.exe, или к вирусам / вредоносному ПО.

Более конкретно, данные ошибки powershell.exe могут быть вызваны следующими причинами:

  • Поврежденные ключи реестра Windows, связанные с powershell.exe / Windows.
  • Вирус или вредоносное ПО, которые повредили файл powershell.exe или связанные с Windows программные файлы.
  • Другая программа злонамеренно или по ошибке удалила файлы, связанные с powershell.exe.
  • Другая программа находится в конфликте с Windows и его общими файлами ссылок.
  • Поврежденная загрузка или неполная установка программного обеспечения Windows.

How to Start Windows PowerShell on Earlier Versions of Windows

This section explains how to start Windows PowerShell and Windows PowerShell Integrated Scripting
Environment (ISE) on Windows 7, Windows Server 2008 R2, and Windows Server 2008. It also explains
how to enable the optional feature for Windows PowerShell ISE in Windows PowerShell 2.0 on Windows
Server 2008 R2 and Windows Server 2008.

Use any of the following methods to start the installed version of Windows PowerShell 3.0, or
Windows PowerShell 4.0, where applicable.

From the Start Menu

  • Click Start, type PowerShell, and then click Windows PowerShell.
  • From the Start menu, click Start, click All Programs, click Accessories, click the
    Windows PowerShell folder, and then click Windows PowerShell.

At the Command Prompt

In cmd.exe, Windows PowerShell, or Windows PowerShell ISE, to start Windows PowerShell, type:

You can also use the parameters of the powershell.exe program to customize the session. For more
information, see
PowerShell.exe Command-Line Help.

Finding PowerShell in Windows Server versions

Starting with Windows Server 2008 R2, Windows operating system can be installed without the
graphical user interface (GUI). Editions of Windows Server without GUI are named Core editions,
and editions with the GUI are named Desktop.

Windows Server Core editions

In all Core editions, when you log to the server you get a Windows command prompt window.

Type and press ENTER to start PowerShell inside the command prompt session. Type
to terminate the PowerShell session and return to command prompt.

Windows Server Desktop editions

In all desktop editions, click the left lower corner Windows icon, start typing PowerShell. You get
both console and ISE options.

The only exception to the above rule is the ISE in Windows Server 2008 R2 SP1; in this case, click
the left lower corner Windows icon, type PowerShell ISE.

Experimental Features

Previously, we enabled support for Experimental Features. In the 6.2 release, we have four
experimental features to try out. Please provide feedback so we can make improvements and to decide
whether the feature is worth promoting to mainstream status.

Use to get a list of available experimental features. You can enable or
disable these features with and .

Command Not Found Suggestions

This feature uses fuzzy matching to find suggestions for commands or cmdlets you may have mistyped.

Example

In this example, the misspelled cmdlet name is fuzzy matched to several suggestions from most likely
to least likely.

Implicit Remoting Batching

When using implicit remoting
in a pipeline, PowerShell treats each command in the pipeline independently. Objects are repeatedly
serialized and between the client and remote system over the execution of the
pipeline.

With this feature, PowerShell analyzes the pipeline to determine if the command is safe to run and
it exists on the target system. When true, PowerShell executes the entire pipeline remotely and only
serializes and the results back to the client.

A real-world test of over localhost decreases from 10-15 seconds to
20-30 milliseconds. The feature only needs to be enabled on the client. No changes are required
on the server.

Temp Drive

If you’re using PowerShell Core on different operating systems, you’ll discover that the environment
variable for finding the temporary directory is different on Windows, macOS, and Linux! With this
feature, you get a PSDrive called that is automatically mapped to the temporary folder
for the operating system you are using.

Example

Be aware that native file commands (like on Linux) are not aware of PSDrives and won’t see this
drive.

Abbreviation Expansion

PowerShell cmdlets are expected to have descriptive nouns. This results in long names that are more
difficult to type. This feature allows you to just type the uppercase characters of the cmdlet and
use tab-completion to find a match.

Example

If you hit tab, and have the Azure PowerShell Az
module installed, it will autocomplete to:

Note

This feature is intended to be used interactively. Abbreviated forms of cmdlets can’t be executed.
This feature is not a replacement for aliases.

Microsoft .NET Framework requirements

The following table shows the .NET Framework requirements for Windows PowerShell.

Version.NET requirement
Windows PowerShell 5.1Requires the full installation of Microsoft .NET Framework 4.5. Windows 8.1 and Windows Server 2012 R2 include Microsoft .NET Framework 4.5 by default.
Windows PowerShell 5.0Requires the full installation of Microsoft .NET Framework 4.5. Windows 8.1 and Windows Server 2012 R2 include Microsoft .NET Framework 4.5 by default.
Windows PowerShell 4.0Requires the full installation of Microsoft .NET Framework 4.5. Windows 8.1 and Windows Server 2012 R2 include Microsoft .NET Framework 4.5 by default.
Windows PowerShell 3.0Requires the full installation of Microsoft .NET Framework 4. Windows 8 and Windows Server 2012 include Microsoft .NET Framework 4.5 by default, which fulfills this requirement.

Use the following links to download Microsoft .NET Framework from the Microsoft Download Center.

VersionLink
.NET Framework 4.5 ()Microsoft .NET Framework 4.5
.NET Framework 4 ()Microsoft .NET Framework 4 (Web Installer)

Что такое Windows PowerShell

Как следует из названия, Windows PowerShell – это оболочка командной строки. Она была разработана специально для использования системными администраторами и может использоваться для выполнения всех команд cmd.exe.

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

Давайте подробно рассмотрим, какие функции и преимущества предлагает эта оболочка от Microsoft:

  • Интеграция с Microsoft .NET Framework. NET Framework – это среда управляемого выполнения для Windows, предоставляющая широкий спектр сервисов для запуска приложений. Команды сценариев PowerShell имеют доступ к ресурсам .NET Framework.
  • Объектно-ориентированный. В отличие от большинства оболочек, которые принимают и возвращают чистый текст, все команды PowerShell, генерирующие выходные данные, возвращают объекты .NET Framework, устраняя необходимость разбора текста в случае, если выходные данные команды нужны для последующей команды.
  • Command-Let. Windows PowerShell представляет концепцию command-let или cmdlet, инструмента командной строки с единственной функцией, встроенной в оболочку. Доступно более ста системных командлетов. Кроме того, вы можете писать собственные командлеты и делиться ими с другими пользователями. Каждый командлет может использоваться отдельно или в сочетании с другими для выполнения сложных задач.
  • Предназначен для системных администраторов. PowerShell включает функции, предназначенные для системных администраторов, такие как возможность работы на удаленных компьютерах, доступ к реестру Windows и запуск или остановка служб.

Как вызвать строку Выполнить в Windows 10

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

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

Зачастую достаточно просто открыть окно выполнения команд для запуска нужного приложения.

Первый способ заключается в использовании горячих клавиш Windows 10. Пользователю достаточно воспользоваться сочетанием клавиш Win+R. После нажатия вышеуказанных клавиш поверх всех программ откроется окно для выполнения команд.

Второй способ состоит в том, чтобы открыть окно выполнить вручную, который немного дольше, но также эффективный. Достаточно в контекстном меню пуск выбрать пункт Выполнить. А также можно перейти в Пуск > Служебные — Window и уже в текущей папки открыть классическое приложение Выполнить.

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

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

В диспетчере задач нажмите меню Файл > Запустить новую задачу. Дальше перед выполнением команды просто установить отметку на пункт Создать задачу с правами администратора. После выполнения нужной команды приложение запуститься от имени администратора.

Starting the 32-Bit Version of Windows PowerShell

When you install Windows PowerShell on a 64-bit computer, Windows PowerShell (x86), a 32-bit
version of Windows PowerShell is installed in addition to the 64-bit version. When you run Windows
PowerShell, the 64-bit version runs by default.

However, you might occasionally need to run Windows PowerShell (x86), such as when you’re using
a module that requires the 32-bit version or when you’re connecting remotely to a 32-bit computer.

To start a 32-bit version of Windows PowerShell, use any of the following procedures.

In Windows Server 2012 R2

  • On the Start screen, type Windows PowerShell (x86). Click the Windows PowerShell x86
    tile.
  • In Server Manager, from the Tools menu, select Windows PowerShell (x86).
  • On the desktop, move the cursor to the upper right corner, click Search, type PowerShell
    x86 and then click Windows PowerShell (x86).
  • Via command line, enter:

In Windows Server 2012

  • On the Start screen, type PowerShell and then click Windows PowerShell (x86).
  • In Server Manager, from the Tools menu, select Windows PowerShell (x86).
  • On the desktop, move the cursor to the upper right corner, click Search, type PowerShell
    and then click Windows PowerShell (x86).
  • Via command line, enter:
  • On the Start screen, type Windows PowerShell (x86). Click the Windows PowerShell x86
    tile.
  • If you’re running
    Remote Server Administration Tools for Windows
    8.1, you can also open Windows PowerShell x86 from the Server ManagerTools menu. Select
    Windows PowerShell (x86).
  • On the desktop, move the cursor to the upper right corner, click Search, type PowerShell
    x86 and then click Windows PowerShell (x86).
  • Via command line, enter:

Как узнать версию Виндовс

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

  1. «Свойства компьютера».
  2. «Настройки Windows».
  3. «Панель управления».
  4. «Сведения о системе».
  5. Командная строка.
  6. Утилита Winver.
  7. «Средство диагностики DirectX».
  8. «Редактор реестра».
  9. Команда systeminfo.

Через «Свойства компьютера»

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

  1. Откройте меню «Мой компьютер» («Этот компьютер»).
  2. На свободном от иконок месте щёлкните правой кнопкой мыши и выберите «Свойства».
  3. Как вариант: нажмите слева вверху на изображение файла с красной галочкой посередине.

@reedr.ru

Узнаете не только свой номер Виндовс, но и выпуск (в данном случае «Корпоративный», у вас может другой), и год установки операционной системы. Ниже будет ещё много полезной информации о вашей машине.

Зайдя в «Настройки Windows»

Узнать операционную систему ноутбука можно, воспользовавшись меню настроек.

  1. Нажмите на «Пуск».
  2. Слева внизу в вертикальном столбике выберите шестерёнку «Параметры».
  3. В левом столбце появившегося списка кликните на нижнюю строку «О системе».
  4. Справа смотрите «Характеристики Windows».

Вы здесь увидите также версию, дату установки и сборки ОС.

@reedr.ru

Попасть в меню «Параметры» вы можете также при помощи комбинации клавиш Windows + X. А чтобы сразу посмотреть «Сведения о системе», щёлкните одновременно Windows + I.

Воспользовавшись «Панелью управления»

  1. Нажмите на лупу рядом со значком «Пуск».
  2. Задайте поиск «Панель управления» и кликните на результат.
  3. В открывшемся меню перейдите в раздел «Система».

Откроется такое же окно, как если бы мы воспользовались «Свойствами компьютера», если у вас «десятка». А если «семёрка», то будет такое:

@reedr.ru

Запустив приложение «Сведения о системе»

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

  1. В поисковом окне меню «Пуск» введите запрос: «Сведения о системе».
  2. Кликните на результат.

Можете изучать своё устройство во всех подробностях. Список довольно длинный.

@reedr.ru

Попасть в это меню можно и другим способом:

  1. Комбинацией клавиш Win + R вызовите поиск.
  2. Введите в строку слово «msinfo32».
  3. Подтвердите кнопкой Enter или нажав «Ок».

@reedr.ru

При помощи командной строки

  1. Вызовите меню «Выполнить», нажав одновременно кнопки Win + R.
  2. Введите поисковое слово «CMD».
  3. Щёлкните на «Ок».

@reedr.ru

Перед вами появится командная строка с описанием установленной на устройстве версии Windows.

Запустив утилиту Winver

  1. Загрузить её можно с диска С, открыв папку System.
  2. Либо в строке поиска (Windows + R) задать слово «Winver» и нажать Enter.

@reedr.ru

В открывшемся окне «Windows: сведения» будет вся интересующая информация.

Попав в «Средство диагностики DirectX»

Открыть это окно можно с помощью меню «Выполнить»:

  1. Кликните одновременно на клавиши Win + R.
  2. Введите в поисковую строчку слово «dxdiag».
  3. Подтвердите нажатием «Ок».

@reedr.ru

В появившемся окне сможете посмотреть много данных по поводу вашей системы.

Открыв «Редактор реестра»

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

Но если всё же решились, на всякий случай создайте копию реестра:

  1. Откройте «Редактор реестра».
  2. Нажмите на «Файл».
  3. Выберите «Экспорт».
  4. Укажите место нахождения резервной копии.
  5. Кликните на «Сохранить».

Теперь можете попробовать зайти в сам Редактор:

@reedr.ru

В панели справа узнаете версию, номер сборки, вариант ОС.

Задействовав команду systeminfo

Зайдите в систему от имени администратора.

  1. Для этого выберите «Пуск» > «Windows PowerShell (администратор)»/«Командная строка (администратор)» (один из двух вариантов).
  2. Введите «systeminfo».

Система обработает информацию и через несколько секунд выдаст результаты.

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

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

Если знаете ещё какой-то способ определения версии Windows, можете рассказать о нём в комментах.

How to start a remote session with the Windows PowerShell 2.0 Engine

To run the Windows PowerShell 2.0 Engine in a remote session, create a session configuration (also
known as an endpoint) on the remote computer that loads the Windows PowerShell 2.0 Engine. The
session configuration is saved on the remote computer and can be used by any authorized user to
create sessions that use the Windows PowerShell 2.0 Engine.

This is an advanced task that is typically performed by a system administrator.

The following procedure uses the PSVersion parameter of the Register-PSSessionConfiguration
cmdlet to create a session configuration that uses the Windows PowerShell 2.0 Engine. You can also
use the PowerShellVersion parameter of the New-PSSessionConfigurationFile cmdlet to create a
session configuration file for a session that loads the Windows PowerShell 2.0 Engine and you can
use the PSVersion parameter of the Set-PSSessionConfiguration parameter to change a session
configuration to use the Windows PowerShell 2.0 Engine.

For more information about session configuration files, see about_Session_Configuration_Files.
For information about session configurations, including setup and security, see
about_Session_Configurations.

To start a remote Windows PowerShell 2.0 session

  1. To create a session configuration that requires the Windows PowerShell 2.0 Engine, use the
    PSVersion parameter of the cmdlet with a value of .
    Run this command on the computer at the «server side» or receiving end of the connection.

    The following sample command creates the PS2 session configuration on the Server01 computer. To
    run this command, start Windows PowerShell with the Run as administrator option.

  2. To create a session on the Server01 computer that uses the PS2 session configuration, use the
    ConfigurationName parameter of cmdlets that create a remote session, such as the
    `New-PSSession cmdlet.

    When a session that uses the session configuration starts, the Windows PowerShell 2.0 Engine is
    automatically loaded into the session.

    The following command starts a session on the Server01 computer that uses the PS2 session
    configuration. The command saves the session in the variable.

Operating system requirements

Windows PowerShell 5.1

Windows PowerShell 5.1 runs on the following versions of Windows. To run Windows PowerShell 5.1,
install Windows Management Framework 5.1. For more information, see
Install and Configure WMF 5.1.

Windows versionSystem requirement
Windows Server 2019Installed by default
Windows Server 2016Installed by default
Windows Server 2012 R2Install Windows Management Framework 5.1
Windows Server 2012Install Windows Management Framework 5.1
Windows Server 2008 R2 with Service Pack 1Install Windows Management Framework 5.1
Windows 10 version 1607 and upInstalled by default
Windows 10 version 1507, 1511Install Windows Management Framework 5.1
Windows 8.1Install Windows Management Framework 5.1
Windows 7 with Service Pack 1Install Windows Management Framework 5.1

Windows PowerShell 5.0

Windows PowerShell 5.0 runs on the following versions of Windows. To run Windows PowerShell 5.0,
install Windows Management Framework 5.1. For more information, see
Install and Configure WMF 5.1. Windows Management Framework 5.1
supersedes Windows Management Framework 5.0.

Windows versionSystem requirement
Windows Server 2019Higher version installed by default
Windows Server 2016Higher version installed by default
Windows Server 2012 R2Install Windows Management Framework 5.1
Windows Server 2012Install Windows Management Framework 5.1
Windows Server 2008 R2 with Service Pack 1Install Windows Management Framework 5.1
Windows 10 version 1607 and upHigher version installed by default
Windows 10 version 1507, 1511Installed by default
Windows 8.1Install Windows Management Framework 5.1
Windows 7 with Service Pack 1Install Windows Management Framework 5.1

Windows PowerShell 4.0

Windows PowerShell 4.0 runs on the following versions of Windows. To run Windows PowerShell 4.0,
install the specified version of the Windows Management Framework for your operating system.

Windows versionSystem requirement
Windows 8.1Installed by default
Windows Server 2012 R2Installed by default
Windows 7 with Service Pack 1Install Windows Management Framework 4.0
Windows Server 2008 R2 with Service Pack 1Install Windows Management Framework 4.0

Windows PowerShell 3.0

Windows PowerShell 3.0 runs on the following versions of Windows. To run Windows PowerShell 3.0,
install the specified version of the Windows Management Framework for your operating system.

Windows versionSystem requirement
Windows 8Installed by default
Windows Server 2012Installed by default
Windows 7 with Service Pack 1Install Windows Management Framework 3.0
Windows Server 2008 R2 with Service Pack 1Install Windows Management Framework 3.0
Windows Server 2008 with Service Pack 2Install Windows Management Framework 3.0

Основные командлеты PowerShell для управления службами Windows

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

Чтобы получить весь список командлетов Service, введите команду:

  • Get-Service — позволяет получить службы на локальном или удаленном компьютере, как запущенные, так и остановленные;
  • New-Service – создать службу. Создает в реестре и базе данных служб новую запись для службы Windows;
  • Restart-Service – перезапустить службу. Передает сообщение об перезапуске службы через Windows Service Controller
  • Resume-Service – возобновить службы. Отсылает сообщение о возобновлении работы диспетчеру служб Windows;
  • Set-Service — изменить параметры локальной или удаленной службы, включая состояние, описание, отображаемое имя и режим запуска. Этот командлет также можно использовать для запуска, остановки или приостановки службы;
  • Start-Service – запустить службу;
  • Stop-Service – остановить службу (отсылает сообщение об остановке диспетчеру служб Windows);
  • Suspend-Service приостановить службу. Приостановленная служба по-прежнему выполняется, однако ее работа прекращается до возобновления работы службы, например с помощью командлета Resume-Service.

Получить подробное описание и примеры использования конкретного командлета можно через Get-help:

Get-Service: получаем список служб и их состояние

Получить список и состояние (Running/Stopped) службы на локальном или удаленном компьютере можно с помощью командлета Get-Service. Параметр -Name позволяет делать отбор по имени службы. Имя службы можно задать с использованием подстановочного символа *.

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

.

Командлет Get-Service можно использовать для получения состояния служб на удаленных компьютерах, указав параметр -ComputerName. Можно опросить статус службы сразу на множестве удаленных компьютеров, их имена нужно перечислить через запятую. Например, приведенная ниже команда получает состояние службы Spooler на удаленных компьютерах RM1 и RM2.

Status Name DisplayName
------ ---- -----------
Running spooler Print Spooler
Stopped spooler Print Spooler

Вывести все свойства службы позволит командлет Select-Object:

Командлет Select-Object позволит вывести определенные свойства службы. Например, нам нужно вывести имя, статус и доступные возможности службы Spooler:

Командлет Get-Service имеет два параметра, которые позволяют получить зависимости служб:

  • Параметр -DependentServices позволяет вывести службы, которые зависят от данной службы;
  • Параметр -RequiredServices позволяет вывести службы, от которых зависит данная служба.

Приведенная ниже команда выводит службы, необходимые для запуска службе Spooler:

Следующая команда выводит службы, которые зависят от службы Spooler:

При необходимости найти службы с определенным состоянием или параметрами, используйте командлет Where-Object. Например, получим список запущенных служб со статусом Running:

Для вывода служб с типом запуска Manual, выполните команду

Проверить, что в системе имеется указанная служба:

How to Enable Windows PowerShell ISE on Earlier Releases of Windows

In Windows PowerShell 4.0 and Windows PowerShell 3.0, Windows PowerShell ISE is enabled by default
on all versions of Windows. If it isn’t already enabled, Windows Management Framework 4.0 or Windows
Management Framework 3.0 enables it.

In Windows PowerShell 2.0, Windows PowerShell ISE is enabled by default on Windows 7. However, on
Windows Server 2008 R2 and Windows Server 2008, it’s an optional feature.

To enable Windows PowerShell ISE in Windows PowerShell 2.0 on Windows Server 2008 R2 or Windows
Server 2008, use the following procedure.

To enable Windows PowerShell Integrated Scripting Environment (ISE)

  1. Start Server Manager.
  2. Click Features and then click Add Features.
  3. In Select Features, click Windows PowerShell Integrated Scripting Environment (ISE).

Написание и запуск скриптов

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

Хакатон Tour.Hack

Ивент перенесён на 26–27 сентября, Новосибирск, беcплатно

tproger.ru

События и курсы на tproger.ru

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

  • Restricted — выполнение скриптов запрещено. Стандартная конфигурация;
  • AllSigned — можно запускать скрипты, подписанные доверенным разработчиком; перед запуском скрипта PowerShell запросит у вас подтверждение;
  • RemoteSigned — можно запускать собственные скрипты или те, что подписаны доверенным разработчиком;
  • Unrestricted — можно запускать любые скрипты.

Для начала работы необходимо изменить настройку политики запуска на RemoteSigned, используя команду :

Командлеты

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

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

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

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

При необходимости список всех доступных командлетов можно вывести с помощью Get-Help-Category:

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

Параметры

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

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

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

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

Конвейер

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

  • — сортировка запущенных служб по статусу;
  • — запись текста в файл.

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

Check system32 for compatible built-in modules on Windows

In the Windows 10 1809 update and Windows Server 2019, we updated a number of built-in PowerShell
modules to mark them as compatible with PowerShell Core.

When PowerShell Core 6.1 starts up, it will automatically include as part of the
environment variable. However, it only exposes modules to and
if its is marked as compatible with .

Note

You may see different available modules depending on what roles and features are installed.

You can override this behavior to show all modules using the switch parameter.
We’ve also added a property to the table output.

For more information about this behavior, check out
PowerShell RFC0025.

Рейтинг автора
5
Материал подготовил
Максим Иванов
Наш эксперт
Написано статей
129
Ссылка на основную публикацию
Похожие публикации