Следующий файл bat используется для исправления разрешений для пользователей в нашей организации. Все работает отлично, пока мы не попытаемся вернуть владельца пользователю.
takeown /F F:\Users\First.Last /R
icacls "F:\Users\First.Last" /grant:r system:(oi)(ci)f /t /c /Q
icacls "F:\Users\First.Last" /grant:r "Group admins":(oi)(ci)f /t /c /Q
icacls "F:\Users\First.Last" /grant:r "Domain admins":(oi)(ci)f /t /c /Q
icacls "F:\Users\First.Last" /grant:r "CREATOR OWNER":(OI)(CI)F /T /C /Q
icacls "F:\Users\First.Last" /grant:r First.Last:(oi)(ci)f /t /c /Q
icacls "F:\Users\First.Last" /remove:g "everyone" /T /C /Q
icacls "F:\Users\First.Last" /remove:g "administrators" /T /C /Q
icacls "F:\Users\First.Last" /remove Everyone /T /C /Q
icacls "F:\Users\First.Last" /setowner First.Last /c /t /Q
Вот строка, которая не работает в bat-файле. Он отлично работает при вводе его в командную строку:
icacls "F:\Users\First.Last" /setowner First.Last /c /t /Q
не работает в моем bat-файле.
Есть ли другой способ убрать себя?
Я применил исправление Fix201044 с веб-сайта Microsoft и получил тот же результат.
Мне удобно использовать VBScript, PowerShell, Bat.
Мне не нравится устанавливать стороннее программное обеспечение, требующее перезагрузки или бета-версии.
$HomeDir = "F:\Users\First.Last"
$objUser = New-Object System.Security.Principal.NTAccount "DOMAIN\first.last"
$ACL = Get-Acl -Path $HomeDir
$acl.SetOwner($objUser)
Set-ACL -Path $HomeDir -AclObject $ACL
Это должно установить право владения для вас, использующего Powershell. Я предполагаю, что это в среде домена