2017-02-02 55 views
0

特定のユーザーがどのサイトコレクションに所属しているかを知ることができます。残念ながら、私のPowerShellの知識はまだ非常に限られています。SharePoint Online:ユーザーが所属するすべてのサイトコレクションを検索

これまで私がこれまでに思い付いたことはありますが、それは極端に遅く、結果を返せません。

Get-SPOSite | ForEach-Object {Get-SPOUser -Site https://contoso.sharepoint.com/ -Limit All | Where-Object {$_.LoginName -eq "[email protected]"}} 

残念ながら、出力は、問題のユーザーがメンバーであるユーザー(名前、ログイン名、グループを表示)していない別のサイトコレクションを示しています。

私は、コマンドレットが交換する必要があることを感じ、すなわち

Get-SPOUser -site https://contoso.sharepoint.com/ | ForEach-Object {Get-SPOSite -Limit All | Where-Object {$_.LoginName -eq "[email protected]"}} 

ただし、このコマンドを実行するが、doesnの `t終了またはエラーメッセージを与えることがあります。

ご協力いただきありがとうございます。

答えて

0

-Limit Allをコールすると、サイトのすべてのユーザーが返されます。 (潜在的に大量の)ユーザーの集まりを取得し、それをフィルタリングして1人のユーザーを取得する代わりに、-LoginNameパラメータを指定して、最初に1人のユーザーを手術で検索してみませんか?

Get-SPOUser -Site https://contoso.sharepoint.com -LoginName "[email protected]" 

これははるかに速くなければなりません。

代わりに、手動でそれを-Siteパラメータを送り、あなたがパイプGet-SPOSiteからのfor-eachループに結果をすることができますし、$_トークンを介してサイトにアクセスし、すべてのサイトコレクション全体にそのチェックを実行します。

get-sposite | %{ $user = get-spouser -site $_ -loginName "[email protected]"; if($user.Groups.Count -gt 0){write-output $_.url ":" $user.Groups} } 

%{ }ForEach-Object{ }の略記の別名であることに留意されたい。)

上記のコードの出力が最も美しくフォーマットされていません。たとえば、ユーザーが複数のグループのメンバー(グループ1とグループ2と呼ばせてください)の場合、それらは同じ行に表示され、その間にスペースは入れません。

どうもありがとうございました、

site      groups 
----      ------ 
https://contoso.com  {Site Members} 
https://contoso.com/site {Group One, Group Two} 
+0

こんにちは:あなたはこのような結果を与える必要があります

$arr = @(); get-sposite | %{ $user = get-spouser -site $_ -loginName "[email protected]"; if($user.Groups.Count -gt 0){ $arr += new-object psobject -property @{site=$_.url; groups=$user.Groups} } }; $arr 

:クリーンな代替としてhttps://contoso.sharepoint.com/site : Group OneGroupTwo

は、PowerShellのの配列に結果を格納考えることはそうのようなオブジェクト。これは非常に役に立ち、私は何が起こっているのかほとんどを理解することができます。 ForEach-Objectループを使用することで、私が得た出力は、ユーザーがメンバーではないすべてのサイトコレクションに対してもエラーメッセージになることに気付きました。私はそれが走った、エラーメッセージのトンを取得し、最後に私は希望の出力を受け取った。さらに、より多くの結果が見つかったものの、返されなかったという。すべての可能な結果を​​返すには、 '-Limit ALL'を使用します。 希望する結果のみを表示する方法はありますか? ありがとう! –

関連する問題