Управление процессами с помощью командлетов process

Использование Сплаттинг для представления параметров команды

Сплаттинг можно использовать для представления параметров команды. эта функция появилась в Windows PowerShell 3,0.

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

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

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

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

Дополнительные сведения о Сплаттинг см. в разделе about_Splatting.

Подробное описание

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

Функции могут быть простыми:

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

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

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

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

Фильтр — это специальный тип функции, который использует ключевое слово.

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

Создание списка всех удаленных приложений

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

.

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

Теперь диск с именем «Uninstall» можно использовать для быстрого и удобного поиска установок приложений. Количество установленных приложений можно найти, подсчитав количество разделов реестра в разделе «Удаление»: Диск PowerShell:

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

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

Например, чтобы найти отображаемые имена приложений в разделе «Удаление», используйте следующую команду:

Примечание

Нет никакой гарантии, что значения DisplayName уникальны.

Производительность задания потока

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

PowerShell запускает команды и скрипты в сеансе. Только одна команда или сценарий может выполняться одновременно в сеансе. Поэтому при выполнении нескольких заданий каждое задание выполняется в отдельном сеансе. Каждый сеанс влияет на накладные расходы.

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

  • Работа — это большое количество вычислительных ресурсов. выполнение скрипта для нескольких заданий потоков может использовать преимущества нескольких процессорных ядер и ускорить работу.

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

В первом примере показан цикл foreach, который создает задания потоков 1000, чтобы выполнить простую запись в строку. Из-за накладных расходов на задание выполнение займет более 36 секунд.

Во втором примере командлет запускается для выполнения тех же операций 1000.
На этот раз выполняется последовательно в одном потоке без дополнительных издержек заданий. Она завершается всего за 7 миллисекунд.

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

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

Использование конвейеров

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

Этот пример конвейера запускает службу WMI на компьютере:

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

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

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

В этом примере показано, как использовать командлет для отображения списка свойств объекта процесса.

Кроме того, выходные данные собственных команд можно передать в командлеты PowerShell. Пример:

Важно!

Потоки успехов и ошибок похожи на потоки stdin и stderr других оболочек. Однако stdin не подключен к конвейеру PowerShell для ввода данных. Дополнительные сведения см. в разделе about_Redirection.

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

Запуск процессов с Powershell Start-Process

На примере запуска блокнота команда выполняется так:

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

 Если в программа может принимать аргументы их так же можно добавить:

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

Ключ WindowStyle принимает 4 значения:

  • minimized — свернутый вариант.
  • hidden —  скрытый режим.
  • normal — обычный.
  • maximized — полностью развернутый.

Добавив ключ NoNewWindow, в случае с tracert, команда выполнится в текущем окне:

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

  • RedirectStandardOutput — перенаправляет вывод
  • RedirectStandardError  — перенаправляет ошибки
  • RedirectStandardInput — перенаправляет ввод

Воспользоваться этими ключами можно так:

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

Отмечу, что ни одна команда PS не позволяет запускать процессы в интерактивном сеансе пользователя (например открыть пользователю Excel). Если вы хотите использовать такой метод, то вам нужно использовать psexec от SysInternals либо помещать задачи в планировщик и выполнять оттуда.

Создание сервисов с New-Service

Для создания сервиса необходимо указать два параметра — это имя и путь до бинарного файла:

В PS 5.1 не предусмотрена команда удаления, она появилась в версии 6.1, которая устанавливается отдельно и может работать иначе. Для удаления сервисов, а так же частичного изменения, используется WMI. Указывайте все возможные параметры, что бы в последующем не лезть в WMI.

Параметры, которые в последующем нельзя будет изменить через PS:

  • DisplayName — полное отображаемое имя.
  • Credential  — учетная запись, под которой будет происходить запуск.
  • DependsOn — от кого будет зависеть.

