PS PowerShell  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  · 

Объекты и свойства

Объекты и свойства: практический тест по PowerShell с чтением кода, поиском причины ошибки и выбором надёжного решения. Темы: Объекты PSCustomObject, Расширение объектов через Add-Member, Вычисляемые свойства, Типы объектов. Базовая линия — PowerShell 7.6.3; Windows-зависимые команды и отличия Windows PowerShell 5.1 отмечены в условиях.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В каждом вопросе верен только один вариант; близкие ответы различаются механизмом, порядком выполнения, областью действия или эксплуатационной границей. После завершения вы увидите общий результат, результаты по 4 тематическим шкалам и подробные объяснения.
Вопрос 1 из 20
Объект создаётся приведением упорядоченной хеш-таблицы. Что окажется в выходном потоке?
PowerShellОбъект создаётся приведением упорядоченной хеш-таблицы
$result = & { [pscustomobject][ordered]@{Name="srv1";Online=$true;LatencyMs=12} }
$items = @($result)
[pscustomobject]@{ Count=$items.Count; First=$items | Select-Object -First 1; IsNull=($null -eq $result) }
Вопрос 2 из 20
Две записи PSCustomObject имеют одинаковые свойства, но разные значения. Как исправить причину, а не только симптом?
PowerShellДве записи PSCustomObject имеют одинаковые свойства, но разные значения
$a=[pscustomobject]@{N=1}
$b=[pscustomobject]@{N=1}
$a.N=2
"$($a.N):$($b.N)"
Вопрос 3 из 20
Объект выводится в JSON после добавления свойства со значением $null. Какое различие нужно зафиксировать в коде?
PowerShellОбъект выводится в JSON после добавления свойства со значением $null
$result = & { [pscustomobject]@{Name="x";Note=$null} | ConvertTo-Json -Compress }
$summary = [ordered]@{ IsNull=($null -eq $result); Count=@($result).Count }
if($null -ne $result){$summary.Type=$result.GetType().FullName};[pscustomobject]$summary
Вопрос 4 из 20
Для каждого объекта в цикле создаётся новая таблица свойств. Какой вариант точнее выражает контракт?
Вопрос 5 из 20
Как гарантировать методы, наследование и строгий тип?
Вопрос 6 из 20
К объекту добавляется NoteProperty через -PassThru. Какой результат увидит вызывающий код?
PowerShellК объекту добавляется NoteProperty через -PassThru
$o=[pscustomobject]@{Name="x"}
$o | Add-Member NoteProperty State Ready -PassThru
Вопрос 7 из 20
ScriptMethod использует $this. Какое скрытое допущение делает решение ненадёжным?
PowerShellScriptMethod использует $this
$o=[pscustomobject]@{N=3}
$o | Add-Member ScriptMethod Double { $this.N * 2 }
$o.Double()
Вопрос 8 из 20
Добавляется свойство с уже существующим именем. Какое утверждение верно для этого случая?
PowerShellДобавляется свойство с уже существующим именем
$o=[pscustomobject]@{N=1}
$o | Add-Member NoteProperty N 2 -Force
$o.N
Вопрос 9 из 20
Одинаковый член добавляется тысячам объектов после получения данных. На каком правиле основан результат?
Вопрос 10 из 20
Как сохранить добавленные члены после сериализации и восстановления?
Вопрос 11 из 20
Select-Object создаёт свойство SizeMB выражением scriptblock. Как PowerShell обработает этот случай?
PowerShellSelect-Object создаёт свойство SizeMB выражением scriptblock
$result = & { Get-Item . | Select-Object Name,@{n="PathLength";e={$_.FullName.Length}} }
$summary = [ordered]@{ IsNull=($null -eq $result); Count=@($result).Count }
if($null -ne $result){$summary.Type=$result.GetType().FullName};[pscustomobject]$summary
Вопрос 12 из 20
Sort-Object использует вычисляемое выражение и Descending. На каком правиле основан результат?
PowerShellSort-Object использует вычисляемое выражение и Descending
$x=[pscustomobject]@{N="a";V=2},[pscustomobject]@{N="b";V=1}
$x | Sort-Object @{e={$_.V};Descending=$true}
Вопрос 13 из 20
Group-Object получает вычисляемое свойство даты. Какой принцип PowerShell здесь работает?
Вопрос 14 из 20
Вычисляемое свойство возвращает форматированную строку вместо числа. Что следует сделать до запуска в автоматизации?
Вопрос 15 из 20
Expression может выбросить ошибку для части объектов. Что стоит изменить в первую очередь?
Вопрос 16 из 20
Как увидеть реальный тип и доступные члены объекта из конвейера?
PowerShellНужно увидеть реальный тип и доступные члены объекта из конвейера
$result = Get-Process | Select-Object -First 1 | Get-Member
$summary = [ordered]@{ IsNull=($null -eq $result); Count=@($result).Count }
if($null -ne $result){$summary.Type=$result.GetType().FullName};[pscustomobject]$summary
Вопрос 17 из 20
Объект после удалённого вызова имеет имя типа Deserialized.*. Что здесь произойдёт до следующей команды?
PowerShellОбъект после удалённого вызова имеет имя типа Deserialized.*
$result = Invoke-Command -ComputerName server1 { Get-Process -Id $PID } | Get-Member
$resultType = if($null -eq $result){'<null>'}else{$result.GetType().FullName}
[pscustomobject]@{ Result=$result; Type=$resultType; Count=@($result).Count }
Вопрос 18 из 20
PSTypeNames модифицируется вставкой пользовательского имени. Какой вывод можно подтвердить?
Вопрос 19 из 20
Проверяется наличие свойства у объектов разных форм. Какое объяснение не зависит от случайностей окружения?
Вопрос 20 из 20
Тип объекта нужно использовать в публичном контракте. Что стоит изменить в первую очередь?

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

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

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

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