2016-09-01 10 views
0

ファイルサーバーで共有を確認するスクリプトを作成していて、アクセス制御の種類(許可/拒否)と共有に対する権限を持つユーザーをリストする必要があります。私は、必要なデータを持つオブジェクトのコレクションを作成することに成功しましたが、私は必要な方法でそれらをフォーマットする際に問題があります。       アイデンティティアクセス
SHARE1   User1が     許可パス コレクション内でADグループを展開する

よう

現在の状況は、コレクションがどのように見えるか         フルコントロール
SHARE1  グループ1            フルコントロール
SHARE2  グループ1は           フルコントロール
SHARE2  グループ2            変更が

私はと元気です許可を拒否許可シェアを持つオブジェクトごとに1つのID(ユーザーまたはグループ)を持つ複数のオブジェクトに表示されますが、パイプ内の$_.Identityがグループである場合、そのメンバーでグループを拡張したいと考えています。しかし、私は問題がある

私のコード例では、私はちょうどそれがアイデンティティをGet-ADGroupMemberで使用できるかどうパイプ内のすべてのオブジェクトをチェックしようとした、実質的に非既存のですが、それはそれは

$Collection | ForEachObject { if (Get-ADGroupMember $_.Identity) {Get-ADGroupMember $_.Identity }} ... 

理想の解決策があるべきだなっていこのような:

パス       アイデンティティ                   アクセス
SHARE1   User1の                                 フルコントロールを許可する
SHARE1  のUser1、User2の  A   LLOW        フルコントロール
SHARE2  のUser1、User2の           フルコントロールを拒否
SHARE2  ユーザ2、ユーザ3  この試験例では         変更

を許可し、Group1User1とで構成されていますであり、Group2User2,User3である。

何か助けていただければ幸いです。

+1

が質問に答えるが、提案をしないように。ネストされたユーザーだけでなく出力にもグループ名を保持する必要があります。そうすればメンバーシップがどこから来ているのか分かります。 – Matt

答えて

1

私は私は何だろうが、このようなパイプラインに値を生成することであると思う:

$Collection | Select Path,@{l='Identity';e={ if (Get-ADGroupMember $_.Identity) {(Get-ADGroupMember $_.Identity) -join ", "}else{$_.Identity}}},Access,Rights 
+0

時々あなたはどこからも飛び出すことができます。 – Matt

+0

私はこれを試してみましたが、LDAP CNでグループを展開しますが、ユーザでなければならないフィールドは空白のままにしています。なぜなら、 'else'が明らかにパイプからIdentity – Rookie

0

私は非常によく似たスクリプトに取り組んでいました。私のコードであなたを退屈させるのではなく、ネストされたグループを整理する際の助けとなったところです。

Sort Nested Groups

基本的に、あなたはすべてのグループメンバーを取得し、各項目をテストするための関数を作成します。グループの場合は、同じ関数を呼び出し、新しく見つかったグループ名を渡します。

について:

$_.identity 

私がget-adgroupmember結果は、ユーザーまたはグループであるかどうかを教えてくれます

$_.objectclass 

を使用。これは、ユーザーにエラーになりますが、私はちょうどおそらくベストプラクティスではありませんが、それは私の作品

$erroractionpreference = "silentlycontinue" 

と、実行時にエラーを抑制する。

これを円形のネストでテストしましたが、無限ループで固まってしまうことはありません。個々の結果を一度だけ返すことで、実際には完全に処理されました。おそらく、窓の中に組み込まれた安全な巣箱のためのセーフガードと関係しているでしょう。

ここでの情報の一部は、同様に役に立つかもしれません:

Circular Nesting Consequences - ServerFault

関連する問題