在 Windows Server 和 Active Directory 环境中,特定网络共享仅与某些 AD 用户/组共享。有没有办法使用 PowerShell 找出谁对此共享具有读取权限?我尝试按照这个帖子,但收到错误,如下面的代码示例后所示。
下面是我用来尝试此操作的示例 .ps1 代码:
$cred = Get-Credential -Credential mydomain\myself
$share = "MyTarget"
$cn = "FooBar"
$query = "Associators of {win32_LogicalShareSecuritySetting='$share'}
Where resultclass = win32_sid"
Get-WmiObject -query $query -cn $cn -cred $cred |
Select-Object -Property @{LABEL="User";EXPRESSION=
{"{0}\{1}" -f $_.ReferencedDomainName, $_.AccountName}}, SID
错误信息如下:
Get-WmiObject : Not found
At line:8 char:1
+ Get-WmiObject -query $query -cn $cn -cred $cred |
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Get-WmiObject], ManagementException
+ FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
更新:根据下面的评论,我发现我正在寻找的共享是子夾实际命名共享,向下 2 层。使用 PowerShell 的这一行查找该服务器的命名共享:
Get-WmiObject -ComputerName "FooBar" -Class win32_LogicalShareSecuritySetting | select PATH
例如:计算机名称为FooBar
。列出的众多共享之一是MainShare
。在该文件夹下,我们转到\SomeStuff\MyTarget
,然后我的目标是我需要查看其权限的文件夹。因此完整路径应该是\\FooBar\MainShare\SomeStuff\MyTarget
。
答案1
共享和共享权限在 MainShare 上设置。如果您想要在 \FooBar\MainShare\SomeStuff\MyTarget 上共享权限,那么您必须直接在该文件夹中创建一个新的共享点