vbs使用凭据从网络执行

时间:2016-08-12 08:09:11

标签: batch-file vbscript

我需要使用凭据从本地网络运行setup.exe。

我能够使用bat文件执行此操作,但问题是,但我不希望在执行此操作时显示cmd窗口。

所以从我读过的内容来看,一个很好的选择是使用这样的vbs脚本,除非我找不到使用凭据的方法。

Set shell = WScript.CreateObject("Wscript.Shell")
shell.Run("\\192.168.0.100\Setup\setup.exe"), 0 , True

基本上我需要的是相当于vbs中的这个批处理脚本:

net use Z: \\192.168.0.100\sh /user:user password /persistent:yes
start /d "Z:\Setup" setup.exe   

2 个答案:

答案 0 :(得分:1)

你可以这样做:

Set WshNetwork = WScript.CreateObject("WScript.Network")
WshNetwork.MapNetworkDrive "Z:", "\\192.168.0.100\sh", True, user, password

Set shell = WScript.CreateObject("Wscript.Shell")
shell.CurrentDirectory = "Z:\Setup"
shell.Run("setup.exe"), 0 , True

注意:如果Z:已经映射,MapNetworkDrive将失败。你需要处理它。

答案 1 :(得分:0)

PSExec就是你想要的:

https://technet.microsoft.com/en-us/sysinternals/pstools.aspx

像这样:

Set shell = WScript.CreateObject("Wscript.Shell")
shell.Run("psexec.exe -u User -p Password -accepteula \\192.168.0.100\Setup\setup.exe"), 0 , True

文档:

https://technet.microsoft.com/en-us/sysinternals/pxexec

  

使用PsExec

     

用法:psexec [\ computer [,computer2 [,...] | @file]] [ - u user [-p   psswd] [ - n s] [ - r servicename] [ - h] [ - l] [ - s | -e] [ - x] [ - i [session]] [ - c   [-f | -v]] [ - w目录] [ - d] [ - ] [ - a n,n,...] cmd [参数]

     

-u指定登录到远程计算机的可选用户名。

     

-p指定用户名的可选密码。如果省略这个         系统将提示您输入隐藏密码。

     

-accepteula此标志禁止显示许可证对话框。