0. 修改执行策略

Jenkins执行PowerShell脚本,需要修改其执行策略。以管理员身份运行PowerShell,执行以下脚本:

 Set-ExecutionPolicy Unrestricted

1. Test-Path

确定文件或文件夹是否存在,如:

 $testDir="D:\NewDir"
if((Test-Path $testDir) -ne $true)
{
md $testDir
}

2. Copy-Item/Remove-Item

拷贝/删除文件或文件夹,如:

 $testDir="D:\NewDir"
if(Test-Path $testDir)
{
Remove-Item $testDir -Recurse -Force
}

3. Cmd

调用Cmd.exe,如通过Cmd调用7z进行压缩/解压缩:

 $projectDir="D:\NewDir";
$compressedName="NewDir.7z"; cd $projectDir $cmdargs = "7z a "+$compressedName+" -w .\*"
cmd /c $cmdargs

4. Net use

访问共享文件夹,如:

 $username="Victor";
$password="******"; $serverDrive = "\\ServerA\D$"; net use $serverDrive $password /user:$username Copy-Item $serverDrive\test.txt -Destination D:\NewDir net use $serverDrive /delete /y

5. Invoke-Command

在本地或远程主机执行命令,如:

 $username="Victor";
$password="******"; $pass = ConvertTo-SecureString -AsPlainText $password -Force
$credential= New-Object System.Management.Automation.PSCredential -ArgumentList $username,$pass $serverName="ServerA"
Invoke-Command -ComputerName $serverName -Credential $credential -FilePath "D:\CI\Script\test.ps1"

其中“test.ps1”的内容为:

 $copyDir="D:\"+(Get-Date -format yyyy.MM.dd)+".txt";

 Copy-Item D:\test.txt -Destination $copyDir

注意:运行此命令需要添加信任主机

Step 1:在主机B上Run as Administrator打开PowerShell
Step 1.1:启用远程:Enable-PSRemoting -Force
Step 1.2:添加信任主机:下面a为允许所有主机,b为添加单个主机或主机列表
a:Set-Item wsman:\localhost\client\trustedhosts *
b:Set-item wsman:localhost\client\trustedhosts –value 主机名
Step 1.3:重启WinRM服务:Restart-Service WinRM
Step 2:在主机A上打开PowerShell
Step 2.1:测试连接:Test-WsMan B
Step 2.2:如果连接成功即可使用”Invoke-Command“命令执行相应脚本

6. System.Net.WebClient.DownloadString

使用该方法可以间接实现通过Jenkins访问url,示例:

 $url="http://blog.ityes.net"

 (New-Object System.Net.WebClient).DownloadString($url);

7. System.Xml.XmlDocument.Load

读取XML文件,如:

 [String]$xmlDocDir = "D:\CI\Config\Credential.xml";
$xmlDoc = New-Object "System.Xml.XmlDocument";
$xmlDoc.Load($xmlDocDir); $username=$xmlDoc.Root.Credential.GetAttribute("Username");
$password=$xmlDoc.Root.Credential.GetAttribute("Password");

其中“Credential.xml”的内容为:

 <?xml version="1.0" encoding="utf-8"?>
<Root>
<Credential Username="Victor" Password="******"></Credential>
</Root>

8. Sqlcmd

使用 ODBC 执行 Transact-SQL 批处理,如:

 $server="DbServer";
$databaseName="DbName";
$username="Victor";
$password="******"; $sqlScriptDir="D:\CI\Script\tes.sql"; Sqlcmd -S $server -d $databaseName -U $username -P $password -i $sqlScriptDir

