共有リソースには次の命名規則があります。
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
最初にグループ メンバーシップを確認するたびに AD に移動するのを避けるために、各グループのメンバーを配列に格納したいと考えています。
$sharegroupmembers = @{}
foreach ($group in $sharegroups)
{
$sharegroupmembers[$group.name] = Get-ADGroupMember $group.name -Recursive | select name
}
その後、グループメンバーシップに基づいて、共有を列に、ユーザーを行に、RW / RO / NAを値に正しく投影する方法に行き詰まっています