При объявлении переменной $credential у нас запросятся учетные данные (логин/пароль). По умолчанию сервис работает под текущим аккаунтом. Я создавал сервис на доменном компьютере и пока я не ввел FQDN вид user@domain.local я получал ошибку:

Service ‘Testing Services In Powershell (TestService1)’ cannot be created due to the following error: The account name is invalid or does not exist, or the password is invalid for the account name specified

Кроме этого есть параметры, которые возможно изменить через команды выше:

  • Description — описание.
  • StartupType — тип запуска.

Модули интеграции

Модуль интеграции — это пакет, который содержит модуль Windows PowerShell и может быть импортирован в службу автоматизации. Модули Windows PowerShell содержат командлеты, которые можно использовать в последовательностях runbook службы автоматизации. Продукты и службы, такие как Operations Manager и Azure, обладают модулями, содержащими командлеты для их работы.

Модули интеграции, импортированные в службу автоматизации, автоматически доступны для всех runbook. Так как служба автоматизации основана на Windows PowerShell 4.0, она поддерживает автоматическую загрузку модулей, то есть командлеты из установленных модулей можно использовать без их импорта в скрипт с помощью команды Import-Module.

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

В Service Management Automation можно использовать модули с внешними зависимостями, установив их на каждый сервер рабочей роли. Хотя командлеты в этих модулях можно использовать в runbook, они не будут обнаруживаться службой автоматизации для поддержки таких компонентов, как мастер вставки действия. Чтобы использовать этот компонент, можно создать переносимый модуль, используя командлет New-SmaPortableModule . Этот командлет создает модуль, включающий заглушку для каждого из его командлетов, который можно импортировать в службу автоматизации. Когда модуль Runbook использует один из этих командлетов, заглушка перенаправляет вызов в фактический командлет внешнего модуля. Этот модуль необходимо установить на каждом сервере Worker, в противном случае произойдет сбой вызова.

Остановка, запуск, приостановка и перезапуск служб

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

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

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

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

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

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

У этих командлетов Service нет параметра ComputerName, но их можно выполнить на удаленном компьютере с помощью командлета Invoke-Command. Например, приведенная ниже команда перезапускает службу очередь печати принтера на удаленном компьютере Server01.

Удаление приложений

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

Удаление других приложений не так просто, даже если оно выполняется локально. Строки удаления командной строки для этих приложений можно найти путем извлечения свойства UninstallString.
Этот способ работает для приложений установщика Windows и более старых программ, отображающихся в разделе «Удаление»:

Выходные данные при необходимости можно отфильтровать по отображаемому имени:

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

Проверка связи с компьютерами

Простую проверку связи с компьютером можно выполнить с помощью Win32_PingStatus. Следующая команда производит проверку связи, но при этом выводит большой объем сведений:

Удобнее отображать сводные данные, содержащие свойства Address, ResponseTime и StatusCode, как это делает приведенная ниже команда. Параметр Autosize командлета изменяет размер столбцов таблицы для их правильного отображения в PowerShell.

Значение 0 свойства StatusCode указывает на успешно выполненную проверку связи.

Для проверки связи с несколькими компьютерами с помощью одной команды можно использовать массив. Так как адресов несколько, для проверки связи с каждым адресом по отдельности можно использовать :

Один и тот же формат команды можно использовать для проверки связи со всеми компьютерами подсети. Например, при проверке частной сети, использующей номер сети 192.168.1.0 и стандартную маску подсети класса C (255.255.255.0), допустимы только локальные адреса в диапазоне от 192.168.1.1 до 192.168.1.254 (0 всегда зарезервирован в качестве номера сети, а 255 используется в качестве широковещательного адреса подсети).

Чтобы представить массив чисел от 1 до 254 в PowerShell, используйте выражение .
Таким образом, полную проверку связи с подсетью можно осуществить, добавив все значения в диапазоне к частичному адресу в операторе проверки связи:

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

Поиск функций и управление ими с помощью диска Function:

Все функции и фильтры в PowerShell автоматически сохраняются на диске. Этот диск предоставляется поставщиком функций PowerShell.

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

