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

Объектный конвейер

Объектный конвейер: практический тест по PowerShell с чтением кода, поиском причины ошибки и выбором надёжного решения. Темы: Передача объектов, ByValue и ByPropertyName, Фильтрация через Where-Object, Обработка через ForEach-Object, Диагностика: конвейер объектов. Базовая линия — PowerShell 7.6.3; Windows-зависимые команды и отличия Windows PowerShell 5.1 отмечены в условиях.

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 25 вопросов отведено 70 минут. В каждом вопросе верен только один вариант; близкие ответы различаются механизмом, порядком выполнения, областью действия или эксплуатационной границей. После завершения вы увидите общий результат, результаты по 5 тематическим шкалам и подробные объяснения.
Вопрос 1 из 25
После Get-Process в Select-Object читается свойство CPU. Как следует читать этот фрагмент?
PowerShellПосле Get-Process в Select-Object читается свойство CPU
$result = Get-Process | Select-Object -First 3 Name,CPU
$shape = if($null -eq $result){'<null>'}elseif($result -is [array]){'array'}else{$result.GetType().Name}
[pscustomobject]@{ Shape=$shape; Values=@($result) }
Вопрос 2 из 25
Format-Table стоит в середине конвейера перед Where-Object. Какое утверждение верно для этого случая?
PowerShellFormat-Table стоит в середине конвейера перед Where-Object
$result = Get-Process | Format-Table Name,CPU | Where-Object CPU -gt 10
$summary = [ordered]@{ IsNull=($null -eq $result); Count=@($result).Count }
if($null -ne $result){$summary.Type=$result.GetType().FullName};[pscustomobject]$summary
Вопрос 3 из 25
На Windows внешний findstr.exe получает объект PowerShell через стандартный ввод. Какой принцип PowerShell здесь работает?
PowerShellНа Windows внешний findstr.exe получает объект PowerShell через стандартный ввод
$native = Join-Path $env:SystemRoot 'System32\findstr.exe'
Get-Process | Select-Object -First 1 | & $native '.'
Вопрос 4 из 25
Команда выводит коллекцию как один объект. Какое объяснение не зависит от случайностей окружения?
Вопрос 5 из 25
Конвейер обрабатывает миллион объектов. Какое ограничение здесь нельзя упустить?
Вопрос 6 из 25
Объект Process передаётся в Stop-Process. Какое объяснение не зависит от случайностей окружения?
PowerShellОбъект Process передаётся в Stop-Process
$result = Get-Process -Name notepad | Stop-Process -WhatIf
$items = @($result)
[pscustomobject]@{ Count=$items.Count; First=$items | Select-Object -First 1; IsNull=($null -eq $result) }
Вопрос 7 из 25
PSCustomObject с Name передаётся команде, принимающей -Name ByPropertyName. Какой вывод был бы слишком сильным?
PowerShellPSCustomObject с Name передаётся команде, принимающей -Name ByPropertyName
$result = [pscustomobject]@{Name="Spooler"} | Get-Service
$shape = if($null -eq $result){'<null>'}elseif($result -is [array]){'array'}else{$result.GetType().Name}
[pscustomobject]@{ Shape=$shape; Values=@($result) }
Вопрос 8 из 25
Свойство называется Computer, а параметр — ComputerName. На каком правиле основан результат?
PowerShellСвойство называется Computer, а параметр — ComputerName
$result = [pscustomobject]@{ComputerName="srv1"} | Test-Connection -Count 1
$summary = [ordered]@{ IsNull=($null -eq $result); Count=@($result).Count }
if($null -ne $result){$summary.Type=$result.GetType().FullName};[pscustomobject]$summary
Вопрос 9 из 25
Два набора параметров одинаково подходят для входа. Какой вывод можно подтвердить?
Вопрос 10 из 25
Функция принимает pipeline input, но тяжёлая инициализация находится в process. Какой вариант точнее выражает контракт?
Вопрос 11 из 25
Фильтр использует упрощённый синтаксис свойства. Какой вывод можно подтвердить?
PowerShellФильтр использует упрощённый синтаксис свойства
$result = Get-Service | Where-Object Status -eq Running
$shape = if($null -eq $result){'<null>'}elseif($result -is [array]){'array'}else{$result.GetType().Name}
[pscustomobject]@{ Shape=$shape; Values=@($result) }
Вопрос 12 из 25
Фильтр обращается к $_ внутри сценарного блока. Что стоит изменить в первую очередь?
PowerShellФильтр обращается к $_ внутри сценарного блока
$result = Get-ChildItem -File | Where-Object { $_.Length -gt 1MB -and $_.Extension -eq ".log" }
$resultType = if($null -eq $result){'<null>'}else{$result.GetType().FullName}
[pscustomobject]@{ Result=$result; Type=$resultType; Count=@($result).Count }
Вопрос 13 из 25
Свойство отсутствует у части объектов. Какое ограничение здесь нельзя упустить?
PowerShellСвойство отсутствует у части объектов
$result = $items | Where-Object { $_.PSObject.Properties["State"] -and $_.State -eq "Ready" }
$summary = [ordered]@{ IsNull=($null -eq $result); Count=@($result).Count }
if($null -ne $result){$summary.Type=$result.GetType().FullName};[pscustomobject]$summary
Вопрос 14 из 25
Фильтрация возможна параметром исходной команды. Какой результат нужно ожидать?
Вопрос 15 из 25
Условие выполняет сетевой запрос для каждого объекта. Как исправить причину, а не только симптом?
Вопрос 16 из 25
Begin, Process и End формируют агрегат. Что окажется в выходном потоке?
PowerShellBegin, Process и End формируют агрегат
$result = 1..4 | ForEach-Object -Begin {$sum=0} -Process {$sum+=$_} -End {$sum}
$shape = if($null -eq $result){'<null>'}elseif($result -is [array]){'array'}else{$result.GetType().Name}
[pscustomobject]@{ Shape=$shape; Values=@($result) }
Вопрос 17 из 25
Сокращённый синтаксис обращается к методу. Где заканчивается гарантия этого механизма?
PowerShellСокращённый синтаксис обращается к методу
$result = Get-Process | ForEach-Object ProcessName | Select-Object -First 3
$resultType = if($null -eq $result){'<null>'}else{$result.GetType().FullName}
[pscustomobject]@{ Result=$result; Type=$resultType; Count=@($result).Count }
Вопрос 18 из 25
В Process создаётся один и тот же изменяемый объект. Какое действие не создаст новой скрытой зависимости?
PowerShellВ Process создаётся один и тот же изменяемый объект
$template=[pscustomobject]@{N=0}
1..3 | ForEach-Object {$template.N=$_;$template}
Вопрос 19 из 25
В ForEach-Object используется return. Какой подход выдержит повторный запуск?
Вопрос 20 из 25
Конвейер должен остановиться на первой ошибке. Что остаётся непроверенным после успешного запуска?
Вопрос 21 из 25
Как увидеть, что реально приходит на вход следующей команды?
PowerShellНужно увидеть, что реально приходит на вход следующей команды
Get-Process | Tee-Object -Variable sample | Select-Object -First 1 Name
$sample[0].GetType().FullName
Вопрос 22 из 25
Параметр не связывается из конвейера. Какое объяснение точнее?
PowerShellПараметр не связывается из конвейера
Trace-Command ParameterBinding -PSHost -Expression { [pscustomobject]@{Name="Spooler"} | Get-Service }
Вопрос 23 из 25
Конвейер выдаёт неожиданный тип после одной команды. На каком правиле основан результат?
PowerShellКонвейер выдаёт неожиданный тип после одной команды
$x=Get-Process | Select-Object -First 1
$x.PSTypeNames
Вопрос 24 из 25
Тест проверяет только отображаемую таблицу. Какой принцип PowerShell здесь работает?
Вопрос 25 из 25
Ошибка проявляется только на большом входе. Какое действие не создаст новой скрытой зависимости?

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

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

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

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