设为首页 收藏本站
查看: 1183|回复: 0

[经验分享] Jenkins+PowerShell持续集成环境搭建(四)常用PowerShell命令

[复制链接]

尚未签到

发表于 2018-1-7 22:40:52 | 显示全部楼层 |阅读模式
0. 修改执行策略
  Jenkins执行PowerShell脚本,需要修改其执行策略。以管理员身份运行PowerShell,执行以下脚本:
  

Set-ExecutionPolicy Unrestricted  


1. Test-Path
  确定文件或文件夹是否存在,如:
  

$testDir="D:\NewDir"  
if((Test-Path $testDir)  $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
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432755-1-1.html 上篇帖子: 解决Jenkins Email Extension Plugin发送邮件失败 下篇帖子: Jenkins进阶之自动发送邮件的Default Content设置模板
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表