💡 Инструкция: Выберите один ответ из пяти. На 25 вопросов отведено 70 минут. В каждом вопросе верен только один вариант; близкие ответы различаются механизмом, порядком выполнения, областью действия или эксплуатационной границей. После завершения вы увидите общий результат, результаты по 5 тематическим шкалам и подробные объяснения.
Вопрос 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
Административный тест не показывает опыт целевого пользователя; эффективный доступ проверяют его токеном или специализированным API.
Эффективный доступ зависит от явных/унаследованных правил, групп и порядка обработки; простое наличие Allow не гарантирует доступ.
AddAccessRule добавляет правило, а Set-Acl применяет весь изменённый дескриптор; нужно сохранить наследование, тип Allow/Deny и область.
Защищённый ACL не наследует правила от родителя; при включении защиты нужно решить, сохранить существующие унаследованные правила как явные или удалить их.
Полная замена может перенести владельца и непредназначенные правила; чаще следует изменить конкретную часть или применить шаблон с явной политикой.
Вопрос 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 }
Нужно фиксировать завершившиеся и частично выполненные изменения, ошибки Set-Acl и последующую верификацию фактического ACL.
Идемпотентная логика сравнивает нормализованные правила и не создаёт дубликаты; повторный запуск должен давать «изменений нет».
Часто достаточно корректного ACL родителя и наследования; массовая запись медленнее, создаёт явные правила и усложняет откат.
SDDL даёт компактное точное представление владельца, группы, DACL и SACL; его удобно сравнивать и использовать для отката с контролем платформы.
Он раскрывает структуру системы и имена субъектов; доступ, срок хранения и целостность журнала должны быть защищены.
Вопрос 21 из 25
Пользователь состоит в группе, но доступ не работает. Какое утверждение верно для этого случая?
PowerShell Пользователь состоит в группе, но доступ не работает Копировать
whoami /groups
(Get-Acl .\data).Access
Собирают полный токен, deny rules, наследование, share permissions и время обновления токена; новое членство не всегда действует в уже открытом сеансе.
Строят временную линию из собственного журнала, Windows auditing и истории запуска, затем восстанавливают только подтверждённые цели.
Проверяют платформу, разрядность процесса и доступность Microsoft.PowerShell.LocalAccounts, а не предлагают импортировать несуществующий модуль.
После Set-Acl читают ACL заново и выполняют проверку от имени целевого субъекта; отсутствие исключения подтверждает запись, не эффект.
Эффективный доступ зависит от явных/унаследованных правил, групп и порядка обработки; простое наличие Allow не гарантирует доступ.
Вопрос 22 из 25
ACL визуально одинаковы, а поведение различается. На каком правиле основан результат?
PowerShell ACL визуально одинаковы, а поведение различается Копировать
$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 }
Собирают полный токен, deny rules, наследование, share permissions и время обновления токена; новое членство не всегда действует в уже открытом сеансе.
Сравнивают SDDL, владельца, protected flag, SID вместо отображаемых имён и разрешения общего ресурса.
SDDL даёт компактное точное представление владельца, группы, DACL и SACL; его удобно сравнивать и использовать для отката с контролем платформы.
Проверяют платформу, разрядность процесса и доступность Microsoft.PowerShell.LocalAccounts, а не предлагают импортировать несуществующий модуль.
Строят временную линию из собственного журнала, Windows auditing и истории запуска, затем восстанавливают только подтверждённые цели.
Вопрос 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 }
Строят временную линию из собственного журнала, Windows auditing и истории запуска, затем восстанавливают только подтверждённые цели.
Проверяют платформу, разрядность процесса и доступность Microsoft.PowerShell.LocalAccounts, а не предлагают импортировать несуществующий модуль.
Сравнивают SDDL, владельца, protected flag, SID вместо отображаемых имён и разрешения общего ресурса.
Собирают полный токен, deny rules, наследование, share permissions и время обновления токена; новое членство не всегда действует в уже открытом сеансе.
Microsoft.PowerShell.LocalAccounts управляет локальной SAM и недоступен в 32-разрядном PowerShell на 64-разрядной Windows и вне Windows.
Вопрос 24 из 25
Изменение прав прошло без ошибки, но не дало нужного доступа. Какое объяснение не зависит от случайностей окружения?
Строят временную линию из собственного журнала, Windows auditing и истории запуска, затем восстанавливают только подтверждённые цели.
Нужно фиксировать завершившиеся и частично выполненные изменения, ошибки Set-Acl и последующую верификацию фактического ACL.
Собирают полный токен, deny rules, наследование, share permissions и время обновления токена; новое членство не всегда действует в уже открытом сеансе.
После Set-Acl читают ACL заново и выполняют проверку от имени целевого субъекта; отсутствие исключения подтверждает запись, не эффект.
Сравнивают SDDL, владельца, protected flag, SID вместо отображаемых имён и разрешения общего ресурса.
Вопрос 25 из 25
Как расследовать массовую правку?
Собирают полный токен, deny rules, наследование, share permissions и время обновления токена; новое членство не всегда действует в уже открытом сеансе.
Для расследования нужны инициатор, цель, прежнее и новое правило, время, correlation id и результат проверки; при этом секреты не записывают.
Строят временную линию из собственного журнала, Windows auditing и истории запуска, затем восстанавливают только подтверждённые цели.
Сравнивают SDDL, владельца, protected flag, SID вместо отображаемых имён и разрешения общего ресурса.
После Set-Acl читают ACL заново и выполняют проверку от имени целевого субъекта; отсутствие исключения подтверждает запись, не эффект.