sharepoint powershell脚本

来源:互联网 发布:java开发实战经典 编辑:程序博客网 时间:2024/05/15 08:19

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-ObjecSecondaryContact

你可以将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-SPAssignmentStop-SPAssignment 命令来创建和释放存储区域。我们可以在PowerShell使用Get-Help Start-SPAssignment Get-Help Stop-SPAssignment 命令来查看它的描述信息和使用的方法。

0 0