Список командлетов для Windows PowerShell
Для Windows PowerShell существует огромное количество разных командлетов и описать их все в одной статье не получится. Поэтому предлагаем ознакомиться с самыми востребованными из них:
- Get-Help – получение справки;
- Update-Help – обновление справки;
- Get-Command – поиск командлетов;
- Get-Alias – поиск псевдонимов для командлетов;
- Get-PSDrive – просмотр подключенных дисков;
- Get-Member – просмотр свойств и методов, которые есть у объекта;
- Get-WindowsFeature – просмотр сведений о доступных ролях и компонентах сервера;
- Install-WindowsFeature (аналог Add-WindowsFeature) — устанавливает роли или компоненты на нужный сервер;
- Uninstall-WindowsFeature (аналог Remove-WindowsFeature) – удаляет роли или компонента сервера;
- Get-History – просмотр истории команд, которые вводились в этой сессии;
- Get-Variable – просмотр списка переменных и их значений;
- New-Variable – создание новой переменной;
- Set-Variable – установка значения переменной;
- Clear-Variable – удаление значения переменной;
- Remove-Variable – удаление переменной и ее значения;
- Format-List – просмотр результата команды в виде списка свойств, где в каждой строке отдельное свойство;
- Format-Table — просмотр результата команды в формате таблицы;
- Format-Wide — просмотр результата команды в виде широкой таблицы, в которой показывается только одно свойство для каждого объекта;
- Format-Custom – просмотр результата команды с использованием пользовательского представления;
- Export-Csv – экспорт данных в формат CSV;
- Import-Csv – импорт данных из CSV файла;
- Export-Clixml — экспорт данных в формат XML;
Полный список командлетов для Windows PowerShell вы можете получить, выполнив командлет «Get-Command -CommandType cmdlet».
Для многих пользователей, этот неотъемлемый элемент ОС Windows, представляется настоящей загадкой. Открывая его, они видят список из непонятных символов, разобраться в котором для непосвященных не представляется возможным. Но не стоит его недооценивать, это программа, несущая важную управленческую функцию, способна упростить работу с ПК, в чем бы она ни выражалась.
Перед началом работы
По мере того, как организации становятся более глобальными, и для поддержки сотрудников, работающих из любого места, рекомендуется использовать поставщика управления мобильными устройствами (MDM). Поставщики MDM помогают управлять устройствами и помогают управлять приложениями на устройствах. Для Корпорации Майкрософт это включает использование Microsoft Endpoint Manager. Endpoint Manager включает Microsoft Intune, которая является облачной службой, и Configuration Manager, которая является локальной.
В этой статье мы упоминаем эти службы. Если вы не управляете устройствами с помощью поставщика MDM, вам могут помочь следующие ресурсы:
- Microsoft Endpoint Manager обзор
- Что такое руководство Microsoft Intune Microsoft Intune планирования
- Что такое Диспетчер конфигурации?
Структура
Разработчики PowerShell установили ядро грамматики на основе POSIX 1003.2.
Windows PowerShell может исполнять четыре типа команд:
- cmdlets (.NET Framework программы, разработанные специально для PowerShell)
- сценарии PowerShell (файлы с расширением )
- функции PowerShell
- автономные исполняемые программы
Если команда является автономным исполняемым файлом, запускает его в отдельном процессе; если это cmdlet, то он запускается внутри процесса PowerShell. PowerShell предоставляет интерактивный интерфейс командной строки, куда могут быть введены команды и выведены результаты их работы. Пользовательский интерфейс, основанный на консоли Win32, предлагает настраиваемое окружение. PowerShell разрешает создание «макросов» для cmdlets, которые PowerShell преобразует в исходные команды. PowerShell поддерживает именные и позиционные параметры для команд. Для cmdlet преобразование значения аргумента в параметр выполняет сам PowerShell, но для внешних исполняемых программ, аргументы преобразуются с помощью внешнего файла, независимо от интерпретации PowerShell.
PowerShell Extended Type System (ETS) основана на системе типов .NET, но с расширенной семантикой. Например, он позволяет создавать различные виды объектов, раскрывая только подмножество полей, свойств и методов данных, а также задавая настраиваемое форматирование и поведение сортировки. Эти представления сопоставляются исходному объекту с использованием файлов конфигурации на основе XML..
Кто обычно использует PowerShell?
Без всякого сомнения, PowerShell является выбором многих ИТ-администраторов. И не зря, ведь инструмент колоссально упрощает операции управления и снижает объем работы в крупных корпоративных сетях.
Предположим, вы управляете большой сетью, содержащей свыше пятисот серверов, и вам нужно внедрить новое решение безопасности, которое зависит от какой-либо службы, которая должна работать на этих серверах. Конечно, вы можете подключиться к каждому серверу и посмотреть, установлена и запущена ли на них необходимая служба. Однако в этом случае ваше руководство вряд ли останется довольным, ведь вам понадобится слишком много времени на выполнение задачи.
С помощью PowerShell вы можете проделать эту работу в течение нескольких минут, так как вся операция может быть выполнена с помощью одного сценария, который соберет информацию о службах, запущенных на указанных серверах и сохранит ее в виде текстового файла, например.
PowerShell позволяет делать гораздо больше, чем можно описать в рамках одной статьи, так что если вы действительно заинтересованы, мы настоятельно рекомендуем вам приобрести и прочитать одну из множества книг, посвященных возможностям этого инструмента.
Шаг 4: Запуск и обновление PowerShell
После перезагрузки компьютера PowerShell уже будет добавлена в Windows: вы сможете запустить ее и проверить обновления через загруженный ранее установочный пакет. Если же нужды в последней версии оснастки нет, просто переходите к ее стандартному использованию.
- Откройте «Пуск», найдите там Windows PowerShell и запустите это приложение.
- Далее перейдите к скачанному ранее архиву, где помимо файла MSU располагался скрипт для PowerShell. Перетащите его на рабочий стол для распаковки.
- Теперь перетащите его в PowerShell и дождитесь появления новой строки.
- Запустите скрипт, нажав клавишу Enter.
Если же на экране появилась ошибка, значит, приложение не нуждается в обновлении.
Установка последней версии PowerShell через GitHub
Как альтернативный вариант разберем скачивание отдельного приложения с PowerShell через GitHub. Его последняя версия устанавливается рядом с классической оболочкой и может работать параллельно.
Перейти к скачиванию последней версии PowerShell с GitHub
Опишите, что у вас не получилось.
Как открыть панель управления в Windows (в т.ч. в Windows 10, где убрали ссылки на нее)
Вопрос от пользователя
Здравствуйте.
Недавно заметил, что по клику правой кнопки мышки по ПУСК, больше не появляется привычного меню: в нем нет ссылки на командную строку и на панель управления (что в первую очередь нужно!). В самом меню ПУСК — тоже нет на нее ссылки. Как ее открыть-то? Может быть я подцепил вирус?
PS Установлена Windows 10, последняя обновленная версия на сегодняшний день (то бишь на 20 мая 2018г.).
Доброго времени суток!
Да, похоже от этой классической панели разработчики Windows хотят со временем отказаться совсем…
Новые параметры в Windows 10 и классическая Control Panel / Кликабельно
Но на сегодняшний день, всё же, в нее пока еще достаточно часто требуется заходить для изменения множества параметров и настроек. В этой справочной статье покажу несколько способов, как ее можно открыть (часть из способов универсальны и работают в разных ОС Windows).
И так…
Как войти в панель управления / Control Panel
- нажмите сочетание кнопок Win+R (должно появиться окно «Выполнить» в углу экрана);
- впишите команду «Control» (без кавычек, см. на скрин ниже);
- нажмите OK или Enter. Собственно, и всё, всего 3 действия!
Win+R — открываем панель управления (команда control)
Кстати, хочу обратить внимание, что вместо команды «Control» можно использовать и «Control Panel» (полный вариант). Control Panel — так тоже допускается
Control Panel — так тоже допускается
Также есть еще один альтернативный вариант:
- нажмите сочетание клавиш Ctrl+Shift+Esc (или Ctrl+Alt+Del) — нам нужно открыть диспетчер задач;
- далее нажмите по меню «Файл/Новая задача»;
- в строку «Открыть» впишите команду «Control Panel» (пример см. ниже).
Открывает Control Panel через диспетчер задач
Способ 2: через Power Shell / Командную строку (универсальный)
Панель управления также можно открыть через командную строку. Для этого в ней нужно вписать всего одну команду «Control» и нажать на Enter.
Открываем панель управления через командную строчку
Кстати, что касается Windows 10 — то в обновленных версиях при нажатии на Win+X (или правой кнопкой мышки по ПУСК) — в меню быстрого вызова нет командной строки, но есть Power Shell. Для открытия панели управления можно воспользоваться и им.
Win+X — меню быстрого вызова
В Power Shell достаточно ввести ту же команду Control и нажать на Enter. Пример продемонстрирован чуть ниже.
Power Shell — мощная замена командной строке…
Способ 3: с помощью созданного ярлыка на рабочем столе
Еще один очень удобный способ — это создать спец. значок на рабочем столе, с помощью которого вы всегда сможете в 1 клик мышки получать доступ к панели управления.
Чтобы его сделать: кликните правой кнопкой мышки в любом месте рабочего стола, в появившемся меню выберите «Создать -> ярлык» (см. пример ниже).
Создаем ярлык
Далее в строку расположения укажите вместо пути просто команду Control Panel (как примере ниже). Кстати, имя ярлыку можете задать любое.
в путь ярлыка пишем команду Control
В итоге на рабочем столе появится ярлык (как на скрине ниже) для быстрого запуска панели управления.
Ярлык готов
Способ 4: с помощью поиска Windows
В Windows 10, кстати говоря, рядом с меню ПУСК есть очень «умная» поисковая строка (по крайней мере, значок с лупой там присутствует в настройках по умолчанию).
Так вот, достаточно щелкнуть по этому значку (1), и вписать в строку поиска «панель» (2), как Windows предложит вам наиболее соответствующий вариант (3) — то бишь в данном случае «Панель управления». Как и показано на скрине ниже.
Удобно!
Поисковая строка в Windows 10
Кстати, чтобы каждый раз не искать панель управления, ее можно закрепить на пели задач. Для этого достаточно щелкнуть правой кнопкой мышки по значку открытой панели и выбрать функцию «Закрепить» (как показано на скрине ниже).
Закрепить панель на панели задач (извиняюсь за тавтологию)
Как это будет выглядеть в итоге можете увидеть из моем примера (1 клик — и вы уже в Control Panel).
Моя панель задач: калькулятор + панель управления основные атрибуты
Способ 5: через параметры отображения значков рабочего стола (Windows 10)
Сначала нужно открыть параметры Windows (можно через ПУСК, можно с помощью сочетания Win+i) и перейти в раздел: «Персонализация / темы / параметры значков рабочего стола» (см. скриншот ниже).
Темы — параметры
Далее поставить галочку рядом с отображением значка «Панель управления», и сохранить настройки.
Панель управления
Собственно, почти сразу же у вас на рабочем столе появится панель управления — теперь можно быстро открывать ее без всяких дополнительных команд…
Рабочий стол
Думаю, что предложенных способов должно быть достаточно…
Удачи!
RSS (как читать Rss)
Полезный софт:
МОНТАЖ
Take Command и TCC
Take Command — полноценная замена штатному интерпретатору командной строки от разработчиков JP Software с множеством дополнительных функций и поддержкой более 200 команд, отсутствующих в стандартной командной строке. В верхней части окна Take Command расположена лента наподобие той, которая имеется в приложениях Microsoft Office и Проводнике Windows 10.
Вот главные особенности приложения:
- Интеграция с Проводником Windows с поддержкой перетаскивания элементов в консоль.
- Наличие настраиваемой панели инструментов.
- Поддержка вкладок, автозавершение команд и имен каталогов.
- Добавление более 200 дополнительных команд, наличие пакетного отладчика редактора скриптов.
- Подсветка синтаксиса, вертикальная и горизонтальная прокрутка окна.
- Множество настроек, обеспечивающих наилучшее визуальное восприятие, изменение уровня прозрачности, закрепление поверх других окон.
- Запись и воспроизведение макросов, просмотр текстовых и двоичных файлов.
- Работа с файлами в сети по FTP, TFTP и HTTP.
- Поддержка сценариев PowerShell, Lua, Perl, REXX, Python, Tcl/tk и Active Sсripting.
- Наблюдение за загрузкой ЦП и ОЗУ в строке состояния и многое другое.
В отличие от Take Command, созданный тем же разработчиков, «заменитель» командной строки TCC внешне ничем от нее не отличается, главным ее преимуществом является поддержка множества дополнительных команд для работы со скриптами. Оба приложения платные и имеют 30-дневный пробный период ознакомления.
Как запустить 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 с повышенными привилегиями для предотвращения проблем, связанных с управлением доступом пользователей, влияет только на команды, выполняемые на локальном компьютере. Он не влияет на команды, предназначенные для запуска на удаленных компьютерах.
Создание и запуск скриптов PowerShell на практике
Перейдем непосредственно к демонстрации. В качестве стенда для практической работы будет использован сервер с Windows Server 2016, с установленной ролью активного каталога и клиентская машина на windows 10.
Этапы видео:
- На контроллере домена смотрим структуру AD, определяем уч. записи компьютеров в каталоге, запоминаем.
- На клиентской машине запускаем PS, смотрим версию, обновляем до актуальной, обновляем справку.
- Устанавливаем RSAT для возможности подключения AD модуля в PS.
- Выставляем необходимые настройки политики для запуска скриптов.
- Сооружаем скрипт, позволяющий получить список машин из определенной OU по фильтру имени, запускаем, получаем результат, выгружаем в TXT.
Bonus: получение справки по командам get-help get-* с параметром «example» и «Full». Для вывода примеров использования команды.
Выводы: Сегодня мы поговорили о PowerShell и на практике посмотрели его возможности по упрощению рутинных задач для IT. В этот инструмент разработчиками заложен огромный потенциал и на мой взгляд знание PowerShell, является необходимым навыком для современного системного администратора.
Спасибо за внимание!
В описании данного видео, есть временные метки, по которым вы сможете сразу перейти к моменту в видео, который вас больше всего интересует.
Список временных меток:
- Обзор видеоурока «Основы Windows PowerShell»
- Постановка задачи для PowerShell
- Сравнение командной строки с PowerShell
- Проверка версии PowerShell
- PowerShell ISE
- Построение команд в PowerShell
- Особенности запуска скриптов в PowerShell
- Создание и запуск скриптов PowerShell на практике
Севостьянов Антон
- Посмотреть профиль
- (Registered Users)
1 Album
14 Друзья
группы
Events
Pages
Мои подписки
Стать читателем
Как защититься от «глобального разрушения»?
Если у вас возникнет ситуация, где полезнее будет использовать неконстантные глобальные переменные, вместо локальных, то вот вам несколько полезных советов, которые помогут свести к минимуму количество потенциальных проблем, с которыми вы можете столкнуться при использовании подобных переменных.
Во-первых, добавляйте префикс ко всем вашим глобальным переменным и/или размещайте их в пространстве имен, дабы уменьшить вероятность возникновения конфликтов имен.
Например, вместо следующего:
#include <iostream>
double gravity (9.8); // по имени переменной непонятно, глобальная ли это переменная или локальная
int main()
{
return 0;
}
1 |
#include <iostream> doublegravity(9.8);// по имени переменной непонятно, глобальная ли это переменная или локальная intmain() { return; } |
Сделайте следующее:
#include <iostream>
double g_gravity (9.8); // теперь понятно, что это глобальная переменная
int main()
{
return 0;
}
1 |
#include <iostream> doubleg_gravity(9.8);// теперь понятно, что это глобальная переменная intmain() { return; } |
Во-вторых, вместо разрешения прямого доступа к глобальным переменным, лучше их «инкапсулировать». Сначала добавьте ключевое слово , чтобы доступ к ним был возможен только из файла, в котором они объявлены. Затем напишите внешние глобальные «функции доступа» для работы с переменными. Эти функции помогут обеспечить надлежащее использование переменных (например, при проверке ввода, проверке допустимого диапазона значений и т.д.). Кроме того, если вы когда-либо решите изменить первоначальную реализацию программы (например, перейти из одной базы данных в другую), то вам нужно будет обновить только функции доступа вместо каждого фрагмента кода, который напрямую использует глобальные переменные.
Например, вместо следующего:
double g_gravity (9.8); // можно экспортировать и использовать напрямую в любом файле
1 | doubleg_gravity(9.8);// можно экспортировать и использовать напрямую в любом файле |
Сделайте следующее:
static double g_gravity (9.8); // ограничиваем доступ к переменной только на этот файл
double getGravity() // эта функция может быть экспортирована в другие файлы для доступа к глобальной переменной
{
return g_gravity;
}
1 |
staticdoubleg_gravity(9.8);// ограничиваем доступ к переменной только на этот файл doublegetGravity()// эта функция может быть экспортирована в другие файлы для доступа к глобальной переменной { returng_gravity; } |
В-третьих, при написании автономной функции, использующей глобальные переменные, не используйте их непосредственно в теле функции. Передавайте их в качестве параметров. Таким образом, если в вашей функции нужно будет когда-либо использовать другое значение, то вы сможете просто изменить параметр. Это улучшит модульность вашей программы.
Вместо следующего:
// Эта функция полезна только для расчета мгновенной скорости на основе глобальной гравитации
double instantVelocity(int time)
{
return g_gravity * time;
}
1 |
// Эта функция полезна только для расчета мгновенной скорости на основе глобальной гравитации doubleinstantVelocity(inttime) { returng_gravity *time; } |
Сделайте следующее:
// Эта функция вычисляет мгновенную скорость для любого значения гравитации.
// Передайте возвращаемое значение из getGravity() в параметр gravity, если хотите использовать глобальную переменную gravity
double instantVelocity(int time, double gravity)
{
return gravity * time;
}
1 |
// Эта функция вычисляет мгновенную скорость для любого значения гравитации. doubleinstantVelocity(inttime,doublegravity) { returngravity *time; } |
Наконец, изменение значений глобальных переменных — это прямой путь к проблемам. Структурируйте ваш код в соответствии с тем, что ваши глобальные переменные могут измениться. Постарайтесь свести к минимуму количество случаев, где они могут изменять свои значения — обращайтесь с ними исключительно как с доступными только для чтения (насколько позволяет ситуация). Если вы можете инициализировать значение глобальной переменной при запуске программы, а затем не изменять его в ходе выполнения, то, таким образом, вы снизите вероятность возникновения непредвиденных проблем.
.NET-класс ServiceBase
Все службы должны создавать .NET-объект, производный от класса ServiceBase. В документации Microsoft описаны все свойства и методы этого класса. В табл. 2 перечислены те из них, которые представляют интерес в данном проекте.
Табл. 2. Некоторые свойства и методы класса ServiceBase
Член | Описание |
ServiceName | Краткое имя, используемое для идентификации службы в системе |
CanStop | Сообщает, можно ли остановить службу после того, как она запущена |
OnStart() | Действия, предпринимаемые при запуске службы |
OnStop() | Действия, предпринимаемые при остановке службы |
Run() | Регистрирует исполняемый файл службы в SCM |
Реализуя эти методы, служба будет управляемой SCM и сможет запускаться автоматически при загрузке системы или по требованию; кроме того, такую службу можно будет запускать или останавливать вручную через панель управления SCM, старыми командами net.exe/sc.exe или новыми функциями Windows PowerShell для управления службами.
Все службы должны создавать .NET-объект, производный от класса ServiceBase.
Cygwin
И напоследок хотелось бы сказать пару слов о Cygwin — замечательном во многих отношениях инструменте, объединившим в себе возможности командных интерпретаторов Windows и Linux. Cygwin — это гораздо нечто большее, чем альтернатива командной строке, Cygwin — это целый пакет UNIX-утилит, портированных на Windows. Здесь мы не станем приводить список возможностей инструмента, он огромен, причем при установке программы пользователь сам может выбрать, какие компоненты ему нужны.
Cygwin в одинаковой мере поддерживает синтаксис Linux- и Windows-интерпретаторов, подключение по SSH, работает с языками программирования C и C++, Perl и Python, Fortran и Gambas, Ruby, CLISP и еще рядом других языков. Внешне терминал мало чем отличается от обычной командной строки, впрочем, отвечающих за настройку внешнего вида опций в нём не в пример больше. «Недостатком» Cygwin является его относительная сложность, поскольку создавался инструмент явно не для начинающих пользователей.
Подводя итоги
Рынок альтернативного программного обеспечения не испытывает недостатка в аналогах штатным инструментам Windows, порою превосходя их как функционалом, так и удобством использования. На просторах интернета мы нашли еще дюжину подобных «заменителей», но большая часть из них безнадёжно устарела, а меньшая оказалась настолько специфична, что вряд ли заинтересует рядовых пользователей, для которых будет достаточно и Cygwin.
Ссылки на приложения: yadi.sk/d/t3LNBGjoUEmOOw