簡體   English   中英

從 SharePoint 和 PowerShell 獲取用戶詳細信息

[英]Get user details from SharePoint with PowerShell

我正在使用這個 PowerShell 腳本來獲取網站所有者:

$siteUrl = Read-Host "enter site url here:"

$rootSite = New-Object Microsoft.SharePoint.SPSite($siteUrl)

$spWebApp = $rootSite.WebApplication

foreach($site in $spWebApp.Sites)

{

    foreach($siteAdmin in $site.RootWeb.SiteAdministrators)

    {

        Write-Host "$($siteAdmin.ParentWeb.Url) - $($siteAdmin.DisplayName)"

    }

    $site.Dispose()
}

$rootSite.Dispose()

我希望它會打印網站所有者的一些詳細信息,例如電話號碼和 email。 我怎樣才能做到這一點?

我認為你有兩個選擇。 訪問SPUser屬性或從活動目錄中獲取信息。

在第一種情況下,您是否無法像對DisplayName那樣訪問屬性? 我的意思是,如果您有一個SPUser object 來獲得 email,只需使用:

 write-output "$($siteAdmin.Email)"

有關從活動目錄獲取用戶屬性的信息,您可以輕松實施以下問題中提供的解決方案。 它對我來說很好。

希望這可以幫助


編輯改進

站在 MS 文檔中,您有一些可用的屬性,請參閱SUSer Members 例如,您沒有phone

要從活動目錄中獲取某些內容,請嘗試更改以下 function 以便它返回您需要的屬性(在 windows 2k8 服務器上測試):

function Get-AD-Data {
    $strFilter = "(&(objectCategory=User))"
    $objDomain = New-Object System.DirectoryServices.DirectoryEntry
    $objSearcher = New-Object System.DirectoryServices.DirectorySearcher
    $objSearcher.SearchRoot = $objDomain
    $objSearcher.PageSize = 1000
    $objSearcher.Filter = $strFilter
    $objSearcher.SearchScope = "Subtree"
    $objSearcher.FindAll() | select @{L="User";E={$_.properties.displayname}},
    @{L="Department";E={$_.properties.department}},
    @{L="MemberOf";E={$_.properties.memberof}}    
}

此 function 從 AD 返回所有用戶以及選定的屬性。 要從特定用戶那里獲取信息,您將使用(我猜):

$ad_userdetails = Get-AD-Data | ? {$_.user -eq $siteAdmin.Name}

干杯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM