利用 PowerShell 分析SharePoint WebApplication 体系结构
之前一篇文章《两张图看清SharePoint 2013 Farm 逻辑体系结构》谈到Web Application,Content Database,Site Collection的关系。有了这个逻辑结构图之后,这篇文章将使用PowerShell,来更加直观的展现SharePoint WebApplication的体系结构。
SharePoint WebApplication Structure
- 从上图可以看出,一个WebApplication可以包含多个Content Database,可以使用PowerShell查看WebApplication包含的Content Databases。
Add-PSSnapin Microsoft.SharePoint.PowerShell #Get-SPWebApplication |Get-Member# Get-SPWebApplication | %{ Write-Host "`n -$($_.Url)"; foreach($cd in $_.ContentDatabases){ Write-Host "$($cd.Name)" } }
- 当然也可以获取更精确的数据,比如Content Database的Size
Add-PSSnapin Microsoft.SharePoint.PowerShell Get-SPWebApplication | %{Write-Output "`n -$($_.Url)";foreach($cd in $_.ContentDatabases){ $ContentDatabaseSize = [Math]::Round(($cd.disksizerequired/1GB),2) Write-Output "ContentName:$($cd.Name) `n Size:$($ContentDatabaseSize)G" }}
- 得到了Content Database之后,还可以继续深究,如得到Content Database中包含的Site Collection,同样可以一行PoweShell获取。
Add-PSSnapin Microsoft.SharePoint.PowerShell #Get-SPContentDatabase |Get-Member# Get-SPContentDatabase | %{Write-Output "`n -$($_.Name)";foreach($site in $_.Sites){Write-Output "$($site.Url)"}} >>c:\xx2.txt
- 当然还可以得到Site Collection的Size,方法同得到Content Database的Size一样,同样也是一行PowerShell实现。
Add-PSSnapin Microsoft.SharePoint.PowerShell Get-SPWebApplication |%{Write-Output "`n -$($_.Url)";$_.Sites | select url, @{label="Size in MB";Expression={[Math]::Round($_.usage.storage/1MB,2)}}|Sort-Object -Descending -Property "Size in MB"}>>c:\tt.txt