我正在尝试通过Powershell更改文件的权限,并且在弄清楚如何使其正常工作时遇到了麻烦。
$path1 = "\\somepath1\somefile1"
$path2 = "\\somepath2\somefile2"
$acl = Get-Acl $path1
$access_rule = New-Object System.Security.AccessControl.FileSystemAccessRule("User","Write","ContainerInherit,ObjectInherit","None","Deny")
$acl.SetAccessRule($access_rule)
$acl | Set-Acl $path2
"User"
是许多用户中指定的用户组,在实际代码中被称为不同的用户。这将引发两个错误:
以“ 1”作为参数调用“ SetAccessRule”的异常:无法转换某些或所有标识引用。”
Set-Acl:无法翻译某些或所有身份参考。
然后,我尝试简化代码,本质上是尝试将一个文件的权限复制到另一个文件:
$path1 = "\\somepath1\somefile1"
$path2 = "\\somepath2\somefile2"
Get-Acl -Path $path1 | Set-Acl -Path $path2
即使这会引发错误:
Set-Acl:无法翻译某些或所有身份参考。
如果我正确理解了这些错误,则说明我的"User"
定义不正确。我尝试通过运行"User"
cmdlet来获取Get-ADUser
信息,但是不能安装ActiveDirectory模块,因为我收到此错误:
Get-ADUser:术语“ Get-AdUser”未被识别为cmdlet的名称,.........
我现在的主要问题是,如何获取用户SID信息以正确更改文件的权限?我在某处错过了一步吗?有没有更好的方法来更改文件权限?我什至可以尝试更改组的权限吗?我碰壁了,想找到解决办法,大声笑。
我查看了以下资源以寻求帮助: