sharepoint powershell腳本

Windows PowerShell 是一個可供管理員完全訪問適用的應用程序編程接口 (API) 的命令行腳本工具,並且對於直接與 SharePoint 2010 產品交互以對 Web 應用程序、網站集、網站、列表等進行操作的功能,能夠解除鎖定。另外,管理員可以編寫 cmdlet(發音爲“command-let”)的腳本,從而改善之前產品版本的體驗。

Windows PowerShell 2.0 是安裝 SharePoint 2010 產品的必備軟件。如有必要,您在運行 Microsoft SharePoint 產品準備工具時就會安裝它。默認情況下,Windows PowerShell 位於以下路徑:<%SystemRoot%>/System32/WindowsPowerShell/v1.0/PowerShell.exe

訪問 SharePoint 2010 產品的 Windows PowerShell

完成 SharePoint 2010 產品安裝後,適用的 Windows PowerShell cmdlet 可通過 SharePoint 2010 Management Shell Windows PowerShell 控制檯訪問。通過命令行管理程序,您可以管理 SharePoint 2010 產品的所有方面。您可以創建新的網站集、Web 應用程序、用戶帳戶、服務應用程序、代理等。來自命令行管理程序的命令將基於 Microsoft .NET 平臺輸出 SharePoint 對象。這些對象可用作後續命令的輸入對象,或者存儲在本地變量中供以後使用。

使用命令行管理程序,您不必註冊包含 cmdlet 的管理單元。註冊適用於 SharePoint 2010 cmdlet Microsoft.SharePoint.PowerShell.dll 模塊是自動完成的,由位於%CommonProgramFiles%/Microsoft Shared/Web Server Extensions/14/Config/PowerShell/Registration 下的 SharePoint.ps1 文件中的Add-PSSnapin Microsoft.SharePoint.PowerShell行執行。如果選擇使用 Windows PowerShell 控制檯,則必須手動註冊管理單元。

 

$ver=$host|selectversion
if($ver.Version.Major-gt1){$Host.Runspace.ThreadOptions= "ReuseThread"}
Add-PsSnapinMicrosoft.SharePoint.PowerShell
Set-location$home

 

以上命令式將SharePoint的管理命令註冊到Windows PowerShell中。

 

SharePoint 2010 命令

SharePoint 2010 PowerShell管理單元中包含500條以上的命令,你可以用它來完成很多管理任務。我們可以通過Get-Command獲取到的命令列表。單GetCommand獲取到是所有的Windows PowerShell的所有基礎命令,例如:功能,別名,過濾器,腳本和應用程序。在所有的命令中開頭字母爲SP的是SharePoint所應用的命令。如果要知道SharePoint命令有那些,我們可以通過以下的命令獲取到。

 

PS>Get-Command-nounSP*

 

下圖中標示的就是利用命令獲取到的命令信息。

如果使用SP*這樣的命令獲取到的信息,非常的多。我們可以在細化以下我們的命令。例如使用 SPSite

 

PS>Get-Command-NounSPSite

 

獲取到結果:

 

 

使用SharePoint PowerShell 命令

讓我們來看一下 Get-SPSite 命令是如何使用,嘗試在SharePoint PowerShell使用這個命令,看一下命令返回的信息。

 

PS>Get-SPSite
Url
---
http://spservername

 

這個命令會返回所有網站集的Url,但如果我們需要了解單獨一個網站集的更多的信息,該如何做呢。

我們可以利用Select-Object命令來顯示額外的屬性信息。例如:我們可以使用 –Identity 來指定一個網站集的名稱,然後利用 Select-Object 來獲取這個網站集的一些信息

 

PS>Get-SPSite-Identityhttp://localhost|Select-Object-PropertyUrl,Zone,Port


當然我也可以通過命令來改變網站集的一些特定屬性,首先讓我們來學習如何利用Set-SPSite命令向網站集中添加網站集的第二管理員。

 

PS>Get-SPSite-Identityhttp://SPServer|Set-SPSite-SecondaryOwnerAliasdomain/user

 

如果我們再一次使用Select-Object命令就可以來顯是SecondaryContact這個屬性信息。讓我們領用這個命令來查看一下剛剛添加的第二管理員的名字。

 

PS>Get-SPSite-Identityhttp://localhost  |Select-Objec SecondaryContact

你可以將 SPSite 作爲一個對象保存在一個變量中,例如:

 

PS>$spSite=Get-SPSite-Identityhttp://SPServer

 

這樣我們就可以向這個變量中添加它的第二管理員了,我們也可以通Microsoft.SharePoint.SPUser 來返回一個網站中已有的用戶來做爲網站集的第二管理員,我們可以使用一下的命令:

PS>$spSite=Get-SPSite-Identityhttp://SPServer
PS>$spSite.SecondaryContact=(Get-SPUser-Webhttp://SPServer-Identitydomain/user)

 

如果我們需要添加一個在AD中的用戶,但並不在網站集中的用戶,成爲網站集的第二管理員。我們需要先通過New-SPUser命令添加一個用戶到網站集中,在利用命令將其添加爲網站第二管理員。

 

PS>$spUser=New-SPUser-Webhttp://SPServer-UserAliasdomain/newuser
PS>$spSite.SecondaryContact=$spUser

 

當我們在PowerShell中初始化了一個對象的時候,就一定要使用Dispose()方法來釋放這個內存空間。

 

PS>$spSite.Dispose()

 

爲什麼我們要在使用Dispose()命令呢?因爲,類似SPWebSPSiteSPSiteAdministration對象使用時能佔用大量的內存資源,所以我們利用PowerShell命令可以有效的降低內存的佔用。在通常情況下,我們通過使用命令Get-SPSite來初始化一個對象,在調用結束以後會自動的釋放資源。但這是這樣不會將對象保存在一個變量中。在初始化一個對象時,我們可以使用Dispose()方法來釋放內存,也可以使用Start-SPAssignment Stop-SPAssignment 命令來創建和釋放存儲區域。我們可以在PowerShell 使用 Get-Help Start-SPAssignment Get-Help Stop-SPAssignment 命令來查看它的描述信息和使用的方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章