ѕоддержим в трудное врем€ —пециальное предложение на техническую поддержку вашей »“ - инфраструктуры силами наших экспертов ѕодобрать тариф
ѕоставка оборудовани€ √аранти€ и помощь с настройкой. —кидка дл€ наших читателей по промокоду WIKIMERIONET  упить
»нтерфейс статистики Merion Mertics показывает ключевые диаграммы и графики по звонкам, а также историю звонков в формате, который легко поймет менеджер ѕопробовать бесплатно
¬недрение
офисной телефонии
Ўаг на пути к созданию доступных унифицированных коммуникаций в вашей компании ¬недрить
»нтеграци€ с CRM ѕомогаем навести пор€док с данными
и хранить их в единой экосистеме
ѕодключить
»“ Ѕезопастность ”мна€ информационна€ безопасность дл€ вашего бизнеса «аказать
ћерион Ќетворкс

8 минут чтени€

≈сли PowerShell кажетс€ вам сложным дл€ использовани€ его дл€ повседневных задач, "круто" может быть не тем словом, которое у вас ассоциируете с ним. Ќо PowerShell €вл€етс€ основной частью Exchange, Windows Server и SQL Server, и он обладает огромными возможност€ми, которые мы все должны пон€ть, прин€ть и использовать, чтобы облегчить и автоматизировать наши текущие дела.

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

“рюки с Windows PowerShell

Ѕудьте очень осторожны так как это инструмент достойный своего названи€ (Power Ц —ила, Shell Ц ќболочка). PowerShell может легко вызвать массовые изменени€ конфигурации, как положительные, так и отрицательные, поэтому дл€ безопасности создайте тестовую или лучше всего виртуальную среду дл€ вашего обучени€ и тестировани€. ≈сли вы будете тестировать у себ€ на компьютере, то создайте точку восстановлени€ системы. „тобы во врем€ выполнени€ одной из следующих команд что-то пойдет не так, вы всегда могли восстановить свой компьютер.


10 крутых вещей, которые можно сделать с помощью Windows PowerShell

1: ќтчЄты о подключЄнных USB оборудовани€х

PowerShell даЄт возможность работать с Windows Management Instrumentation (WMI). — помощью PowerShell, вы можете сделать WMI - запрос дл€ получени€ информации о USB - устройствах, которые установлены как на локальной, так и на удаленных системах.

gwmi Win32_USBControllerDevice -computername DBSERVER1 |fl Antecedent,Dependent

¬ данной команде будет применен фильтр возврата предшествующих и зависимых полей с компьютера DBSERVER1. ≈сли вы хотите получить полную информацию о USB-устройствах в системе, вы можете убрать оператор | и fl. Ёто весьма удобный способ дл€ ведени€ отчЄтов по серверам, к которым подключены USB - устройства с лицензией.

2: ¬ыполнение ваших любимых задач CMD в PowerShell

ƒа, вы можете перестать использовать командную строку (CMD) и начать выполн€ть все те же задачи в PowerShell. Ёто поможет сделать процесс обучение немного проще и помочь вам лучше ознакомитьс€ с интерфейсом.   сожалению, PowerShell невозможно вызвать через окно Ђвыполнитьї с помощью трЄх букв, подобно CMD. Ќо вы можете назначить сочетание клавиш дл€ быстрого запуска PowerShell, например, Ctrl + Shift + P.

3: ѕринудительное завершение процесса в PowerShell

≈сли зависла кака€-то служба Windows, вы можете использовать PowerShell дл€ завершени€ процесса так же, как и через ƒиспетчер «адач. Ќапример, дл€ закрыти€ BadThread.exe, вы делаете следующее:

get-process BadTh*
–езультаты выведут нам нужные данные в таком формате:
Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
19       5  -321955    -312219  -154    32.76   7583 BadThread

ѕосле того, как мы идентифицируем Process ID, вы можете принудительно закрыть зависший процесс введ€ команду:

stop-process -id 7583

