批处理实现局域网内部通知即时发布 下载本文

二、批处理实现局域网内部通知即时发布

发送通知的目的是希望大家能即时了解其内容,局域网内部信息的即时传递可以通过Tomm网络信使之类的软件实现,但是首先该软件需要安装,且运行时需要占用一定的系统资源,最重要的是此类软件大都是一对一模式,无法实现可选择的一对多发送信息。利用批处理则可以实现一对一、一对多或一对部分发送即时通知。 首先,做准备工作:

1、假设服务端IP为:192.168.8.1,登录账号:server,登录密码123456; 客户端IP为:192.168.8.8,计算机名为njbz-001,登录账号:user,登录密码abcde使用者为张三 2、 在服务端机器上建立两个目录,目录名分别为“通知”“共享”,将通知目录设为只读共享,共享名为“通知”;将共享目录设置为隐藏的完全共享,共享名为“共享$”。设置这个完全共享目录的目的是为了可以在本网内远程提交通知,具体做法是在服务器端建立一个每分钟执行的计划任务,该任务就是每分钟将“共享”目录里的通知内容和通知名单拷贝到“提醒”目录中。 3、 在客户端机器C盘上建立一个目录,目录名为qidong 4、 建立一个后缀为hta的通知文件“通知.hta”,拷贝该文件到服务端的“共享”目录下。之所以选用hta文件,是因为该格式文件支持超文本语言,弹出通知时干净整洁。需要注意的是hta格式文件执行时系统可能会弹出安全警告,只要在注册表[HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies]新建一个项“Associations”,再在该项下建立字符串名“ModRiskFileTypes”值为“.hta”。

当然也可以用其它格式的文件,只要电脑可以正常显示就可以。

以下为取消hta格式安全警告的注册表导入文件的内容,将之存为reg后缀文件双击导入即可:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Associations]

\

通知.hta文件内容代码参考如下:

通知

40pt; LINE-HEIGHT: 150%; WIDTH: 100%\通知大标题


☆ ☆ ☆ 日期、时间 ☆ ☆ ☆

★通知内容..............

★通知内容..............

★通知内容..............







这里为移动文本的内容


       

                          

5、 建立名为“名单对照.txt”的文本文件到服务端的“提醒”目录下,该文本必须包含网内所有客户机的计算机名和用户的姓名,并且一一对应。参考内容如下:

Njbz-001 张三 Njbz-002 李四 Njbz-003 王五 等等?? 6、 建立名为“通知名单.txt”的文本文件到服务端的“共享”目录下,每个名字占一行,这个名单就是实现可选择发布通知的关键。参考内容如下: 张三 李四 王五 等等?? 7、 在服务器端的提醒目录下建立名为“copy.bat”的批处理,并在服务器端建立一个计划任务,让这个批处理每分钟运行一次。代码如下: @echo off

Del \\\\192.168.8.1\\提醒\\通知名单.txt

Copy \\\\192.168.8.1\\共享$\\通知已阅.txt \\\\192.168.8.1\\提醒\\通知名单.txt 创建计划任务的命令行运行参考:

schtasks /create /sc minute /mo 1 /tn \/ru \\copy.bat

准备工作完成,下面是通知的执行批处理代码,将该代码保存为bat后缀文件,在客户机里执行: @echo off

if exist \\\\192.168.8.1\\提醒\\通知.hta goto benji exit

::远程通知存在判断 :benji

tasklist /v >c:\\qidong\\001.txt

type c:\\qidong\\001.txt | findstr /i mshta.exe>>mshta.txt

for /f \%%m in (mshta.txt) do (ren mshta.txt %%m.txt) if exist c:\\qidong\\mshta.exe.txt goto exit ::以上四行判断本机通知是否在运行中,这个针对的是hta格式的通知,如果是其它格式的,要做相应的改动。如果已经在hta文件中设置了时间则可删除这四行。