2014-12-30 30 views
0

我在这里看到了一些与格式化get-acl输出有关的代码,因为从它的外观来看,不建议用一个问题来回答我开始一个新线程。 我有几个AD组嵌套在一些本地安全组中,其中包括tom和dom。我想扩大当地人向我展示他们的会员团体。我不关心组内的用户。有人可以提出一种做法吗? 我想用GET-CimInstance,但是这似乎是通过给一组特定的名称,其中在我的情况下,我宁愿用什么从我走到这一步,Get-ACL和嵌套组

$folders = dir c:\drv -recurse | where {$_.psiscontainer -eq $true} 
$folders | 
foreach-object{ 
Get-Acl | Select-Object -ExpandProperty Access | where {$_.identityreference -match "tom|dom"} | 
    Select-Object @{n="object";e={ $folder.fullname }}, 
    @{n="security_principal";e={ $_.identityreference }}, 
    @{n="type";e={ $_.accesscontroltype }}, 
    @{n="rights";e={ $_.filesystemrights }} 
} | ft -AutoSize 

因此,最好回来进行筛选如果security_principal出现的情况被分解为我的组的成员,并且如果仅显示包含某些通配符的成员组,则更好。在代码运行的其余部分运行之前,获取2个组和列出其成员可能会更容易,但是我再次遇到使用get-CimInstance并且不知道其他方式的问题。

+0

一种不同的方法(基于另一个线程)让我更接近我所需要的 – yaro137

+0

'设置位置c:\ DRV GET-ChildItem * -Recurse $文件夹= GET-ChildItem -recurse | {$ _。psiscontainer -eq $ true} foreach($文件夹位于$文件夹中){ $ folder.FullName $ acl = Get-Acl $ folder.FullName $ acl | Select-Object -ExpandProperty Access |其中{$ _。identityreference-like“* Adm *”} | Select-Object @ {n =“object”; e = {$ folder.fullname}}, @ {n =“security_principal”; e = {$ _。identityreference}}, @ {n =“type”; e = {$ _。accesscontroltype}}, @ {n =“rights”; e = {$ _。filesystemrights.tostring()}} fl | Out-file c:\ test.txt -Append }' – yaro137

+0

对不起,格式不正确。 '代码'本来是要做的... – yaro137

回答

0

您可以使用Powershell和ADSI查看本地组成员身份。

$Server = 'server1' 
$LocalGroup = 'Administrators' 
$Group= [ADSI]"WinNT://$Server/$LocalGroup,group" 
$Members = @($Group.psbase.Invoke("Members")) 
Foreach($Member in $Members){ 
    $Member.GetType().InvokeMember("Name", 'GetProperty', $null, $Member, $null) 
} 
+0

谢谢阿德里安。麻烦的是,我不知道我是否在结果中获得本地或域组。另一个我必须明确地通过我的本地组名,他们就像8个长队,因此是通配符。有没有办法对$ LocalGroup使用相同的通配符?我使用 '$ group = Get-CimInstance -ClassName Win32_Group -Filter“Name'='Administrators'” 'Get-CimAssociatedInstance -InputObject $ group -ResultClassName'Win32_Group | 'select -ExpandProperty Caption' 上面的过程需要很长时间,但是在结果中给出了一个结论,表明一个组是否是本地域。 – yaro137

+0

刚刚注意到一些令人费解的事情。 get-acl脚本在我的笔记本电脑PS 2.0上工作正常,但是在与PS4.0不同的机器上运行时,即使从单行运行,它也不会显示任何内容。任何想法? – yaro137

+0

@ yaro137也许你可以在这里找到Hal Rottenberg的剧本(http://poshcode.org/544)。 –