我正在尝试将整个2013农场中的所有网站集管理员都收藏起来。我有多个具有大量托管路径和子网站的Web应用程序。我找到了Brian Jacket的剧本,但我无法弄清楚如何枚举子网站和网站。
I am trying to get all of the site collection administrators in my entire 2013 farm. I have multiple web apps with a lot of managed paths and subsites. I found a script by Brian Jacket but I can't figure out how to enumerate sub-sites and webs.
$ siteURL = Get-spwebapplication< URL> | Get-SpSite -Limit All | Get-Spweb -Limit All $ rootSite = New-Object Microsoft.SharePoint.SPSite($ siteUrl) $ spWebApp = $ rootSite.WebApplication foreach($ spWebApp.Sites中的$ site) { foreach($ siteAdmin in $ site.RootWeb.SiteAdministrators) { Write-Host" $($ siteAdmin.ParentWeb.Url) - $($ siteAdmin.DisplayName)" } $ site.Dispose() } $ rootSite.Dispose()
$siteURL = Get-spwebapplication <URL> | Get-SpSite -Limit All | Get-Spweb -Limit All $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()
我得到错误消息无法找到重载(假设由于返回的站点数量),并且无法调用null值表达式上的方法。如果我不尝试枚举所有网站,即$ siteURL = Get-spsite< URL> ;.
I get error messages cannot find an overload (assuming due to number of sites returned), and cannot call a method on a null valued expression. It works if I don't try to enumerate all the sites, i.e.$siteURL = Get-spsite <URL>.
推荐答案
您好dresnick。
Hi dresnick.
PowerShell脚本可以通过这种方式简化
The PowerShell script can be simplified this way
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue #Get All Site CollectionsSiteCollections = Get-SPSite -Limit全部 Foreach( SiteCollections = Get-SPSite -Limit All Foreach(
中的网站>
更多推荐
需要SharePoint 2013中所有网站和网站的所有网站集管理员
发布评论