我是power shell的初学者,我想找到一种方法来显示所有共享文件夹的目录以及它们的共享访问控制列表和“目录访问控制列表”。我尝试对共享文件夹使用净共享,但我不知道如何使用其中提到的目录用于“获取访问控制列表”。而使用“获取访问控制列表”,如何显示每个用户的访问权限,例如谁拥有完全访问权限或只需写入或删除权限等。我正在尝试复制Microsoft基线安全分析器的结果。
发布于 2020-06-04 08:55:36
请始终共享您的当前代码,以便我们可以帮助您更容易。
但是因为你是新来的,我会给你写一些。)有一个用于这个目的的cmdlet,称为Get-SmbShareAccess
for示例,如果您运行:Get-SmbShareAccess -Name C$
,您将得到返回(在我的例子中):
Name ScopeName AccountName AccessControlType AccessRight
---- --------- ----------- ----------------- -----------
C$ * BUILTIN\Administrators Allow Full
C$ * BUILTIN\Backup Operators Allow Full
C$ * NT AUTHORITY\INTERACTIVE Allow Full
然后,如果需要,可以使用Select-Object
筛选属性,例如从输出中删除ScopeName参数。
然后,如果您想查看多个共享,可以使用Foreach
循环它。
$shares = Get-SMBShare
Foreach($share in $shares){Get-SmbShareAccess -Name $share.Name}
Get-SMBShare
列出正在运行脚本的机器上的所有共享。
如果您想更进一步查看多台服务器上的共享,可以使用Invoke-Command
,但这是一个更大的步骤。
希望这能让你走上正确的方向。
https://stackoverflow.com/questions/62184679
复制相似问题