PS PowerShell  ·  25 вопросов  ·  ~70 мин  ·  ⏱ Таймер 10:00  ·  Средний  · 

Модули и профили

Модули и профили: практический тест по PowerShell с чтением кода, поиском причины ошибки и выбором надёжного решения. Темы: Загрузка модулей через Import-Module, Манифест модуля, Экспортируемые члены модуля, Профили PowerShell, Диагностика: загрузка модулей. Базовая линия — PowerShell 7.6.3; Windows-зависимые команды и отличия Windows PowerShell 5.1 отмечены в условиях.

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 25 вопросов отведено 70 минут. В каждом вопросе верен только один вариант; близкие ответы различаются механизмом, порядком выполнения, областью действия или эксплуатационной границей. После завершения вы увидите общий результат, результаты по 5 тематическим шкалам и подробные объяснения.
Вопрос 1 из 25
Импортируется конкретная версия модуля. Что точнее всего описывает поведение?
PowerShellИмпортируется конкретная версия модуля
$result = & { Import-Module @{ModuleName="Pester";ModuleVersion="5.6.1"} }
$shape = if($null -eq $result){'<null>'}elseif($result -is [array]){'array'}else{$result.GetType().Name}
[pscustomobject]@{ Shape=$shape; Values=@($result) }
Вопрос 2 из 25
Модуль уже импортирован и файл изменён. Какой принцип PowerShell здесь работает?
PowerShellМодуль уже импортирован и файл изменён
$result = Import-Module .\Demo.psd1 -Force
$shape = if($null -eq $result){'<null>'}elseif($result -is [array]){'array'}else{$result.GetType().Name}
[pscustomobject]@{ Shape=$shape; Values=@($result) }
Вопрос 3 из 25
Два модуля экспортируют одинаковое имя команды. На каком правиле основан результат?
PowerShellДва модуля экспортируют одинаковое имя команды
Import-Module ModuleA -Prefix A
ModuleB\Get-Item
Вопрос 4 из 25
Импорт модуля выполняет код верхнего уровня. Какое действие не создаст новой скрытой зависимости?
Вопрос 5 из 25
Время старта велико. Как исправить причину, а не только симптом?
Вопрос 6 из 25
RootModule указывает psm1, а ModuleVersion — версию. На каком правиле основан результат?
PowerShellRootModule указывает psm1, а ModuleVersion — версию
$result = Test-ModuleManifest .\Demo.psd1 | Select-Object Name,Version,Guid
$summary = [ordered]@{ IsNull=($null -eq $result); Count=@($result).Count }
if($null -ne $result){$summary.Type=$result.GetType().FullName};[pscustomobject]$summary
Вопрос 7 из 25
RequiredModules задаёт зависимость. Что следует сделать до запуска в автоматизации?
PowerShellRequiredModules задаёт зависимость
$result = & { @{ RootModule="Demo.psm1"; ModuleVersion="1.2.0"; RequiredModules=@("Utility.Core") } }
$shape = if($null -eq $result){'<null>'}elseif($result -is [array]){'array'}else{$result.GetType().Name}
[pscustomobject]@{ Shape=$shape; Values=@($result) }
Вопрос 8 из 25
CompatiblePSEditions ограничивает Desktop/Core. Какое ограничение здесь нельзя упустить?
PowerShellCompatiblePSEditions ограничивает Desktop/Core
$result = Import-PowerShellDataFile .\Demo.psd1 | Select-Object CompatiblePSEditions
$items = @($result)
[pscustomobject]@{ Count=$items.Count; First=$items | Select-Object -First 1; IsNull=($null -eq $result) }
Вопрос 9 из 25
FunctionsToExport содержит wildcard. Что стоит изменить в первую очередь?
Вопрос 10 из 25
PrivateData.PSData содержит теги и URI. На каком правиле основан результат?
Вопрос 11 из 25
Export-ModuleMember вызывается в psm1. Где заканчивается гарантия этого механизма?
PowerShellExport-ModuleMember вызывается в psm1
function Get-PublicThing { 1 }
function Invoke-PrivateThing { 2 }
Export-ModuleMember -Function Get-PublicThing
Вопрос 12 из 25
FunctionsToExport и Export-ModuleMember противоречат друг другу. Как исправить причину, а не только симптом?
PowerShellFunctionsToExport и Export-ModuleMember противоречат друг другу
$result = Test-ModuleManifest .\Demo.psd1 | Select-Object -ExpandProperty ExportedFunctions
$resultType = if($null -eq $result){'<null>'}else{$result.GetType().FullName}
[pscustomobject]@{ Result=$result; Type=$resultType; Count=@($result).Count }
Вопрос 13 из 25
Класс объявлен в модуле. Какая граница важна для автоматизации?
PowerShellКласс объявлен в модуле
using module .\Demo.psd1
[Demo.Widget]::new()
Вопрос 14 из 25
Внутренняя функция вызывается квалифицированным именем модуля. Какой принцип PowerShell здесь работает?
Вопрос 15 из 25
Экспортируется переменная с изменяемым состоянием. Какое действие не создаст новой скрытой зависимости?
Вопрос 16 из 25
$PROFILE рассматривается как единственный путь. Какой механизм срабатывает именно здесь?
PowerShell$PROFILE рассматривается как единственный путь
$result = $PROFILE | Format-List * -Force
$resultType = if($null -eq $result){'<null>'}else{$result.GetType().FullName}
[pscustomobject]@{ Result=$result; Type=$resultType; Count=@($result).Count }
Вопрос 17 из 25
Профиль добавляет модуль и изменяет предпочтения. Какой вариант точнее выражает контракт?
PowerShellПрофиль добавляет модуль и изменяет предпочтения
$result = pwsh -NoProfile -File .\job.ps1
$resultType = if($null -eq $result){'<null>'}else{$result.GetType().FullName}
[pscustomobject]@{ Result=$result; Type=$resultType; Count=@($result).Count }
Вопрос 18 из 25
Профиль создаётся без каталога. Какой вариант точнее выражает контракт?
PowerShellПрофиль создаётся без каталога
$dir=Split-Path $PROFILE
New-Item $dir -ItemType Directory -Force | Out-Null
New-Item $PROFILE -ItemType File -Force
Вопрос 19 из 25
Секрет хранится в профиле. Что следует сделать до запуска в автоматизации?
Вопрос 20 из 25
Профиль выводит приветствие в успешный поток. Какая граница важна для автоматизации?
Вопрос 21 из 25
Загружена не та копия модуля. Что стоит изменить в первую очередь?
PowerShellЗагружена не та копия модуля
$result = Get-Module Demo -All | Select-Object Name,Version,Path
$resultType = if($null -eq $result){'<null>'}else{$result.GetType().FullName}
[pscustomobject]@{ Result=$result; Type=$resultType; Count=@($result).Count }
Вопрос 22 из 25
Команда существует только после ручного Import-Module. Что стоит изменить в первую очередь?
PowerShellКоманда существует только после ручного Import-Module
$result = Get-Command Get-Demo -All | Select-Object CommandType,Source,Version
$shape = if($null -eq $result){'<null>'}elseif($result -is [array]){'array'}else{$result.GetType().Name}
[pscustomobject]@{ Shape=$shape; Values=@($result) }
Вопрос 23 из 25
Поведение отличается в чистом сеансе. Какое объяснение не зависит от случайностей окружения?
PowerShellПоведение отличается в чистом сеансе
$result = & { pwsh -NoProfile -Command "Import-Module ./Demo.psd1; Get-Command -Module Demo" }
$shape = if($null -eq $result){'<null>'}elseif($result -is [array]){'array'}else{$result.GetType().Name}
[pscustomobject]@{ Shape=$shape; Values=@($result) }
Вопрос 24 из 25
После -Force остаётся старое поведение. Какой вариант точнее выражает контракт?
Вопрос 25 из 25
Публикация проходит локально, но ломается у пользователя. Какое утверждение верно для этого случая?

Ответьте на все 25 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу