Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это приложение содержит краткие ответы на вопросы проверки, найденные в конце каждой главы. Используйте его для проверки понимания и укрепления ключевых понятий.
Глава 1. Начало работы с PowerShell
- Используйте автоматическую
$PSVersionTableпеременную. - Только если необходимо обойти контроль учетных записей пользователей (UAC) для задач, требующих повышения прав на локальном компьютере.
- Политика выполнения по умолчанию в клиентских системах Windows —
Restricted, которая предотвращает выполнение скриптов. - Используется
Get-ExecutionPolicyдля определения текущей политики выполнения. - Используйте
Set-ExecutionPolicy(например,Set-ExecutionPolicy -ExecutionPolicy RemoteSigned).
Глава 2 — Система справки
- Нет. Параметр
Get-Serviceименован, а не позиционный. -
Get-Processимеет шесть наборов параметров. - Используйте
Get-Command -Noun EventLog. - Используйте
Get-Process -Name powershell. - Запустите
Update-Help(с повышенными правами администратора в Windows PowerShell), чтобы скачать и установить последнее содержимое справки.
Глава 3. Обнаружение объектов, свойств и методов
-
Get-Processсоздает объектSystem.Diagnostics.Process. - Передайте команду в
Get-Member. - Проверьте, имеет ли объект метод, выполняющий действие.
- Используйте параметр команды
PassThru, если он имеет один. - Выполните команду один раз и сохраните результаты в переменной, чтобы избежать многократного создания больших объемов выходных данных при создании прототипа.
Глава 4. One-Liners и конвейер
- Однострочник PowerShell является одним непрерывным пайплайном независимо от количества физических строк, которые он охватывает.
- Естественные разрывы линий могут возникать при символах, таких как вертикальная черта (
|), запятая (,), квадратные скобки ([ ]), фигурные скобки ({ }), и круглые скобки (( )). - Необходимо отфильтровать слева, чтобы повысить производительность и эффективность, уменьшая объем данных, передаваемых через конвейер.
- Команда может принимать входные данные конвейера по значению (по типу) или по имени свойства.
- Поскольку большинство содержимого в коллекция PowerShell предоставляется сообществом и может не быть проверено, его следует анализировать и тестировать до использования.
Глава 5. Форматирование, псевдонимы, поставщики, сравнение
- Поскольку командлеты форматирования создают форматные объекты, которые разрывают конвейер и не могут быть использованы большинством других команд.
- Используйте
Get-Alias -Name %, чтобы определить фактический командлет. - Так как псевдонимы снижают удобочитаемость и переносимость, что делает скрипты более сложными для других пользователей.
- Используйте
Get-ChildItem -Path HKLM:\, HKCU:\для перечисления разделов реестра в обоих ульях. - Оператор
-replaceпо умолчанию не чувствителен к регистру, тогда как метод.Replace()учитывает регистр.
Глава 6. Управление потоками
-
ForEach-Objectобрабатывает элементы по одному из потока (стриминг), а операторforeachобрабатывает элементы из коллекции, которая уже загружена в память. -
whileЦикл оценивает своё условие перед выполнением, поэтому он может вообще не выполняться, если условие является ложным, в отличие отdo whileиdo until, которые выполняются по крайней мере один раз. -
breakзавершает цикл полностью, пропускаяcontinueтекущую итерацию и переходя к следующей.
Глава 7. Работа с WMI
- Командлеты WMI (например,
Get-WmiObjectболее старые) и используют DCOM, а командлеты CIM (например,Get-CimInstance) являются более новыми и используют WSMan по умолчанию. - WSMan (Windows удаленное управление).
- Сеансы CIM позволяют повторно использовать подключения, поддерживать альтернативные учетные данные, повысить производительность и упростить управление несколькими удаленными подключениями.
- Создайте параметр сеанса с
New-CimSessionOption, например, для использования DCOM, и передайте его вNew-CimSession, а затем используйте этот сеанс сGet-CimInstance. - Используйте
Remove-CimSession.
Глава 8 – Удаленное взаимодействие PowerShell
- Используйте
Enable-PSRemoting. - Используйте
Enter-PSSession. - Он позволяет использовать постоянный сеанс вместо указания имени компьютера и учетных данных с каждой командой.
- Да, вы можете использовать сеанс PowerShell (PSSession) в сценарии интерактивного удаленного взаимодействия.
- Локальное выполнение командлетов возвращает динамические объекты с методами, а удаленные команды возвращают десериализированные объекты без методов.
Глава 9. Функции
- Используйте
Get-Verb. -
[CmdletBinding()]Добавьте атрибут в функцию. - Когда функция вносит изменения в состояние системы или выполняет потенциально влияющие действия.
- Укажите
-ErrorAction Stop. - Чтобы задокументировать, как использовать функцию, чтобы вы и другие могли легко понять её и получить доступ к помощи с
Get-Help.
Глава 10. Модули скриптов
-
.psm1Создайте файл и поместите в него функции. - Использование утвержденных глаголов гарантирует согласованность, избегает предупреждений и улучшает обнаруживаемость.
- Используйте
New-ModuleManifest. - Используйте
Export-ModuleMemberв.psm1файле или укажите функции вFunctionsToExportполе.psd1файла. - Модуль должен находиться в папке с именем модуля, расположенной по пути, указанному в
$env:PSModulePath, и содержать соответствующий файл модуля (.psm1или манифест).
Окончательные заметки
- Эти ответы намеренно кратки для укрепления ключевых понятий.
- Вернитесь к главам для более глубокого понимания.
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
PowerShell