2017-11-14 4 views
0

私はPowershellの世界で初めてです。私は、UPS内のすべてのユーザーをループするのではなく、Powershellを使用してUPSから単一のユーザーデータを取得したいと考えています。 私はまたthisに続きました。ここでは、EmailとUPS Emailを比較し、UPS内の一致するEmailのプロファイルを取得しています。powershellを使用してUPSから単一のユーザプロファイルを取得する方法は?

Add-PSSnapin "Microsoft.SharePoint.PowerShell" 
$emailAddress = "EMAIL ADDRESS YOU WISH TO QUERY" 
$site = Get-SpSite $mySitesURL; 
$context = Get-SPServiceContext $site; 
$profileManager = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context) 
$allProfiles = $profileManager.GetEnumerator() 
foreach ($profile in $allProfiles) { 
    if ($profile.GetProfileValueCollection("WorkEmail") -eq $emailAddress) { 
     $profile 
    } 
} 

答えて

1

私はこれがあなたが探しているものだと思います。試してみてください:

Add-PSSnapin "Microsoft.SharePoint.PowerShell" 
$emailAddress = "EMAIL ADDRESS YOU WISH TO QUERY" 
$site = Get-SpSite $mySitesURL; 
$context = Get-SPServiceContext $site; 
$profileManager = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context) 
$userProfile = $profileManager.GetEnumerator()| Where-Object {$_["WorkEmail"].value -like $emailAddress} 

$emailAddressに基づいて1つのユーザーデータのみを取得します。 UPSの各ユーザプロファイルをループする必要はありません。

+0

これは機能しました。大変ありがとうございます。 – SMD

+0

問題はありません@SMD :) –

関連する問題