标签:相关 创建文件 部分 程序 多次 解析 tor 多个 技术分享
作为一个后台程序猿,经常需要把一堆程序集(DLL)或者应用程序(EXE)复制到多个服务器上,实现程序的代码逻辑更新,用以测试新的功能或改动逻辑。这里给大家介绍一个自己实现的PowerShell脚本,方便大家替换DLL或者EXE到多个Windows机器上。
用于方便复制多个文件到多个服务器上。
脚本的主要功能如下:
命令参数简单如下,一共有三个可用参数:
配置文件格式例子如下:
其中Server填远程服务器的地址,Service Display Name填复制文件前需要停止的Windows服务显示名字,Process Name填需要停止的进程名字,Item是要复制的文件或文件夹,以上参数可以有多个节点。
Last Write Time填时间戳,所有修改时间在这之后的文件夹和文件都将会被复制,只能有一个。
Destination Folder填要复制到的目的端机器的文件夹路径,如果没有会自动创建,只能有一个。
需要复制的源端文件夹如下:
执行命令PowerShell窗口如下:
一个目的端服务器的效果:
使用这个脚本的时候可能会遇到一点问题,和环境配置有关,具体情况和解决方法如下:
如图,执行命令的时候报错:
解决方法:
以管理员运行Windows PowerShell,输入如下命令允许执行脚本” Set-ExecutionPolicy -ExecutionPolicy Unrestricted”。如果不想设置成Unrestricted,具体参考Set-ExecutionPolicy。
如图,执行命令的时候报错:
解决方法:
以管理员运行Command Prompt,输入如下命令”winrm set winrm/config/client @{TrustedHosts="VM1,VM2"}”设置信任主机。
尽管密码已经确保正确了,但是远程创建文件夹或者复制文件的时候仍然报用户名密码错误。
解决方法:
一是手动直接访问UNC路径,把用户名密码保存在系统中,二是执行如下命令” cmdkey /add:targetname /user:username /pass:password”,把用户名密码缓存到系统中。
错误如下:
解决方法:
在目的端机器(10.2.38.53)上管理员运行Command Prompt,输入命令”winrm quickconfig”开启服务:
截图1.
截图2.
Note:脚本暂时不够完善,完成一点功能,可能有BUG,还有更多的优化空间,比如并行执行复制命令,支持全命令参数等,以后可能会继续更新优化。
脚本下载地址:http://files.cnblogs.com/files/lavender000/OneClickToReplaceMultipleFilesToMultipleServers.zip。
[原创文章,转载请注明出处,仅供学习研究之用,如有错误请留言,如喜欢请推荐,谢谢支持]
[原文:http://www.cnblogs.com/lavender000/p/6958618.html,来自永远薰薰]
一键帮你复制多个文件到多个机器——PowerShell小脚本(内附PS远程执行命令问题解析)
标签:相关 创建文件 部分 程序 多次 解析 tor 多个 技术分享
原文地址:http://www.cnblogs.com/lavender000/p/6958618.html