- •Согласованность
- •Интерактивная среда и среда исполнения сценариев
- •Запуск Windows PowerShell
- •Основы Windows PowerShell
- •Семейство команд может расширяться
- •Сокращение количества обязательных для запоминания команд при помощи шаблона глагол-существительное
- •Командлеты используют стандартные параметры
- •Получение подробных справочных сведений
- •Отображение имеющихся типов команд
- •Примечание
- •Использование имен знакомых команд
- •Интерпретация стандартных псевдонимов
- •Создание новых псевдонимов
- •Основные сведения о конвейере Windows PowerShell
- •Просмотр структуры объекта (командлет Get-Member)
- •Получение подробных сведений при помощи подстановочных знаков в командлете Format-List
- •Использование командлета Format-Table для получения вывода в виде таблицы
- •Улучшение вывода командлета Format-Table (параметр AutoSize)
- •Перенос на следующую строку вывода командлета Format-Table в столбцах (параметр Wrap)
- •Организация табличного вывода (параметр -GroupBy)
- •Перенаправление данных с помощью командлетов Out-*
- •Отбрасывание ненужного вывода (командлет Out-Null)
- •Навигация в Windows PowerShell
- •Управление текущим местоположением в Windows Powershell
- •Сохранение и возврат на последние местоположения (командлеты Push-Location и Pop-Location)
- •Примечание
- •Управление дисками Windows PowerShell
- •Добавление новых дисков Windows PowerShell (командлет New-psDrive)
- •Примечание
- •Удаление дисков Windows PowerShell (командлет Remove-psDrive)
- •Вывод всех вложенных элементов (параметр -Recurse)
- •Поиск имен элементов с использование подстановочных знаков
- •Исключение элементов (параметр -Exclude)
- •Объединение параметров командлета Get-ChildItem
- •Непосредственная работа с элементами
- •Создание новых элементов (командлет New-Item)
- •Почему параметры реестра не являются значениями
- •Переименование существующих элементов (командлет Rename-Item)
- •Перемещение элементов (командлет Move-Item)
- •Копирование элементов (командлет Copy-Item)
- •Удаление элементов (командлет Remove-Item)
- •Выполнение действий над элементами (командлет Invoke-Item)
- •Работа с объектами
- •Примечание
- •Вывод сведений о классе wmi
- •Вывод свойств, не имеющих значений по умолчанию, с помощью командлетов Format
- •Примечание
- •Использование конструкторов с командлетом New-Object
- •Доступ к удаленному журналу событий с помощью командлета New-Object
- •Очистка журнала событий методами объектов
- •Создание сом-объектов с помощью командлета New-Object
- •Создание ярлыков на рабочий стол с помощью метода wScript.Shell
- •Примечание
- •Примечание
- •Запуск приложения Internet Explorer из Windows PowerShell
- •Примечание
- •Использование статических классов и методов
- •Отображение статических свойств класса System.Environment
- •Удаление объектов из конвейера (командлет Where-Object)
- •Выполнение простых проверок с командлетом Where-Object
- •Примечание
- •Фильтрация данных, основанная на свойствах объектов
- •Повторение действия для нескольких объектов (командлет ForEach-Object)
- •Выделение частей объектов (командлет Select-Object)
- •Сортировка объектов
- •Управление переменными
- •Использование переменных Cmd.Exe
- •Использование оболочки Windows PowerShell для администрирования
- •Примечание
- •Остановка процессов (командлет Stop-Process)
- •Остановка всех других сеансов Windows PowerShell
- •Остановка, запуск, приостановка и перезагрузка служб
- •Получение сведений о компьютерах
- •Вывод установленных исправлений
- •Вывод сведений о версии операционной среды
- •Вывод локальных пользователей и владельца
- •Получение сведений о доступном месте на диске
- •Отображение состояния службы
- •Установка программного обеспечения
- •Примечание
- •Получение списка приложений, поддерживающих удаление
- •Примечание
- •Примечание
- •Установка приложений
- •Удаление приложений
- •Завершение текущего сеанса
- •Завершение работы и перезагрузка компьютера
- •Проверка связи с компьютерами
- •Копирование файлов и папок
- •Копирование разделов
- •Извлечение отдельной записи реестра
- •Примечание
- •Создание новых записей в реестре
- •Приложение 2. Создание пользовательского ярлыка для PowerShell
Остановка всех других сеансов Windows PowerShell
Иногда становится необходимым остановить все запущенные сеансы Windows PowerShell, кроме текущего. Если в сеансе используется слишком много ресурсов или он недоступен (выполняется удаленно или в другом сеансе рабочего стола), то остановить его напрямую невозможно. Однако при попытке остановить все выполняемые сеансы текущий сеанс может быть просто завершен.
У каждого сеанса Windows PowerShell имеется переменная среды, PID, в которой содержится идентификатор процесса Windows PowerShell. Значение переменной $PID можно проверить на совпадение с идентификаторами всех сеансов и завершить только те сеансы, идентификатор которого отличается от заданного. Это действие представлено следующей командой конвейера, которая возвращает список завершенных сеансов (через параметр PassThru).
PS> Get-Process -Name powershell | Where-Object -FilterScript {$_.Id -ne $PID} | Stop-Process - PassThru Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 334 9 23348 29136 143 1.03 388 powershell 304 9 23152 29040 143 1.03 632 powershell 302 9 20916 26804 143 1.03 1116 powershell 335 9 25656 31412 143 1.09 3452 powershell 303 9 23156 29044 143 1.05 3608 powershell 287 9 21044 26928 143 1.02 3672 powershell |
Управление локальными службами
Существует восемь основных служебных командлетов, разработанных для широкого спектра служебных задач. В разделе будут рассмотрены только перечисление и измененеие состояния служб. Список остальных служебных командлетов можно получить с помощью команды Get-Help *-Service, а дополнительные сведения о каждом командлете выводятся командой Get-Help<Cmdlet-Name>, например Get-Help New-Service.
Перечисление служб
Локальные службы компьютера можно перечислить, используя командлет Get-Service. Как и в случае командлета Get-Process, использование команды Get-Service без параметров выводит все службы. Выводимые данные можно отсортировать по именам, даже при использовании звездочки (*) в качестве подстановочного знака.
PS> Get-Service -Name se* Status Name DisplayName ------ ---- ----------- Running seclogon Secondary Logon Running SENS System Event Notification Stopped ServiceLayer ServiceLayer |
Поскольку настоящее имя той или иной службы не всегда очевидо, может потребоваться поиск служб по отображаемым именам. Можно выполнить поиск по определенному имени, с использованием знаков подстановки, или получить список отображаемых имен.
PS> Get-Service -DisplayName se* Status Name DisplayName ------ ---- ----------- Running lanmanserver Server Running SamSs Security Accounts Manager Running seclogon Secondary Logon Stopped ServiceLayer ServiceLayer Running wscsvc Security Center PS> Get-Service -DisplayName ServiceLayer,Server Status Name DisplayName ------ ---- ----------- Running lanmanserver Server Stopped ServiceLayer ServiceLayer |
