Em um servidor Windows & Ambiente do Active Directory, em que um compartilhamento de rede específico é compartilhado com apenas determinados usuários / grupos do AD. Existe uma maneira, usando o PowerShell, para descobrir quem leu permissões para esse compartilhamento? Tentei seguir as instruções em este post , mas recebe um erro, que é mostrado abaixo após o exemplo de código.
Aqui está o exemplo do código .ps1 que usei para tentar isto:
$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
Aqui está a mensagem de erro:
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
UPDATE: Pelo comentário abaixo, descobri que o compartilhamento que estou procurando é uma subpasta de um compartilhamento nomeado real, 2 níveis abaixo. Usando esta linha do PowerShell para encontrar os compartilhamentos nomeados do servidor:
Get-WmiObject -ComputerName "FooBar" -Class win32_LogicalShareSecuritySetting | select PATH
Então, por exemplo:
O nome do computador é FooBar
. Um dos muitos compartilhamentos listados é MainShare
. Sob essa pasta, vamos \SomeStuff\MyTarget
, e MyTarget é a pasta que eu preciso olhar para as permissões. Então, o caminho completo seria \FooBar\MainShare\SomeStuff\MyTarget
.