域环境推送exe程序并自动安装教程
一、思路
微软可以通过组策略对域中的计算机实现对MSI格式的软件程序实现派发后自动运行,但对于.exe格
式的软件无法实现指派。
对于此问题,可以通过组策略设置运行脚本,受控主机1通过脚本实现下载程序包并自动运行exe格式
的软件程序。脚本分为启动和关机脚本,分别需要实现的功能包括:
启动脚本:
1、 判断受控主机是否运行了指定进程 2、 如果运行指定进程,则直接退出
3、 如果未运行指定进程,则从网络共享文件夹拷贝软件安装包到受控主机的本地目录 4、 在本地目录运行exe程序 5、 执行后退出脚本 关机脚本:
1、 判断受控主机是否存在安装时的临时文件 2、 如果不存在,则退出
3、 如果存在,则删除该临时文件夹 4、 执行删除后退出
1
受控主机是指在域中的计算机
二、脚本
以下是详细脚本,“#”后是注释说明
开机脚本: @echo off
#本行包括以下各行,隐藏命令输入,只显示命令执行结果
#检查进程中是否存在EDPSvc.exe进程,如果存在则errorlevel的
tasklist /nh|find /i \"EDPSvc.exe\" 返回值为0
if %errorlevel%==0 ( exit ) else ( 否则则执行以下命令
md c:\\lansecs_temp
#如果errorlevel的值为0,则退出脚本(即本机已经安装该程序)。
#在本地创建临时文件夹
#间隔时间2秒。该命令用于设置时间间隔,无其他意义,下
ping -n 2 127.1>c:\\lansecs_temp\\null 同
echo内网安全软件更新维护中…… echo 请勿关闭此对话框。
#显示信息,下同
ping -n 2 127.1>c:\\lansecs_temp\\null
net use \\\\192.168.10.35\\share password /user:192.168.10.19\\administrator
#打开网络共享连
接,其中\\\\192.168.10.35\\share为网络共享的文件夹,administrator为共享用户名,password为密码。192.168.10.19该地址在此脚本中无意义,用于格式要求
ping -n 4 127.1>c:\\lansecs_temp\\null
copy \\\\192.168.10.35\\share\\EDPInstall_jingmo c:\\lansecs_temp >c:\\lansecs_temp\\null 装包到本地文件夹
ping -n 4 127.1>c:\\lansecs_temp\\null echo 请耐心等待,更新时间约2分钟…… start c:\\lansecs_temp\\EDPInstall.exe ping -n 2 127.1>c:\\lansecs_temp\\null net use \\\\192.168.10.35 /delete
#断开网络共享文件夹的连接。有的服务器会有连接数限制,此命
#执行EDPInstall.exe程序
#拷贝静默安
令是为了避免过多的连接导致共享目录无法访问的问题
ping -n 50 127.1>c:\\lansecs_temp\\null exit
#退出
) #if else语句的格式要求
关机脚本:
if exist C:\\lansecs_temp\\EDPInstall.exe ( rd /s /Q C:\\lansecs_temp ) else ( goto exit )
#判断是否存在
C:\\lansecs_temp\\EDPInstall.exe,如果存在则执行删除C:\\lansecs_temp文件夹。如果不存在C:\\lansecs_temp\\EDPInstall.exe,则退出。
三、域控步骤
可以针对站点或者OU设置组策略。因为整个站点中可能包含敏感部门,建议是按照OU逐个设置组策略,以下是以单个OU为例。
1、点击右键,属性,找到“组策略”选项卡
2、点击“新建”,设置名称为“lansecs”,然后点击“编辑”,进入组策略编辑界面
3、逐个展开“计算机配置”>”windows设置”>”脚本”
4、双击右侧的“启动”,设置开机启动脚本
5、 点击“添加”,然后点击“浏览”
6、 将脚本通过复制、粘贴拷贝至其中
7、 选中后选择“打开”,然后点击“确定”,完成启动脚本的设置
8、 同样方法,将lansecs-shutdown.bat加入至关机脚本中 9、 完成启动和关机脚本添加后,脚本设置完成。 10、
在关闭相关的窗口后,下一步,在CMD中,运行gpupdate /force 刷新组策略。默认域控的组
策略更新时间是5分钟。
至此,域控上的操作完成。下一步,受控终端在收到组策略后,将在系统启动和关机时候执行脚本(受控主机组策略更新时间是90分钟,可以通过gpupdate /force立即刷新)
四、实施、排错
1、 建立共享文件夹,并将包括.exe程序的安装包拷贝共享文件夹中。然后测试共享文件夹通过用户名、
密码能否正常访问及拷贝数据(注意共享文件夹名称及用户名、密码要与脚本中对应) 2、 本地运行脚本,测试能否自动执行.exe程序。如果本地存在指定进程,测试能否自动退出脚本 3、 运行关机脚本,测试能否将安装时建立的临时文件夹删除 4、 在域控中,对OU设置组策略,加入脚本 5、 域控上,使用gpupdate /force刷新组策略
6、 在受控主机上,使用rsop.msc,查看是否接收到了“脚本(启动/关机)” 7、 重启受控主机,测试能否通过组策略自动执行.exe程序
五、小结
此脚本在实施环境中测试成功,并成功部署。但其中一些信息可能不准确,例如组策略的默认更新时间等。
最后,欢迎沟通指正!
峰巅世界 2013.8.21
因篇幅问题不能全部显示,请点此查看更多更全内容