В среде 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
, и MyTarget это папка, для которой мне нужно посмотреть разрешения. Таким образом, полный путь будет \\FooBar\MainShare\SomeStuff\MyTarget
.
Общий ресурс и разрешения для общего ресурса устанавливаются на MainShare. Если вам нужны разрешения на общий доступ к \ FooBar \ MainShare \ SomeStuff \ MyTarget, вам придется создать новую точку общего доступа непосредственно в этой папке.