最近有个项目需要在在windows计划中使用powershell脚本备份sharepoint2010网站集,打开sharepoint的powershell执行命令管理界面的属性

查看:

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、Maximized 或 Hidden。 -Command 按照执行在 Windows PowerShell 命令提示符下键入的命令那样,执行指定的命令和所有参数;如果未指定 NoExit,则执行完命令后将退出。Command 的值可以是"-"、字符串或脚本块。 如果 Command 的值为"-",则从标准输入中读取命令文本。 脚本块必须括在大括号 ({}) 中。只有在 Windows PowerShell 中运行 PowerShell.exe 时才能指定脚本块。脚本的运行结果将作为反序列化 XML 对象(而非活动对象)返回父 shell。 如果 Command 的值为字符串,则 Command 必须是该命令的最后一个形式参数,因为其后键入的所有字符都会被解释为它的实际参数。 若要编写运行 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-EventLog -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加入到当前会话中去。

创建windows计划

注意点:

#******************************************************************
#添加如下2行代码为windows计划执行使用,否则windows计划无法执行ps1

Add-PSSnapin "Microsoft.SharePoint.PowerShell"

Set-ExecutionPolicy -ExecutionPolicy "Unrestricted" -Force

#******************************************************************

创建基本任务

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

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

我们测试下效果图:

如何在windows计划中调用备份sharepoint2010网站集的powershell脚本的更多相关文章

  1. 如何在C语言中调用Swift函数

    在Apple官方的<Using Swift with Cocoa and Objectgive-C>一书中详细地介绍了如何在Objective-C中使用Swift的类以及如何在Swift中 ...

  2. 【转载】如何在C语言中调用shell命令

    转载自:http://blog.csdn.net/chdhust/article/details/7951576 如何在C语言中调用shell命令 在linux操作系统中,很多shell命令使用起来非 ...

  3. 如何在 Windows 10 中搭建 Node.js 环境?

    [编者按]本文作者为 Szabolcs Kurdi,主要通过生动的实例介绍如何在 Windows 10 中搭建 Node.js 环境.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 在本文中 ...

  4. 如何在Windows服务程序中添加U盘插拔的消息

    研究了下这个问题,主要要在一般的windows服务程序中修改两个地方: 一.调用RegisterServiceCtrlHandlerEx VOID WINAPI SvcMain( DWORD dwAr ...

  5. 如何在windows环境中搭建apache+subversion(ZT)

    我一直有一个想法就是在本机上象scm一样的搭建一个subversion服务器,然后每天写完代码的时候提交一下,这种感觉好好哦,之前我在windows环境中搭建过纯subversion的服务器兴奋过一阵 ...

  6. 重装助手教你如何在Windows 10中更改您的帐户名称

    当您设置新的Win10免费下载 PC时,您选择用户名的部分可能会让您措手不及.如果是这种情况,您可以选择弹出头部的第一件事或者您打算稍后更改的随机和临时事物.但令人惊讶的是,在Windows 10中更 ...

  7. 解析如何在C语言中调用shell命令的实现方法【转】

    本文转自:http://www.jb51.net/article/37404.htm 1.system(执行shell 命令)相关函数 fork,execve,waitpid,popen表头文件 #i ...

  8. [转]如何在Windows 10中更改文件夹背景颜色

    ini文件.我们甚至可以使用相同的技术将图片设置为文件夹背景. 已有工具可以更改Windows 7中Windows资源管理器背景的颜色,并将图像设置为Windows 7中的文件夹背景,但这些工具与Wi ...

  9. []如何在Windows 10中更改文件夹背景颜色

    ini文件.我们甚至可以使用相同的技术将图片设置为文件夹背景. 已有工具可以更改Windows 7中Windows资源管理器背景的颜色,并将图像设置为Windows 7中的文件夹背景,但这些工具与Wi ...

随机推荐

  1. Testing - 测试基础 - 自动

    自动化测试模型 一个自动化测试框架就是一个集成体系,在这一体系中包含测试功能的函数库.测试数据源.测试对象识别标准,以及种可重用的模块. 自动化测试框架在发展的过程中,不断有新的模型(概念)被提出,目 ...

  2. Windows Azure Cloud Service (44) 将Cloud Service加入Virtual Network Subnet,并固定Virtual IP Address(VIP)

    <Windows Azure Platform 系列文章目录> 在之前的文章中,笔者已经详细介绍了如何将Virtual Machine加入Virtual Network,并且绑定固定的Pr ...

  3. VS2008 C++ 调用MATLAB 2009b 生成的DLL .

    转载: 刚开始学习用VC++调用matlab生成的DLL,找了网上一些资料,难以找到vs2008与MATLAB2009b版本的,按照以往版本做的总是有很多错误.经过两天努力,终于调试成功,这里将经验总 ...

  4. Elasticsearch——Date Math在索引中的用法详解

    在elasticsearch中,有时会想要通过索引日期来筛选查询的数据,此时就需要用到日期数学表达式. 更多内容参考Elasticsearch翻译汇总 基于日期数学表达式的索引 模式如下: <s ...

  5. 实现UniqueAttribute唯一性约束

    using System; using System.ComponentModel.DataAnnotations; using System.Data.Entity; namespace Zwj.T ...

  6. VMware中网络设置之Bridged

    1.设置linux虚拟机Bridged模式. 2.查找网关地址:点击虚拟机工具栏编辑---Virtual Network Editor,选中VMnet0,然后在Bridged to 下拉框中选择可以本 ...

  7. C#--访问修饰符

  8. [开源 .NET 跨平台 数据采集 爬虫框架: DotnetSpider] [一] 初衷与架构设计

    [DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 为什么要造轮子 同学们可以去各大招聘网站查看一下爬虫工程师的要求,大多是招JA ...

  9. 【转载】8天学通MongoDB——第四天 索引操作

    这些天项目改版,时间比较紧,博客也就没跟得上,还望大家见谅. 好,今天分享下mongodb中关于索引的基本操作,我们日常做开发都避免不了要对程序进行性能优化,而程序的操作无非就是CURD,通常我们 又 ...

  10. WinForm菜单和工具栏

    菜单和工具栏: 1.MenuStrip - 顶部菜单栏分割线:1输入- 2.右键插入 |SpearTOR 快捷键设置:每一个项右键属性的最下面可以设置快捷键不管选项隐藏还是菜单隐藏,快捷键都管用 2. ...