Следующая команда отображает все функции в текущем сеансе PowerShell:

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

Можно также использовать следующий синтаксис.

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

Теперь можно переходить к изучению окружения

ps wordpad | Get-Member
PS C:\> notepad                                                        
PS C:\> ps notepad                                                                                                                            Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName  -------  ------    -----      ----- -----   ------     -- -----------       70       4     1148       5376    56     0.30   3900 notepad                                                                                                                                                    PS C:\> ps notepad | get-member -type method


   TypeName: System.Diagnostics.Process

Name                      MemberType Definition
----                      ---------- ----------
BeginErrorReadLine        Method     System.Void BeginErrorReadLine()
BeginOutputReadLine       Method     System.Void BeginOutputReadLine()
CancelErrorRead           Method     System.Void CancelErrorRead()
CancelOutputRead          Method     System.Void CancelOutputRead()
Close                     Method     System.Void Close()
CloseMainWindow           Method     bool CloseMainWindow()
CreateObjRef              Method     System.Runtime.Remoting.ObjRef CreateObj...
Dispose                   Method     System.Void Dispose()
Equals                    Method     bool Equals(System.Object obj)
GetHashCode               Method     int GetHashCode()
GetLifetimeService        Method     System.Object GetLifetimeService()
GetType                   Method     type GetType()
InitializeLifetimeService Method     System.Object InitializeLifetimeService()
Kill                      Method     System.Void Kill()
Refresh                   Method     System.Void Refresh()
Start                     Method     bool Start()
ToString                  Method     string ToString()
WaitForExit               Method     bool WaitForExit(int milliseconds), Syst...
WaitForInputIdle          Method     bool WaitForInputIdle(int milliseconds),...
(ps notepad).WaitForExit()
(ps notepad).StartTime | Get-Member

Запуск рабочих процессов

Для запуска рабочего процесса используйте следующую процедуру.

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

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

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

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

    Чтобы включить удаленное взаимодействие, используйте командлет.

    Включить удаленное взаимодействие можно с помощью параметра включить выполнение скрипта групповая политика. Дополнительные сведения см. в разделе about_Group_Policy_Settings и about_Execution_Policies.

  3. Используйте командлеты или для создания сеанса рабочего процесса.

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

    Или используйте командлет. Используйте параметр configurationName , чтобы указать конфигурацию сеанса Microsoft. PowerShell. Workflow . Эта команда аналогична использованию командлета.

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

    На локальном компьютере:

    На удаленном компьютере:

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

  4. Запустите рабочий процесс в сеансе рабочего процесса. Чтобы указать имена управляемых узлов (конечных компьютеров), используйте общий параметр рабочего процесса PSComputerName .

    В следующих примерах выполняется рабочий процесс с именем .

    Где управляемый узел — это компьютер, на котором размещается сеанс рабочего процесса:

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

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

    использует Модификатор области для определения переменной в локальном сеансе. Дополнительные сведения об модификаторе области см. в разделе about_Remote_Variables.

Как запустить PowerShell?

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

Я запустил консоль PowerShell, щелкнув ярлык Windows PowerShell, как показано на рис. 1-1.

Обратите внимание, что в строке заголовка консоли PowerShell указано «Windows PowerShell», как показано на рис. 1-4

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

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

Закройте PowerShell. Перезапустите консоль PowerShell, только на этот раз щелкните правой кнопкой мыши ярлык Windows PowerShell и выберите пункт Запуск от имени администратора, как показано на рис. 1-5.

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

После повторного запуска PowerShell с правами администратора в строке заголовка должно быть указано «Администратор: Windows PowerShell», как показано на рис. 1-7.

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

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

Еще раз выполните поиск PowerShell, только на этот раз щелкните ее правой кнопкой мыши и выберите пункт «Закрепить на панели задач», как показано на рис. 1-8.

