近年有个体系必要在在windows陈设中利用powershell脚本备份sharepoint2009网站集,打开sharepoint的powershell执行命令管理界面包车型大巴习性

XML 1

XML 2

查看:

C:\Windows\System32\WindowsPowerShell\v1.0\PowerShell.exe
-NoExit ” & ‘ C:\Program Files\Common Files\Microsoft Shared\Web
Server
Extensions\14\CONFIG\POWERSHELL\Registration\\sharepoint.ps1 ‘

 

先看看PowerShell.exe
的帮助

PowerShell.exe 控制台扶助从另一工具(如 Cmd.exe)的命令行运营 Windows PowerShell。 语法
PowerShell[.exe] [-PSConsoleFile <file> | -Version
<version>] [-EncodedCommand <Base64EncodedCommand>]
[-ExecutionPolicy <ExecutionPolicy>] [-File <filePath>
<args>] [-InputFormat {Text | XML}] [-NoExit] [-NoLogo]
[-NonInteractive] [-NoProfile] [-OutputFormat {Text | XML}]
[-Sta] [-WindowStyle <style>] [-Command { – |
<script-block> [-args <arg-array>] | <string> [<CommandParameters>]
} ] PowerShell[.exe] -Help | -? | /? 参数 -EncodedCommand 接受命令的
Base 64 编码字符串版本。使用此参数可向 Windows PowerShell
提交需求复杂引号或大括号的通令。 -ExecutionPolicy
设置会话的默许执行策略。此参数不会变动在注册表中装置的 Windows
PowerShell 执行政策。 -File
运营钦定的脚本。请输入脚本文件路径和一部分参数。 -InputFormat 描述发送至
Windows PowerShell 的数量格式。有效值为”Text”(文本字符串)或”XML”(系列化 CLIXML 格式)。 -NoExit
运维完运维命令后不脱离。 -NoLogo 运转时隐藏版权标志。 -NonInteractive
不向用户体现交互式提醒。 -NoProfile 不加载 Windows PowerShell 配置文件。
-OutputFormat 明确 Windows PowerShell 的输出格式。有效值为”Text”(文本字符串)或”XML”(种类化 CLIXML 格式)。
-PSConsoleFile 加载钦定的 Windows PowerShell
控制台文件。若要成立控制台文件,请使用 Windows PowerShell 中的
Export-Console cmdlet。 -Sta 使用单线程单元运营 shell。 -Version 启动Windows PowerShell 的钦点版本。请随该参数输入多个版本号,例如”-version 1.0″。 -WindowStyle
将窗口样式设置为 Normal、Minimized、马克西姆ized 或 Hidden。 -Command
遵照执行在 Windows PowerShell
命令提示符下键入的授命那样,执行钦命的吩咐和有着参数;要是未钦命NoExit,则进行完命令后将退出。Command 的值能够是”-“、字符串或脚本块。 倘使 Command
的值为”-“,则从正式输入中读取命令文本。
脚本块必须括在大括号 ({}) 中。惟有在 Windows PowerShell 中运作
PowerShell.exe 时才能钦命脚本块。脚本的运行结果将作为反类别化 XML
对象(而非活动指标)再次回到父 shell。 若是 Command 的值为字符串,则 Command
必须是该命令的末尾3个试样参数,因为其后键入的保有字符都会被演讲为它的实际参数。
若要编写运营 Windows PowerShell 命令的字符串,请使用以下格式: “& {<command>}”
在那之中,引号提醒三个字符串,调用运算符 (&) 用于执行命令。 -Help, -?, /?
显示此音讯。假如要在 Windows PowerShell 中键入 PowerShell.exe
命令,请将连字符 (-) 作为命令参数的前缀,而毫不采用正斜杠 (/)。在
Cmd.exe 中,既可以应用连字符,也能够利用正斜杠。 示例 PowerShell -PSConsoleFile
sqlsnapin.psc1 PowerShell -version 1.0 -NoLogo -InputFormat text
-OutputFormat XML PowerShell -Command {Get-伊夫ntLog -LogName security}
PowerShell -Command “& {Get-EventLog
-LogName security}” # To use the -EncodedCommand parameter:
$command = “dir ‘c:\program files’
” $bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
$encodedCommand = [Convert]::ToBase64String($bytes) powershell.exe
-encodedCommand $encodedCommand

 

明白如上消息。我们来编排用powershell备份网站集的本子。代码如下:

 

