Для конкретного требования мне нужно назначить разрешения для "Старков" для C: и C: \ Windows C: \ Windows \ System32 и нескольких других папок, специфичных для Windows, на машине Win7, не изменяя существующие разрешения для других.
Пользователь, которого я вошел в систему, не имеет соответствующих разрешений для выполнения приведенной ниже команды в сценарии.
icacls.exe "% SystemRoot% \ System32" / T / grant "Starks: (OI) (CI) RX"
так что я запустил (из скрипта)
takeown / f c: \ Windows \ System32 / r / d y
icacls.exe "% SystemRoot% \ System32" / T / grant "Starks: (OI) (CI) RX"
который работает, как ожидалось, и я вижу, что у Старков есть желаемые разрешения. Проблема в том, что я не могу понять, как восстановить первоначальную собственность? Я знаю, что тот же прием должен помочь, но если это командный файл, запускаемый удаленно, тогда
Заранее спасибо.
Итак, я понял (после обсуждения с MS), что нет конкретного способа узнать, кто является первоначальным владельцем, если только вы не поддерживаете единообразное владение.
Чтобы стать владельцем, используйте cmd / c icacls "c: *" / setowner UserName / t / c / q.
Для назначения разрешений (не работает для / Windows и вложенных папок) напр. icacls.exe "% SystemDrive%" / T / grant "Starks: (OI) (CI) RX" / t / c / q
Возврат собственности невозможен, если отсутствует единая собственность, как указано выше. Но если это так, то указанной выше команды будет достаточно.
Надеюсь, это поможет любому, кто сталкивается с той же проблемой. Мир.