¬ тот же момент процесс BadThread будет принудительно остановлен, и вы сможете возобновить попытку запуска службы.  оторую можете сделать пр€мо здесь, в PowerShell.

4: »спользуйте PSDrive дл€ большего, чем просто просмотр дисков

 оманда PSDrive позвол€ет просматривать объекты Windows за пределами традиционных сетей, а также локальных или съемных дисков. Ќапример, чтобы посмотреть диски в разделе верхнего уровн€ реестра HKEY_LOCAL_MACHINE, вы можете использовать HKLM PSDrive. „тобы войти в реестр, введите следующую команду:

PS    C:>        cd HKLM:
PS    HKLM:/>

«атем вы переключаетесь в раздел регистра где сможете просмотреть список всех объектов и удал€ть их, если вам это нужно.

5: Ёкспорт NTFS разрешений папки Ц как обычно, так и рекурсивно

”правление разрешени€ми NTFS - это отдельный вопрос, но с помощью PowerShell можно экспортировать список разрешений дл€ аудита доступов или дл€ быстрого анализа списка ACLs дл€ настройки политик безопасности. Ёто лучший вариант дл€ создани€ отчЄтности в формате периодически запускаемого скрипта, или вы можете запускать его по требованию, например, дл€ диагностики конкретной проблемы, св€занной с доступами. Ќапример, использу€ следующую команду:

PS    E:>Get-Acl N:Data

Ёто даст вам быстрый ответ с результатами ваших прав безопасности по указанному пути N:Data (обратите внимание, что команда не даЄт доступ к ресурсу). ƒанна€ команда не даст нам общую картину всех доступов всего пути, а только отчЄт только об указанном пути. Ќо если вы хотите включить рекурсию дл€ всего пути, вы можете использовать другую команду. ƒл€ того же пути N:Data вы должны использовать командлет Get-ChildItem (cmdlet) в PowerShell в сочетании с командлетом Get-Acl. –ассмотрим следующий пример:

PS    E:>Get-ChildItem N:Data -recurse | Get-Acl

ƒанна€ команда будет отображать списки ACL дл€ содержимого всего пути N:Data. –азберЄм как это работает: командлет Get-ChildItem показывает нам все объекты файловой системы по указанному пути N:Data, а дальше весь список объектов передаЄтс€ командлету Get-Acl который предоставл€ет результаты (списки ACL) дл€ каждого объекта.

≈сли вы хотите заархивировать данные в документ (CSV), вам нужно добавить | export-csv c:\filename.csv в конце команды.  роме этого вы можете извлечь в обычный текстовый файл с помощью добавлени€ командлета > C:\filename.txt. ќбратите внимание что, когда вы используете параметр -recurse, он будет примен€тьс€ во всех вложенных файлах и папках. ѕоэтому будьте внимательны, когда используете его дл€ инвентаризации объЄмных томов или же по сети.

6: ќтличи€ PowerShell 2.0

PowerShell 2.0 включает в себ€ графический интерфейс что €вл€етс€ удобной особенностью данной системы. —крипты PowerShell сохран€ютс€ как файлы .ps1, что позвол€ет нам легко измен€ть, импортировать и мигрировать сценарии в различные системы. Ќа скриншоте ниже показан пример списка разрешений NTFS в графическом режиме.

—писок разрешений NTFS
ѕримечание дл€ PowerShell 2.0: ѕеред тем как начать использовать PowerShell 2.0 версию, необходимо настроить политику исполнени€ с помощью первой версии PowerShell. ¬ведите одну из следующих команд дл€ настройки политики исполнени€ под ваши нужды:
PS C:> Set-ExecutionPolicy Restricted (только проверка)
PS C:> Set-ExecutionPolicy AllSigned (наиболее безопасный)
PS C:> Set-ExecutionPolicy RemoteSigned (средний уровень безопасности)
PS C:> Set-ExecutionPolicy Unrestricted (наименее безопасный)

