远程安装应用程序

原创 2005年03月03日 11:24:00

最近接到一个差事:写一个远程安装应用程序的东西。因为有个工程是用于网络管理的,需要在每台终端上安装一个客户端。开始的时候考虑用NetBios编程,但是遇到些问题无法解决,应该是本人功力还不够。后来发现WMI可以实现这样的功能,不但可以远程运行应用程序,还可以把本地的文件拷贝到远程机器上去,当然前提是远程机器必须有共享目录。因为不同操作系统上的WMI的接口可能不同,所以不能保证可移植。

运行脚本的方法是将下列脚本拷贝到记事本中,再将其保存为vbs的后缀名,然后在控制台下运行:

cscript 脚本文件名

或者双击脚本文件直接运行

'-----------------------------------------------------------
'远程执行
strComputer = "192.168.0.30"

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer _
    (strComputer, "root/cimv2", "fabrikam/administrator",

"85558418")

Set objNewProcess = objSWbemServices.Get("Win32_Process")

'objWMIServices.Security_.ImpersonationLevel = 3 

Error = objNewProcess.Create _
    ("c:/tmp.bat", null, null, _
        intProcessID)
Wscript.Echo Error
Wscript.Echo intProcessID

执行完如果没有返回错误,可以用下列脚本枚举远程机器上运行的进程


'------------------------------------------------------------
'枚举远程进程
strComputer = "192.168.0.30"

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer _
    (strComputer, "root/cimv2", "fabrikam/administrator",

"85558418")

Set colSwbemObjectSet = _
    objSWbemServices.ExecQuery("Select * From Win32_Process")
For Each objProcess in colSWbemObjectSet
    Wscript.Echo "Process Name: " & objProcess.Name
Next

因为windows的平台上有默认共享的磁盘,所以把需要运行的应用程序可以拷贝到目的机器上的C$下,当然也可以是其他的共享文件夹


'------------------------------------------------------------
'远程拷贝文件
strComputer = "192.168.0.30"
Const OverwriteExisting = TRUE

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer _
    (strComputer, "root/cimv2", "fabrikam/administrator",

"85558418")

'Set objFSO = objSWbemServices.Get("Scripting.FileSystemObject")
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "C:/va.log", _
    "//" + strComputer + "/C$/", OverWriteExisting

拷贝后可以运行下面的脚本,检查目的机器上是否存在该文件
'--------------------------------------------------------------
'搜索特定扩展名
strComputer = "192.168.0.30"
Const OverwriteExisting = TRUE

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer _
    (strComputer, "root/cimv2", "fabrikam/administrator",

"85558418")

Set colFiles = objSWbemServices.ExecQuery _
    ("Select * from CIM_DataFile where Extension = 'log'")
For Each objFile in colFiles
    Wscript.Echo objFile.Name
Next

因为我需要安装的应用程序很小,而且只是注册一个dll,所以上面的脚本足够满足我的需求,而且该脚本是为网络管理员编写的,所以要得到远程机器上的管理员的帐号和密码并不是什么难事。

如果需要更多的信息,可以去 脚本中心 获取。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

使用 Eclipse 远程调试 Java 应用程序

使用 Eclipse 远程调试 Java 应用程序 利用 Eclipse IDE 的强大功能远程调试 Java 应用程序 在本地计算机上调试 Java™ 应用程序并不是惟一的选择。学习如何...

远程获取应用程序的crash信息

使用CrashHandler来获取应用的crash信息Android应用难免遇到crash的情况,当程序crash后就会造成“闪退”,这对用户来说是很不友好的,然而当用户crash的时候,开发者并不知...

Eclipse远程开发调试Linux应用程序,Eclipse+cdt+Uniwin+Ubuntu+gcc+gdb,打造超级Linux开发平台

环境准备: 1。Windows Xp,IP:192.168.0.1 2。Ubuntu 10.04, IP:192.168.0.2 软件安装: 1。JDK 1.6,到sun公司官方网站下载完后直...
  • moiyer
  • moiyer
  • 2011-03-11 17:09
  • 1699

ios (推送之远程推送)NSLocalizedDescription=未找到应用程序的“aps-environment”的权利字符串

获取deviceToken的时候,应用程序报出下面的错误: Error in registration. Error: Error Domain=NSCocoaErrorDomain Code=30...

使用 Eclipse 远程调试 Java 应用程序

转载于:http://77857.blog.51cto.com/67857/200752   在本地计算机上调试 Java™ 应用程序并不是惟一的选择。学习如何使用构成远程调试的不同连接类型进行远...

使用 Eclipse 远程调试 Java 应用程序

简介: 在本地计算机上调试 Java™ 应用程序并不是惟一的选择。学习如何使用构成远程调试的不同连接类型进行远程调试。本文概述了设置远程应用程序调试的特性和示例。 远程调试对应用程序开发...

window下使用vnc远程登录linux图形界面和运行应用程序 和odroid Xu4开发板的使用和视频接口VGA、DVI、HDMI的联系

注:自己曾经尝试过很多次使用VNC远程登录odroid-XU4的开发板,但是连接后均显示未解码的连接,刚开始烧写的是odroid官方的ubuntu系统,我靠,就是因为烧写了这个坑爹的系统,害的自己弄了...

使用 NetBeans IDE 在远程 Web 服务器上部署 PHP 应用程序

通常,实际的 PHP 应用程序在远程服务器上运行,并通过文件传输协议 (File Transfer Protocol, FTP) 进行访问。要在远程服务器上部署 PHP 应用程序,您将需要向托管提供商...

在远程电脑上的COM+应用程序调用

string _methodName = string.Empty; string[] param; string CRYPTODATA = strin...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)