#//*************************************************************
#//编辑人:XXX
#//编辑单位:XXX
#//编辑作用:备份所有站点,按照周1到周日创建7个文件夹
#//编制时间:2013.08.26
#//*************************************************************
#**************************************************默认C#盘下,需要改动如下参数
$Location = "d:\"
#网站集URL
$siteUrl=http://XX.XXX.com
#**************************************************
#根目录名称
$RootName="EPBackUp"
#子文件夹
$folderName = (Get-Date).DayOfWeek
#全路径
$folderPath = $Location + "\" + $RootName
#如果根文件夹不存在。则创建根文件夹
If((Test-Path $Location) -eq $False) {
    Write-Host "开始创建根文件夹...---------------"
    New-Item -path $Location -name $RootName -itemType "directory"
    Write-Host "创建根文件夹完毕...---------------"
}


#如果星期文件夹不存在,则创建星期文件夹
$weekPath =$folderPath + "\" + $folderName
If((Test-Path $weekPath) -eq $False) {
    Write-Host "正在创建周期文件夹......."
    New-Item -path $folderPath -name $folderName -itemType "directory"
    Write-Host "创建周期文件夹完毕...---------------"
}


#******************************************************************
#添加如下2行代码为windows计划执行使用,否则windows计划无法执行ps1
$MySnapin="Microsoft.SharePoint.PowerShell"
if ( (Get-PSSnapin -Name $MySnapin -ErrorAction SilentlyContinue) -eq $null )
{
    Write-Host "正在导入sharepoint的commandlet...---------------"
    Add-PSSnapin $MySnapin
    Set-ExecutionPolicy -ExecutionPolicy "Unrestricted" -Force
    Write-Host "导入的sharepoint的commandlet完毕...---------------"
}
#******************************************************************
#整个文件夹全路径
$BackupFilePath = $folderPath + "\" + $folderName

#公司门户文件夹
$epName = $BackupFilePath + "\SPSite_EP.bak"
Write-Host "开始备份公司门户...---------------"
backup-SPSite $siteUrl -Path $epName -force
Write-Host "备份公司门户完毕...---------------"

#学习与发展门户文件夹
$KMSiteUrl = $siteUrl +"/km"
$KMName = $BackupFilePath + "\SPSite_KM.bak"
Write-Host "开始备份学习与发展...---------------"
backup-SPSite $KMSiteUrl -Path $KMName -force
Write-Host "备份学习与发展完毕...---------------"

#协作空间文件夹
$WorkSiteUrl = $siteUrl +"/workspace"
$WorkName = $BackupFilePath + "\SPSite_WorkSpace.bak"
Write-Host "开始备份协作空间...---------------"
backup-SPSite $WorkSiteUrl -Path $WorkName -force
Write-Host "备份协作空间完毕...---------------"

说明:

Add-PSSnapin, alias 为 asnp
以此从未怎么难知晓的地点。Java里面有import来导入类库,同样C++里面有using

来导入库。在powershell
内部有add-pssnapin来导入内置之外的commandlets。比如您本身写了三个commandlet用来计算及申明MD5摘要,怎么在console下用你本身写的commandlet呢(现在还尚无内置的算MD5的commandlet,只可以用.NET里面包车型客车库)?让add-pssnapin来援助您。
语法 Add-PSSnapin [-name] <string[]>
[-passThru]
[<CommonParameters>]
例子1 add-PSSnapIn
Microsoft.Exchange,Microsoft.Windows.AD
将Microsoft.Exchange
和Microsoft.Windows.AD 
snappin添加到当前console中去。
那七个snappin中的全体类,函数只在时下console中央银卓有成效。假设想要当前console的snapin在后边可用,请看前边的export-console表达.
例子2 get-pssnapin
-registered | add-pssnapin
-passthru
将装有注册过的snapin参加到当前对话中去。

XML,创建windows计划

注意点:

#******************************************************************
#丰富如下2行代码为windows布署执行使用,不然windows安排不能够执行ps1
Add-PSSnapin “Microsoft.SharePoint.PowerShell”
Set-ExecutionPolicy -ExecutionPolicy “Unrestricted” -Force
#******************************************************************

创制基本义务

XML 3

XML 4

XML 5

XML 6

XML 7

1)、程序脚本:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

2)、添加参数:-NonInteractive 
“c:\BackUp.ps1”

XML 8

XML 9

 

我们测试下效果图:

XML 10

 

XML 11

 

相关文章

网站地图xml地图