zoukankan      html  css  js  c++  java
  • Windows 远程停止iis服务

    最近遇到一个小需求,需要重启远程计算机的iis服务。 需求背景是这样的,用jenkins 做ci的时候, 由于项目是有单独的web服务器,项目虽然是一套, 但是分为A,B,C三个web系统,其中A,B系统要部署很多套,以便C使用。实现的思路就是

    1.jenkin 从svn里面拉取code

    2.jenkins编译并 在jenkins 服务器输出A,B,C

    3.用 CIFS Publishers 的方式把ABC输出拷贝到测试环境的相应站点目录下,其中AB要拷贝很多分(有很多个站点) 

    只要拷贝结束后,QA就可以看到最近部署结果。

    可是如果有人正在访问测试环境,这个时候同步文件肯定会失败的。如果在同步前 强制停止远程服务器的iis, 同步后再启动, 这样拷贝文件 失败的概率又要小很多了。我这里用的是psexec 来实现控制远程计算机服务。

    psexec \192.168.0.xxx -u Administrator -p xxxx cmd

    iisreset /stop
    iisreset /start

    当然在jenkins 可以这样用psexec \192.168.0.xxx -u Administrator -p xxx iisreset /stop

    有关远程控制大家可以参考

    Three ways to run remote Windows commands

    我测试的时候搭建了两套jenkins 环境,在jenkins里面运行该命令。一套运行psexec 是ok的,一套运行时老是报错误, 主要信息是:

    This is the first run of this program. You must accept EULA to continue.
    
    Use -accepteula to accept EULA.

    还遇到说句柄无效。 后来在网上找到了解决方案:http://www.it1352.com/329158.html 修改jenkins的登录账号

    在实际测试环境中,由于有很多项目,所以很多时候不是重启IIS,而是停用应用程序池->拷贝文件->然后再启动应用程序池

    D:NodeJSpsexec \192.168.0.12X -u Administrator -p XXX c:windowssystem32inetsrvAppCmd.exe stop apppool /apppool.name:"xxx"

    jenkins CIFS Publishers 拷贝文件

    D:NodeJSpsexec \192.168.0.12X -u Administrator -p XXX c:windowssystem32inetsrvAppCmd.exe start apppool /apppool.name:"xxx"

  • 相关阅读:
    安卓学习记录(四)——体温表APP
    2012ACM/ICPC亚洲区域赛成都赛区 总结
    poj 1011 Sticks(dfs+剪枝)
    uva 10891 Game of Sum (DP水题)
    poj 1077 Eight (bfs+康拓展开,A*&&IDA*算法)
    USACO Shaping Regions(离散化)
    poj 2741 Colored Cubes(dfs暴力枚举)
    LightOJ 1400 Employment (Stable Marriage)
    uva 10859 Placing Lampposts / Tree DP
    poj 1062 昂贵的聘礼(dfs+剪枝)
  • 原文地址:https://www.cnblogs.com/majiang/p/windows.html
Copyright © 2011-2022 走看看