我们对共享资源有以下命名约定:
sg_ShareName1_RO
sg_ShareName1_RW
sg_ShareName2_RO
sg_ShareName2_RW
我想在 Excel/csv 中获得以下格式的报告:
ShareName1 ShareName2 ...
User1 RW NA
User2 NA RO
我正在努力将共享名称输出到 csv 文件中的行而不是列。这是我已经完成的代码:
$users = GetADUser - filter {name like '*'} | sort name | select name
$sharegroups = Get-AdGroup -filter {name like 'sg_*'} | sort name
$shares = Get-AdGroup -filter {name like 'sg_*'} | sort name | foreach {$_} | select @{N='Share Name'; E={$_.Name.Replace('sg_', '').Replace('_', '').Replace('RO','').Replace('RW','')}} -Unique
Tnen 为了避免每次都去 AD 以首先检查组成员身份,我想将每个组的成员存储在数组中
$sharegroupmembers = @{}
foreach ($group in $sharegroups)
{
$sharegroupmembers[$group.name] = Get-ADGroupMember $group.name -Recursive | select name
}
之后,我坚持如何根据组成员身份将共享正确投影到列、用户到行以及 RW/RO/NA 到值