Команды powershell windows 10

Обновлено: 07.07.2024

Windows клиент включает в себя кодлеты Provisioning PowerShell. Эти командлеты облегчают создание сценариев для следующих функций.

cmdlets

Add-ProvisioningPackage: Применяет пакет подготовка.

  • Add-ProvisioningPackage [-Path] <string> [-ForceInstall] [-LogsFolder <string>] [-QuietInstall] [-WprpFile <string>] [<CommonParameters>]

Remove-ProvisioningPackage: Удаляет пакет подготовка.

  • Remove-ProvisioningPackage -PackageId <string> [-LogsFolder <string>] [-WprpFile <string>] [<CommonParameters>]
  • Remove-ProvisioningPackage -Path <string> [-LogsFolder <string>] [-WprpFile <string>] [<CommonParameters>]
  • Remove-ProvisioningPackage -AllInstalledPackages [-LogsFolder <string>] [-WprpFile <string>] [<CommonParameters>]

Get-ProvisioningPackage: Получает сведения о установленном пакете подготовка.

  • Get-ProvisioningPackage -PackageId <string> [-LogsFolder <string>] [-WprpFile <string>] [<CommonParameters>]
  • Get-ProvisioningPackage -Path <string> [-LogsFolder <string>] [-WprpFile <string>] [<CommonParameters>]
  • Get-ProvisioningPackage -AllInstalledPackages [-LogsFolder <string>] [-WprpFile <string>] [<CommonParameters>]

Export-ProvisioningPackage: Извлекает содержимое пакета подготовка.

  • Export-ProvisioningPackage -PackageId <string> -OutputFolder <string> [-Overwrite] [-AnswerFileOnly] [-LogsFolder <string>] [-WprpFile <string>] [<CommonParameters>]
  • Export-ProvisioningPackage -Path <string> -OutputFolder <string> [-Overwrite] [-AnswerFileOnly] [-LogsFolder <string>] [-WprpFile <string>] [<CommonParameters>]

Install-TrustedProvisioningCertificate: добавляет сертификат в хранилище доверенных сертификатов.

  • Install-TrustedProvisioningCertificate <path to local certificate file on disk>

Get-TrustedProvisioningCertificate: Списки всех установленных доверенных сертификатов провизии. Используйте этот комдлет, чтобы получить отпечатки пальцев сертификата для использования с Uninstall-TrustedProvisioningCertificate помощью этого комлета.

Uninstall-TrustedProvisioningCertificate: Удаляет ранее установленный сертификат провизии.

  • Uninstall-TrustedProvisioningCertificate <thumbprint>

Чтобы получить сведения об использовании любой команды можно использовать Get-Help. Пример. Get-Help Add-ProvisioningPackage

Журналы трассировки регистрируются при помощи командлетов. Следующие журналы доступны в папке журналов после завершения командлета:

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

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

Чем отличались результаты первого и второго тестов между двумя группами?

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

Я слышал, как автор PowerShell Джеффри Сновер рассказывал подобную историю несколько раз.

Овладение справочной системой — важное условие для успешной работы с PowerShell.

Возможность обнаружения

Скомпилированные команды в PowerShell называются командлетами. В оригинале слово cmdlet произносится полностью: "командлет". Имена командлетов соответствуют форме отдельных команд "глагол — существительное", что позволяет легко их находить. Например, командлет Get-Process определяет выполняемые процессы, а командлет Get-Service получает список служб и их состояний. В PowerShell существуют другие типы команд, например псевдонимы и функции, которые будут рассмотрены далее в этом пособии. Команда PowerShell — это универсальное понятие, которое часто используется для ссылки на любой тип команды в PowerShell, независимо от того, является ли он командлетом, функцией или псевдонимом.

Три основных командлета в PowerShell

  • Get-Command
  • Get-Help
  • Get-Member (рассматривается в главе 3)

Вопрос, который мне часто задают: как вы различаете команды в PowerShell? Для определения команд можно использовать командлеты Get-Command и Get-Help .

Get-Help

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

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

Первое, что нужно знать о справочной системе PowerShell, — как использовать командлет Get-Help . Следующая команда позволяет вывести раздел справки для Get-Help .

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

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

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

  • NAME
  • Краткий обзор
  • SYNTAX
  • DESCRIPTION
  • Связанные ссылки
  • ПРИМЕЧАНИЯ

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

Хотя это и не относится к PowerShell, параметр — это способ предоставления команде входных данных. Get-Help имеет много параметров, которые можно указать для возврата всего раздела справки или его подмножества.

В разделе синтаксиса раздела справки, который отображается в предыдущем наборе результатов, приводится список всех параметров Get-Help . На первый взгляд кажется, что одинаковые параметры приведены шесть раз по-разному. Каждый из этих блоков раздела синтаксиса представляет собой набор параметров. Это означает, что командлет Get-Help имеет шесть разных наборов параметров. Если посмотреть более внимательно, можно заметить, что в каждом наборе по крайней мере один параметр отличается.

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

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

  • Полное
  • Подробно
  • Примеры
  • Справка в Интернете
  • Параметр
  • ShowWindow

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

