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

Пользователи и разрешения

Пользователи и разрешения: практический тест по PowerShell с чтением кода, поиском причины ошибки и выбором надёжного решения. Темы: Локальные учётные записи, Списки управления доступом ACL, Наследование прав, Аудит изменений, Диагностика: учётные записи и ACL. Базовая линия — PowerShell 7.6.3; Windows-зависимые команды и отличия Windows PowerShell 5.1 отмечены в условиях.

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 25 вопросов отведено 70 минут. В каждом вопросе верен только один вариант; близкие ответы различаются механизмом, порядком выполнения, областью действия или эксплуатационной границей. После завершения вы увидите общий результат, результаты по 5 тематическим шкалам и подробные объяснения.
Вопрос 1 из 25
Get-LocalUser выполняется на Windows. Какое объяснение точнее?
PowerShellGet-LocalUser выполняется на Windows
$result = Get-LocalUser | Select-Object Name,Enabled,LastLogon
$items = @($result)
[pscustomobject]@{ Count=$items.Count; First=$items | Select-Object -First 1; IsNull=($null -eq $result) }
Вопрос 2 из 25
Пароль передаётся New-LocalUser как SecureString. Как следует читать этот фрагмент?
PowerShellПароль передаётся New-LocalUser как SecureString
$pw=Read-Host "Password" -AsSecureString
New-LocalUser -Name demo -Password $pw -WhatIf
Вопрос 3 из 25
Пользователь добавляется в локальную группу по SID. На каком правиле основан результат?
PowerShellПользователь добавляется в локальную группу по SID
$result = Get-LocalGroup -SID S-1-5-32-544
$summary = [ordered]@{ IsNull=($null -eq $result); Count=@($result).Count }
if($null -ne $result){$summary.Type=$result.GetType().FullName};[pscustomobject]$summary
Вопрос 4 из 25
Сценарий отключает учётную запись, не проверяя активные службы и задачи. Что стоит изменить в первую очередь?
Вопрос 5 из 25
Локальная и доменная учётная запись имеют одинаковое короткое имя. Какой вывод был бы слишком сильным?
Вопрос 6 из 25
Get-Acl возвращает FileSecurity для файла. Какой вывод можно подтвердить?
PowerShellGet-Acl возвращает FileSecurity для файла
$acl=Get-Acl .\data.txt
$acl | Select-Object Owner,AreAccessRulesProtected,Access
Вопрос 7 из 25
Добавляется FileSystemAccessRule. Как поступить, чтобы поведение осталось предсказуемым?
PowerShellДобавляется FileSystemAccessRule
$acl=Get-Acl .\data
$rule=[Security.AccessControl.FileSystemAccessRule]::new("Users","Read","ContainerInherit,ObjectInherit","None","Allow")
$acl.AddAccessRule($rule)
Set-Acl .\data $acl -WhatIf
Вопрос 8 из 25
Deny и Allow существуют одновременно. Какой вывод был бы слишком сильным?
PowerShellDeny и Allow существуют одновременно
(Get-Acl .\data).Access | Format-Table IdentityReference,AccessControlType,FileSystemRights,IsInherited
Вопрос 9 из 25
ACL копируется между файлами разных владельцев. Какое скрытое допущение делает решение ненадёжным?
Вопрос 10 из 25
Проверка доступа выполняется под администратором. Какое действие не создаст новой скрытой зависимости?
Вопрос 11 из 25
AreAccessRulesProtected равно true. Какой вариант точнее выражает контракт?
PowerShellAreAccessRulesProtected равно true
$acl=Get-Acl .\data
$acl.SetAccessRuleProtection($true,$true)
Вопрос 12 из 25
Правило имеет InheritanceFlags ContainerInherit,ObjectInherit. На каком правиле основан результат?
PowerShellПравило имеет InheritanceFlags ContainerInherit,ObjectInherit
$result = [Security.AccessControl.InheritanceFlags]"ContainerInherit, ObjectInherit"
$summary = [ordered]@{ IsNull=($null -eq $result); Count=@($result).Count }
if($null -ne $result){$summary.Type=$result.GetType().FullName};[pscustomobject]$summary
Вопрос 13 из 25
Родительский ACL изменился, но защищённый дочерний не обновился. Какое объяснение не зависит от случайностей окружения?
PowerShellРодительский ACL изменился, но защищённый дочерний не обновился
$result = Get-ChildItem .\root -Directory -Recurse | Where-Object {(Get-Acl $_).AreAccessRulesProtected}
$shape = if($null -eq $result){'<null>'}elseif($result -is [array]){'array'}else{$result.GetType().Name}
[pscustomobject]@{ Shape=$shape; Values=@($result) }
Вопрос 14 из 25
Сценарий рекурсивно переписывает ACL каждого файла. Как изменится состояние после выполнения?
Вопрос 15 из 25
Наследование включается без резервной копии дескриптора. Как исправить причину, а не только симптом?
Вопрос 16 из 25
До и после правки сохраняется SDDL. На каком правиле основан результат?
PowerShellДо и после правки сохраняется SDDL
$before=(Get-Acl .\data).Sddl
# изменение
$after=(Get-Acl .\data).Sddl
Вопрос 17 из 25
Журнал содержит только сообщение «права изменены». Какое объяснение не зависит от случайностей окружения?
PowerShellЖурнал содержит только сообщение «права изменены»
[pscustomobject]@{Target=$path;Actor=[Environment]::UserName;Before=$before;After=$after;At=[datetimeoffset]::UtcNow}
Вопрос 18 из 25
Сценарий повторно применяет уже существующее правило. Что окажется в выходном потоке?
PowerShellСценарий повторно применяет уже существующее правило
$acl = Get-Acl .\reports
$rule = [Security.AccessControl.FileSystemAccessRule]::new('CONTOSO\Analysts','ReadAndExecute','ContainerInherit,ObjectInherit','None','Allow')
$exists = $acl.Access | Where-Object { $_.IdentityReference -eq $rule.IdentityReference -and $_.FileSystemRights -eq $rule.FileSystemRights -and $_.AccessControlType -eq $rule.AccessControlType }
if(-not $exists){ $acl.AddAccessRule($rule); Set-Acl .\reports $acl }
Вопрос 19 из 25
Аудит строится только по успешному stdout. Какой вариант точнее выражает контракт?
Вопрос 20 из 25
Журнал ACL доступен всем пользователям. Какое объяснение не зависит от случайностей окружения?
Вопрос 21 из 25
Пользователь состоит в группе, но доступ не работает. Какое утверждение верно для этого случая?
PowerShellПользователь состоит в группе, но доступ не работает
whoami /groups
(Get-Acl .\data).Access
Вопрос 22 из 25
ACL визуально одинаковы, а поведение различается. На каком правиле основан результат?
PowerShellACL визуально одинаковы, а поведение различается
$a=(Get-Acl $p1).Sddl;$b=(Get-Acl $p2).Sddl;Compare-Object $a $b
$valueType = if($null -eq $a){'<null>'}else{$a.GetType().FullName}
[pscustomobject]@{ Value=$a; Type=$valueType; Count=@($a).Count }
Вопрос 23 из 25
Сценарий не находит локальный модуль. Как исправить причину, а не только симптом?
PowerShellСценарий не находит локальный модуль
# Сценарий для ревью: Сценарий не находит локальный модуль.
$path = '.\incoming\data.csv'
$hashBefore = (Get-FileHash -LiteralPath $path).Hash
$rows = Import-Csv -LiteralPath $path
$hashAfter = (Get-FileHash -LiteralPath $path).Hash
[pscustomobject]@{ Rows=$rows.Count; Stable=($hashBefore -eq $hashAfter); Culture=[cultureinfo]::CurrentCulture.Name }
Вопрос 24 из 25
Изменение прав прошло без ошибки, но не дало нужного доступа. Какое объяснение не зависит от случайностей окружения?
Вопрос 25 из 25
Как расследовать массовую правку?

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

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

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

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