ѕри этом не забудьте, что дл€ PowerShell 2.0 требуетс€ пакет WS-MAN v1.1 и Microsoft.NET Framework 3.0 дл€ графического интерфейса.

7: √ор€чие клавиши в графическом интерфейсе PowerShell

≈сли вы знакомы со средой Microsoft SQL Query Analyzer, вы по достоинству оцените некоторые из этих сочетаний клавиш. ¬ PowerShell GUI вы можете выбрать одну или несколько строк и выполнить их разом одним нажатием клавиши F5.  роме того, если вы изменили скрипт, то дл€ экономии времени при редактировании и тестировании доступны привычные Ctrl + S дл€ сохранени€, Ctrl + Z дл€ отмены, Ctrl + C дл€ копировани€ и Ctrl + V дл€ вставки.

8: ‘оновый режим дл€ длительных задачи

≈сли вы собираетесь использовать команду, выполнение которого займЄт некоторое врем€, вы можете запустить PowerShell в фоновом режиме до еЄ завершени€. “аким образом, можно отправить серию команд на автоматическое выполнение по своему собственному расписанию. „тобы запустить команду в фоновом режиме необходимо добавить в начало параметр Цpsjob. ј ещЄ можно узнать о состо€нии любого из заданий с помощью следующей команды:

PS C:> get-psjob

¬ дополнительном окне вы увидите таблицу с результатами о текущих состо€ний ваших заданий, дополнительно с уникальными идентификаторами сеанса дл€ каждой задачи отдельно. Ќа скриншоте ниже показана одна проваленна€ задача.

ѕроваленна€ задача

— помощью следующей команды вы можете удалить неудачную задачу, указав ID Session в конце команды:

PS C:>remove-psjob 9

9: ¬ставка временных рамок дл€ вывода команд PowerShell

ƒл€ задач PowerShell можно ввести временную метку последовательности, чтобы определить продолжительность каждого шага, к тому же можно использовать дл€ настройки журнала вводимых скриптов. Ёто может оказатьс€ удобным способом дл€ их тестировани€. „тобы вставить метку времени, введите одну из следующих команд в виде одно строки в файле .ps1:

 оманды¬ывод
"$(Get-Date -format g) Start logging"20/4/2020 7:45 AM
"$(Get-Date -format F) Start logging"Friday, December 23, 2019 8:26:24 AM
У$(Get-Date -format o) Start logging"2019-11-17T19:26:24.0479860-06:00

—уществует много различных форматов команды Get-Date, но обычно эти три параметра подход€т дл€ большинства целей с временными метками.

10: ¬ывод результатов с задержкой

¬ PowerShell некоторые команды вывод€т информацию на экран быстрым прокручиванием. ≈сли вы не экспортируете данные в файл, будет невозможно просмотреть их на экране. ƒавайте ещЄ раз воспользуемс€ командлетом Get-ChildItem из предыдущих примеров. Ёта команда может выводить множество результатов в зависимости от указанного пути. ƒл€ упрощени€ просмотра выводимых данных на экране мы воспользуемс€ функцией, котора€ называетс€ EasyView. ƒанна€ функци€ позвол€ет нам просмотреть результаты на экране путем отображени€ одной строки каждые полсекунды. ‘ункци€ EasyView создаЄтс€ следующим образом:

function EasyView { process { $_; Start-Sleep -seconds .5}}

„тобы выполнить команду PowerShell с помощью функции EasyView добавьте в конце команды оператор | и название самой функции, как показано ниже:

Get-ChildItem N:Data | EasyView

‘ункци€ EasyView настроена на отображение строк с интервалом в полсекунды. ¬ы также можете настроить интервал в миллисекундах.


»тоги

 рутые особенности на этих 10 пунктах не заканчиваютс€. ≈сть множества функций PowerShell, которые могут упростить ваши ежедневные задачи. я надеюсь эта стать€ привлечЄт ваше внимание к командной строке и поможет вам в будущем использовать PowerShell.