Дополнительные сведения о том, как распознать непонятные синтаксические конструкции, см. в Приложение А.

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

При указании параметра Full в значении Get-Help возвращается весь раздел справки.

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

Заметьте, что использование параметра Full привело к возврату нескольких дополнительных разделов, один из которых представляет собой раздел ПАРАМЕТРОВ, содержащий больше данных, чем раздел СИНТАКСИСА с непонятными конструкциями.

Параметр Full является параметром-переключателем, то есть тем, который не требует указывать значение. Если параметр-переключатель указывается, его значение будет верным, а если не указывается, значение будет неверным.

Работая над этой главой в консоли PowerShell, вы заметили, что предыдущая команда для вывода полного раздела справки для Get-Help показалась на экране очень быстро и ее нельзя было прочитать. Для этого существует более эффективный способ.

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

Попробуйте выполнить следующие команды в консоли PowerShell на компьютере с Windows 10 в лабораторной среде.

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

Кроме последних двух параметров, которые возвращают результаты по одной странице за один раз, эти выходные данные ничем не отличаются. ПРОБЕЛ используется для вывода следующей страницы содержимого с помощью функции Help , а Ctrl + C отменяет команды, выполняемые в консоли PowerShell.

В первом примере используется командлет Get-Help , во втором — функция Help , в третьем параметр Name исключается с помощью функции Help . Name является позиционным параметром и используется в этом примере позиционно. То есть это значение можно указать без имени параметра, если само это значение указано в правильном положении. Как узнать, в каком положении указывать значение? Свериться со справкой, как показано в следующем примере.

Заметьте, что в предыдущем примере параметр Parameter использовался вместе с функцией справки только для того, чтобы вернуть данные из раздела справки для параметра Name. Так намного точнее, чем пытаться вручную проверять то, что напоминает раздел справки в сто страниц.

На основе полученных результатов вы увидите, что параметр Name является позиционным и его нужно указать в нулевом положении (первое положение), если он используется позиционно. Если указывается имя параметра, порядок указания параметров не имеет значения.

Еще одна важная деталь: в параметре Name значение типа данных должно быть указано одной строкой, которая обозначается <String> . Если допускается несколько строк, тип данных будет приведен как <String[]> .

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

Как правило, вместе с help <command name> я использую параметр Full или Online. Если мне нужно посмотреть только примеры, я использую параметр Examples, а если мне нужно получить только конкретный параметр, я использую параметр Parameter. Параметр ShowWindow открывает раздел справки в отдельном окне с возможностью поиска, которое можно открыть на другом мониторе, если их у вас несколько. Я стараюсь не использовать параметр ShowWindow, потому что он содержит всем известную ошибку, при которой не выводится весь раздел справки.

Если нужно открыть справку в отдельном окне, рекомендую использовать параметры Online или Full и передать результаты в Out-GridView , как показано в следующем примере.

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

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

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

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

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

Если указанное значение начинается с тире, создается ошибка, так как PowerShell интерпретирует его как имя параметра, а имени параметра для командлета Get-Help не существует.

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

При поиске команд PowerShell с помощью Get-Help нужно указывать менее точные параметры поиска.

При предыдущем поиске командлета process были найдены только те команды, которые содержали в имени process и возвращали только эти результаты. Если командлет Get-Help будет использоваться для поиска processes , он не найдет совпадений для имен команд, поэтому будет выполнять поиск каждого раздела справки в PowerShell в системе и возвращать все найденные совпадения. Это приведет к возврату большого количества результатов.

С помощью Help для поиска process вернулось 10 результатов, а для поиска processes — 68. Если найден только один результат, вместо списка команд будет отображаться раздел справки.

Теперь давайте развеем миф о том, что Help в PowerShell может находить только команды, содержащие разделы справки.

Заметьте, в предыдущем примере more не содержит раздела справки, но системе Help в PowerShell удалось ее найти. Система нашла только одно совпадение и вернула основные сведения о синтаксисе, которые будут отображаться, если команда не содержит раздела справки.

PowerShell содержит множество концептуальных разделов справки ("О программе"). Следующая команда используется для возврата списка всех разделов О программе в системе.

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

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

Get-Command

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

Заметьте: в предыдущем примере, где выполнялся командлет Get-Command , используется параметр Noun, а командлет Process указан в качестве значения для параметра Noun. Что делать, если вы не знаете, как использовать командлет Get-Command ? Get-Help можно использовать для вывода раздела справки для Get-Command .

Параметры Name, Noun и Verb поддерживают добавление подстановочных знаков. В приведенном ниже примере показаны подстановочные знаки, используемые с параметром Name.

Я стараюсь не использовать подстановочные знаки с параметром Name для Get-Command , так как он возвращает и исполняемые файлы, которые не являются собственными командами PowerShell.

При использовании подстановочных знаков с параметром Name рекомендую ограничить результаты с помощью параметра CommandType.

Оптимально использовать параметр Verb или Noun либо оба этих параметра, так как только команды PowerShell состоят из глаголов и существительных.

Что делать, есть в разделе справки найдены ошибки? Можете не волноваться: материалы разделов справки в PowerShell открыты и доступны в репозитории PowerShell-Docs на сайте GitHub. Исправив неверную информацию, вы поможете не только себе, но и другим пользователям. Для этого разместите репозиторий документации PowerShell на сайте GitHub, обновите раздел справки и отправьте запрос на включение внесенных изменений. После того как этот запрос будет принят, исправленный документ появится в общем доступе.

Обновление справки

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

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

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

Сводка

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

Мне нужно, чтобы вы изучали по одной команде PowerShell в день.

Просмотр

  1. Является ли параметр DisplayName Get-Service позиционным?
  2. Сколько наборов параметров содержится в командлете Get-Process ?
  3. Какие команды PowerShell используются для работы с журналами событий?
  4. Какая команда PowerShell возвращает список процессов PowerShell, запущенных на компьютере?
  5. Как обновить содержимое справки PowerShell, сохраненное на компьютере?

Рекомендуем прочесть

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

В следующей главе вы узнаете о командлете Get-Member , а также об объектах, свойствах и методах.

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

У каждой утвержденной команды есть соответствующий префикс псевдонима. Мы используем префикс псевдонима в псевдонимах для команд, использующих эту команду. Например, префикс псевдонима для Import — ip , а для Import-Module — ipmo . Это рекомендация, а не правило. В частности, эту рекомендацию не нужно учитывать для псевдонимов команд, копирующих хорошо известные команды из других сред.

Рекомендации по именованию команд

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

  • Используйте одно из стандартных имен команд, предоставленных PowerShell.
  • Используйте команду, чтобы описать общую область действия, и параметры для уточнения действия командлета.
  • Не используйте синоним утвержденной команды. Например, всегда используйте Remove , а не Delete или Eliminate .
  • Используйте команду только в той форме, которая указана в этом разделе. Например, используйте Get , но не Getting или Gets .
  • Не используйте следующие зарезервированные команды или псевдонимы. Язык PowerShell и лишь некоторые из его командлетов используют эти команды в исключительных обстоятельствах.
    • ForEach (foreach) (f): упорядочивает объекты в указанной форме или макете (gp): упорядочивает или связывает один или несколько ресурсов (pi)
    • Sort (sr)
    • Tee (te)
    • Where (wh)

    Полный список команд можно получить с помощью командлета Get-Verb .

    Похожие команды для различных действий

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

    New и Присвойте параметру

    Чтобы создать новый ресурс, используйте команду New . Используйте команду Set , чтобы изменить существующий ресурс, при необходимости создав его, если он не существует, например командлет Set-Variable .

    Find и Поиск

    Используйте команду Find для поиска объекта. Используйте команду Search , чтобы создать ссылку на ресурс в контейнере.

    Get и Чтение

    Используйте команду Get для получения сведений о ресурсе (например, файле) или объекта, с помощью которого можно получить доступ к ресурсу в будущем. Используйте Read команду, чтобы открыть ресурс и извлечь сведения, содержащиеся в.

    Invoke и Запуск

    Используйте команду Invoke для выполнения синхронных операций, таких как выполнение команды и ожидание ее завершения. Используйте Start команду для запуска асинхронных операций, таких как Запуск автономного процесса.

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

    Справочник командлетов Windows PowerShell

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

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

    Если Вы, выполнив вышеуказанную команду у себя на компьютере, не нашли командлет из представленного ниже списка (или тот который Вам нужен), то скорей всего у Вас не установлен необходимый модуль. Модули PowerShell для соответствующих ролей и компонентов сервера устанавливаются автоматически одновременно с ними. В случае если Вы хотите воспользоваться данными модулями на системе без установленных ролей и компонентов, то Вы всегда можете установить соответствующие «Средства удаленного администрирования сервера», которые добавляют не только оснастки управления, но и необходимые командлеты. Например, для того чтобы администрировать Active Directory с помощью Windows PowerShell на компьютере, который не является контроллером домена, необходимо установить модуль Active Directory для Windows PowerShell (RSAT-AD-PowerShell).

    Примечание! Данный справочник составлен на основе командлетов версии PowerShell 5.0 в операционной системе Windows Server 2016.

    Полезные командлеты Windows PowerShell

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

    Работа с переменными

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

    Форматирование в Windows PowerShell

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

    Импорт и экспорт

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

    Работа с сетью в Windows PowerShell

    Для администрирования сети в Windows PowerShell существуют такие командлеты как:

    Работа с элементами

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

    Командлеты для работы с Active Directory (AD)

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

    Работа с Hyper-V

    Для работы с Hyper-V в Windows PowerShell существует много командлетов, вот небольшой перечень:

    Работа с фоновыми заданиями

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

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

    Работа с объектами

    Так как PowerShell работает с объектами, он позволяет выполнять некие действия над этими объектами, например:

    Командлеты PowerShell для удаленного управления

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

    Работа со службами и процессами

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

    Работа с компьютером

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

    Работа с контентом

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

    Другие командлеты Windows PowerShell

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

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

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