Jenkins+PowerShell持续集成环境搭建(四)常用PowerShell命令的更多相关文章

  1. Jenkins+PowerShell持续集成环境搭建(一)前期准备

    0. 系统要求 Windows Server:本文章使用的为Windows Server 2012 JDK:本文章使用为JDK 1.8 Windows PowerShell:本文章使用为PowerSh ...

  2. Jenkins+PowerShell持续集成环境搭建(八)邮件通知

    1. 默认邮件功能: Jenkins自带的邮件功能比较简单,配置如下: 设置默认发件人地址: 2. Email Extension Plugin 为了能够更加灵活地使用邮件功能,需要安装Email E ...

  3. Jenkins+PowerShell持续集成环境搭建(七)构建触发器

    Jenkins 有三种类型的构建触发器,如下图: Build after other projects are built:在其他项目构建后构建: Build periodically:定时构建: P ...

  4. Jenkins+PowerShell持续集成环境搭建(六)参数化构建

    参数化构建可以应用于动态绑定源码地址等情况. 勾选“This build is parameterized”: 如果需要动态绑定源码地址,参考: 配置完成后构建项目变成:

  5. Jenkins+PowerShell持续集成环境搭建(五)SSRS项目

    部署SSRS项目的原理是使用ReportingService2005类的方法实现rdl文件上传等功能. 上传rdl文件的脚本示例: $username="Victor"; $pas ...

  6. Jenkins+PowerShell持续集成环境搭建(三)Web项目

    1. 新建一个名字为HelloWorld.Web的Freesyle项目: 2. 配置源码管理: 3. 编译配置: 版本:选择MSBuild4 文件:D:\CI\Config\HelloWorld.We ...

  7. Jenkins+PowerShell持续集成环境搭建(二)控制台项目

    1. 新建一个名字为HelloWorld.Console的Freesyle项目: 2. 配置源码管理: 3. 编译配置: 版本:选择MSBuild4 文件:D:\CI\Config\HelloWorl ...

  8. Linux下Jenkins+git+gradle持续集成环境搭建

    Linux下Jenkins+git+gradle持续集成环境搭建 来源:IT165收集  发布日期:2014-08-22 21:45:50 我来说两句(0)收藏本文   一.项目介绍 和 linux ...

  9. Docker 结合Jenkins 构建持续集成环境

    Docker 结合Jenkins  构建持续集成环境 Jenkins : 一个开源的持续集成工具, 提供软件版本发布.自动测试等一系列流程及丰富的插件 Maven: 一个自动化构建工具, 通过一段描述 ...

随机推荐

  1. mysql 数据库磁盘占用量统计

    查看某个表的磁盘占用量 select (data_length+index_length)/1024/1024 M from information_schema.tables where table ...

  2. Pyhon流程控制

    1.条件控制 Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else. 注意: 1.每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语 ...

  3. MVC架构在Asp.net中的应用和实现

    转载自:http://www.cnblogs.com/baiye7223725/archive/2007/06/07/775390.aspx 摘要:本文主要论述了MVC架构的原理.优缺点以及MVC所能 ...

  4. Unity编辑器:基于NGUI的引用检测工具

    这里共享一个基于NGUI的引用检测工具.工具包括几个部分:Atlas/Sprite的引用查找:字库引用查找:UITexture引用查找:Component查找: 代码就不多介绍了,文章底部提供源码下载 ...

  5. MySQL 数据库规范--调优篇(终结篇)

    前言 这篇是MySQL 数据库规范的最后一篇--调优篇,旨在提供我们发现系统性能变弱.MySQL系统参数调优,SQL脚本出现问题的精准定位与调优方法. 目录 1.MySQL 调优金字塔理论 2.MyS ...

  6. C#理解AutoResetEvent和ManualResetEvent

    当在C#使用多线程时就免不了使用AutoResetEvent和ManualResetEvent类,可以理解这两个类可以通过设置信号来让线程停下来或让线程重新启动,其实与操作系统里的信号量很相似(汗,考 ...

  7. 缓存子系统如何设计(Cachable tag, Memcache/redis support, xml config support, LRU/LFU/本地缓存命中率)

    大家对这段代码肯定很熟悉吧: public List<UserInfo> SearchUsers(string userName) { string cacheKey=string.For ...

  8. 52ABP模板 ASP.Net Core 与 Angular的开源实例项目

    阅读文本大概需要 5 分钟. 开始之前 自从上一篇文章".NET:持续进化的统一开发平台"发布后,已经有三个月的时间没有写过文章了. 这段时间,做了两场线下活动,一场在上海,一场在 ...

  9. Python全栈开发之路 【第六篇】:Python基础之常用模块

    本节内容 模块分类: 好处: 标准库: help("modules") 查看所有python自带模块列表 第三方开源模块: 自定义模块: 模块调用: import module f ...

  10. An error occurred while updating the entries. See the inner exception for details.

    EF插入或更新数据时出现错误提示:An error occurred while updating the entries. See the inner exception for details.的 ...