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