利用 PowerShell 分析SharePoint WebApplication 体系结构

2018-01-11 15:53:24 浏览数 (1)

之前一篇文章《两张图看清SharePoint 2013 Farm 逻辑体系结构》谈到Web Application,Content Database,Site Collection的关系。有了这个逻辑结构图之后,这篇文章将使用PowerShell,来更加直观的展现SharePoint WebApplication的体系结构。

SharePoint WebApplication Structure

  • 从上图可以看出,一个WebApplication可以包含多个Content Database,可以使用PowerShell查看WebApplication包含的Content Databases。
代码语言:javascript复制
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
代码语言:javascript复制
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获取。
代码语言:javascript复制
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实现。
代码语言:javascript复制
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

0 人点赞