PS PowerShell  ·  30 вопросов  ·  ~85 мин  ·  ⏱ Таймер 25:00  ·  Сложный  · 

Desired State Configuration

Desired State Configuration: практический тест по PowerShell с чтением кода, поиском причины ошибки и выбором надёжного решения. Темы: Конфигурации DSC, Ресурсы DSC, Идемпотентность, Отклонение состояния Drift, Диагностика: DSC, Безопасная эксплуатация: DSC. Базовая линия — PowerShell 7.6.3; Windows-зависимые команды и отличия Windows PowerShell 5.1 отмечены в условиях.

Отвечено: 0 из 30
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 30 вопросов отведено 85 минут. В каждом вопросе верен только один вариант; близкие ответы различаются механизмом, порядком выполнения, областью действия или эксплуатационной границей. После завершения вы увидите общий результат, результаты по 6 тематическим шкалам и подробные объяснения.
Вопрос 1 из 30
Configuration компилируется в MOF. Какой принцип PowerShell здесь работает?
PowerShellConfiguration компилируется в MOF
Configuration Demo { Node localhost { File Marker { DestinationPath="C:\Demo\marker.txt";Contents="ok";Ensure="Present" } } }
Demo -OutputPath .\mof
Вопрос 2 из 30
Параметр конфигурации содержит credential. Какое утверждение верно для этого случая?
PowerShellПараметр конфигурации содержит credential
Configuration Demo {
    param([pscredential]$Credential)
    Node localhost {
        # Ресурс использует Credential только во время компиляции конфигурации.
    }
}
Вопрос 3 из 30
ConfigurationData разделяет узлы и общие данные. Что стоит изменить в первую очередь?
PowerShellConfigurationData разделяет узлы и общие данные
$configData=@{AllNodes=@(@{NodeName="srv1";Role="Web"})}
$valueType = if($null -eq $configData){'<null>'}else{$configData.GetType().FullName}
[pscustomobject]@{ Value=$configData; Type=$valueType; Count=@($configData).Count }
Вопрос 4 из 30
Конфигурация зависит от текущего каталога компилятора. Какое объяснение не зависит от случайностей окружения?
Вопрос 5 из 30
Классический DSC применяется к Linux как та же технология. Что точнее всего описывает поведение?
Вопрос 6 из 30
Ресурс реализует Get, Test и Set. Что здесь произойдёт до следующей команды?
PowerShellРесурс реализует Get, Test и Set
[DscResource()] class AppFile {
  [DscProperty(Key)][string]$Path
  [DscProperty(Mandatory)][string]$Content
  [AppFile] Get(){ $r=[AppFile]::new(); $r.Path=$this.Path; $r.Content=Get-Content $this.Path -Raw; return $r }
  [bool] Test(){ return (Test-Path $this.Path) -and ((Get-Content $this.Path -Raw) -eq $this.Content) }
  [void] Set(){ Set-Content -LiteralPath $this.Path -Value $this.Content }
}
Вопрос 7 из 30
File resource обеспечивает каталог. Какой вывод можно подтвердить?
PowerShellFile resource обеспечивает каталог
$result = & { File DataDir { DestinationPath="C:\Data";Type="Directory";Ensure="Present" } }
$resultType = if($null -eq $result){'<null>'}else{$result.GetType().FullName}
[pscustomobject]@{ Result=$result; Type=$resultType; Count=@($result).Count }
Вопрос 8 из 30
Service resource зависит от File. Где заканчивается гарантия этого механизма?
PowerShellService resource зависит от File
$result = & { Service DemoSvc { Name="Demo";State="Running";DependsOn="[File]Config" } }
$resultType = if($null -eq $result){'<null>'}else{$result.GetType().FullName}
[pscustomobject]@{ Result=$result; Type=$resultType; Count=@($result).Count }
Вопрос 9 из 30
Пользовательский ресурс пишет произвольный текст в успешный поток. Какой принцип PowerShell здесь работает?
Вопрос 10 из 30
Ресурс скачан из галереи. Как поступить, чтобы поведение осталось предсказуемым?
Вопрос 11 из 30
Set вызывается дважды при уже достигнутом состоянии. Что точнее всего описывает поведение?
PowerShellSet вызывается дважды при уже достигнутом состоянии
if(-not (Test-TargetResource @p)){Set-TargetResource @p}
Test-TargetResource @p
Вопрос 12 из 30
Ресурс всегда перезаписывает файл с текущей датой. Какой результат увидит вызывающий код?
PowerShellРесурс всегда перезаписывает файл с текущей датой
$result = Contents="Generated at $(Get-Date)"
$summary = [ordered]@{ IsNull=($null -eq $result); Count=@($result).Count }
if($null -ne $result){$summary.Type=$result.GetType().FullName};[pscustomobject]$summary
Вопрос 13 из 30
Список групп сравнивается с учётом порядка. На каком правиле основан результат?
PowerShellСписок групп сравнивается с учётом порядка
$result = Compare-Object ($desired|Sort-Object) ($actual|Sort-Object)
$items = @($result)
[pscustomobject]@{ Count=$items.Count; First=$items | Select-Object -First 1; IsNull=($null -eq $result) }
Вопрос 14 из 30
Set выполняет необратимое действие до полной проверки входа. На каком правиле основан результат?
Вопрос 15 из 30
Ресурс сообщает success без повторной проверки. Какое условие нужно проверить отдельно?
Вопрос 16 из 30
Test-DscConfiguration возвращает false. Что точнее всего описывает поведение?
PowerShellTest-DscConfiguration возвращает false
$result = Test-DscConfiguration -Detailed
$items = @($result)
[pscustomobject]@{ Count=$items.Count; First=$items | Select-Object -First 1; IsNull=($null -eq $result) }
Вопрос 17 из 30
LCM настроен ApplyAndAutoCorrect. Что стоит изменить в первую очередь?
PowerShellLCM настроен ApplyAndAutoCorrect
$result = Get-DscLocalConfigurationManager | Select-Object ConfigurationMode,RefreshMode
$summary = [ordered]@{ IsNull=($null -eq $result); Count=@($result).Count }
if($null -ne $result){$summary.Type=$result.GetType().FullName};[pscustomobject]$summary
Вопрос 18 из 30
Конфигурация изменилась в репозитории, но MOF не обновлён. На каком правиле основан результат?
PowerShellКонфигурация изменилась в репозитории, но MOF не обновлён
$result = Get-DscConfigurationStatus -All | Select-Object StartDate,Status,Type
$shape = if($null -eq $result){'<null>'}elseif($result -is [array]){'array'}else{$result.GetType().Name}
[pscustomobject]@{ Shape=$shape; Values=@($result) }
Вопрос 19 из 30
Ручное исправление выполнено прямо на узле. Какое условие нужно проверить отдельно?
Вопрос 20 из 30
Drift обнаруживается только периодическим полным сканированием. На каком правиле основан результат?
Вопрос 21 из 30
Компиляция проходит, применение падает. Какой подход выдержит повторный запуск?
PowerShellКомпиляция проходит, применение падает
$result = Get-WinEvent -LogName Microsoft-Windows-DSC/Operational -MaxEvents 50
$items = @($result)
[pscustomobject]@{ Count=$items.Count; First=$items | Select-Object -First 1; IsNull=($null -eq $result) }
Вопрос 22 из 30
Test постоянно false. Какой принцип PowerShell здесь работает?
PowerShellTest постоянно false
$result = Get-DscConfiguration | Format-List *
$items = @($result)
[pscustomobject]@{ Count=$items.Count; First=$items | Select-Object -First 1; IsNull=($null -eq $result) }
Вопрос 23 из 30
Ресурс завис на Set. Что точнее всего описывает поведение?
PowerShellРесурс завис на Set
# Сценарий для ревью: Ресурс завис на Set.
$status = Get-DscConfigurationStatus -All | Select-Object -First 5 StartDate,Type,Status,Error
$lcm = Get-DscLocalConfigurationManager
[pscustomobject]@{ Mode=$lcm.ConfigurationMode; Frequency=$lcm.ConfigurationModeFrequencyMins; Status=$status }
$status | Export-Clixml .\dsc-status.clixml
Вопрос 24 из 30
Узел применил старую конфигурацию. На каком правиле основан результат?
Вопрос 25 из 30
Исправление работает один раз. Какое объяснение точнее?
Вопрос 26 из 30
MOF содержит credential. Что следует сделать до запуска в автоматизации?
PowerShellMOF содержит credential
# Сценарий для ревью: MOF содержит credential.
$context = [pscustomobject]@{ User=[Environment]::UserName; Host=$Host.Name; At=[datetimeoffset]::UtcNow }
$headers = @{ Authorization = "Bearer $env:API_TOKEN" }
Write-Information (ConvertTo-Json @{ Context=$context; Headers=$headers }) -InformationAction Continue
Invoke-RestMethod -Uri $uri -Headers $headers -ErrorAction Stop
Вопрос 27 из 30
Pull server выдаёт конфигурации без строгой аутентификации. Что точнее всего описывает поведение?
PowerShellPull server выдаёт конфигурации без строгой аутентификации
# Сценарий для ревью: Pull server выдаёт конфигурации без строгой аутентификации.
$status = Get-DscConfigurationStatus -All | Select-Object -First 5 StartDate,Type,Status,Error
$lcm = Get-DscLocalConfigurationManager
[pscustomobject]@{ Mode=$lcm.ConfigurationMode; Frequency=$lcm.ConfigurationModeFrequencyMins; Status=$status }
$status | Export-Clixml .\dsc-status.clixml
Вопрос 28 из 30
Ресурс автоматически исправляет критичный сервер во время инцидента. Какое ограничение здесь нельзя упустить?
PowerShellРесурс автоматически исправляет критичный сервер во время инцидента
# Сценарий для ревью: Ресурс автоматически исправляет критичный сервер во время инцидента.
$status = Get-DscConfigurationStatus -All | Select-Object -First 5 StartDate,Type,Status,Error
$lcm = Get-DscLocalConfigurationManager
[pscustomobject]@{ Mode=$lcm.ConfigurationMode; Frequency=$lcm.ConfigurationModeFrequencyMins; Status=$status }
$status | Export-Clixml .\dsc-status.clixml
Вопрос 29 из 30
Обновление модуля ресурса применяется всем узлам сразу. Какое утверждение верно для этого случая?
Вопрос 30 из 30
ConfigurationData хранит топологию и секреты в одном файле. Какой вывод был бы слишком сильным?

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

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

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

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