Щелкните правой кнопкой мыши ярлык PowerShell, который теперь закреплен на панели задач, и выберите пункт «Свойства», как показано на рис. 1-9.

Щелкните «Дополнительно», как показано в первой части рис. 1-10, установите флажок «Запуск от имени администратора», как показано во второй части рис. 1-10, а затем дважды нажмите кнопку OK, чтобы принять изменения и выйти из обоих диалоговых окон.

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

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

Рабочие процессы Windows PowerShell

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

Основная структура

Рабочий процесс Windows PowerShell начинается с ключевого слова Workflow, за которым следует тело скрипта, заключенное в скобки. Имя рабочего процесса следует за ключевым словом Workflow , как это показано в следующем синтаксисе. Имя рабочего процесса совпадает с именем runbook службы автоматизации.

Чтобы добавить параметры в рабочий процесс, используйте ключевое слово Param, как показано в следующем примере синтаксиса. Портал управления предложит пользователю предоставить значения этих параметров при запуске модуля runbook. В этом примере используется дополнительный атрибут Parameter, который указывает, обязателен ли этот параметр.

Именование

Имя рабочего процесса должно соответствовать формату «глагол-существительное», принятому в Windows PowerShell. Список утвержденных глаголов для использования можно найти в статье Approved Verbs for Windows PowerShell Commands (Утвержденные глаголы для команд Windows PowerShell) . Имя рабочего процесса должно соответствовать имени модуля Runbook в службе автоматизации. При импорте модуля Runbook имя файла должно соответствовать имени рабочего процесса и должно заканчиваться на .ps1.

Ограничения

Полный список ограничений и различий синтаксиса между Windows PowerShell и рабочими процессами Windows PowerShell см. в разделе Различия синтаксиса между сценариями и рабочими процессами сценариев.

Остановка всех остальных сеансов Windows PowerShell

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

Каждый сеанс Windows PowerShell имеет переменную среды PID, содержащую идентификатор процесса Windows PowerShell. Можно проверить переменную $PID на наличие идентификатора каждого сеанса и завершить только сеансы Windows PowerShell с другим идентификатором. Следующая команда конвейера делает именно это и возвращает список завершенных сеансов (из-за использования параметра PassThru):

Восстановление и приостановка работ служб

Не каждую службу можно приостановить (Pause) и восстанавливть. Что бы увидеть все службы, у которых есть такая возможность, выполните:

 

Командой ниже мы получи, нажмем паузу и восстановим работу сервиса Winmgmt:

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

  • Service ‘Windows Remote Management (WS-Management)’ cannot be suspended because the service does not support beingsuspended or resumed. 
  • Не удается приостановить службу «Spooler», так как этой службой не поддерживается приостановка или возобновление.

В этих командах так же можно использовать параметры Include и Exclude, с масками. 

На скрипте ниже показана проверка возможности приостановки сервиса, если у него есть такая возможность. Если ее нет, то сервис остановит свою работу:

Переменная: диск

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

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

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

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

Чтобы просмотреть дополнительные сведения о диске и поставщике переменных PowerShell, введите:

Установка PowerShell с помощью Winget

Программа командной строки Winget (Диспетчер пакетов Windows) позволяет разработчикам обнаруживать, устанавливать, обновлять, удалять и настраивать приложения на компьютерах с Windows 10. Она является клиентским интерфейсом для службы Диспетчера пакетов Windows.

Примечание

Список системных требований и инструкции по установке см. в документации по winget.

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

Найдите последнюю версию PowerShell.

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

Установка приложений

Вы можете использовать класс Win32_Product для удаленной или локальной установки пакетов установщика Windows.

Примечание

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

Если установка выполняется удаленно, используйте сетевой UNC-путь, чтобы указать путь к пакету MSI, так как подсистема WMI не распознает пути PowerShell. Например, чтобы установить пакет NewPackage.msi, расположенный в сетевой папке на удаленном компьютере PC01, введите следующую команду в командной строке PowerShell:

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: