Я пытаюсь изменить права доступа к файлам удаленных компьютеров с помощью локальных пользователей и групп этих компьютеров.
$IDR = New-Object System.Security.Principal.NTAccount( 'RemoteServer\testaccount' )
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule(
$IDR,
'FullControl',
'ContainerInherit, ObjectInherit',
'None',
'Allow'
)
$Item = (Get-Item \\RemoteServer\share\folder\folder\file)
$ACL = $Item.GetAccessControl()
$ACL.AddAccessRule($AccessRule)
$Item.SetAccessControl($ACL)
Вывод: исключение, вызывающее «AddAccessRule» с аргументом (ами) «1»: «Некоторые или все ссылки на идентификаторы не могут быть переведены.»
Я понимаю, что это означает, что он не может найти 'Computer \ testaccount', который я ищу. Я могу изменять права доступа к удаленным файлам с помощью пользователей и групп Builtin * (например: Builtin \ Administrators), но не с созданными учетными записями.
testaccount существует на RemoteServer.
\\ RemoteServer \ testaccount не работает
Встроенный \ testaccount не работает
Local \ testaccount не работает
testaccount не работает
Я могу удаленно удалить локальную учетную запись из прав доступа к локальному файлу примерно таким же образом.
Есть ли способ добавить не встроенные локальные пользователи и группы RemoteServer в разрешения локального файла RemoteServer с моей локальной рабочей станции?
OR
Как устранить ошибку, упомянутую выше?
Обходной путь Редактировать:
Мне не хотелось этого делать, но я смог запустить сеанс PowerShell с Win32_Process со всеми данными для применения разрешений. Оно работает. Но это не идеально, потому что оно не будет работать в системах, которые не могут принимать WMI. Я все еще хотел бы знать, возможно ли исправить мою первоначальную проблему без этого неуклюжего обходного пути.