我试图从下面发布的表单中的PsExec
对象中调用WScript.Shell
(但我绝对愿意接受替代方案)。
Set oShell = CreateObject("WScript.Shell")
oShell.Run "cmd.exe /C C:\Users\NOT_Administrator\Desktop\PsExec.exe \\192.168.10.5 -u Administrator -p PASSWORD cmd /c ""C:\Windows\Launch_Bat.exe"""
请注意,要使PsExec
成功,必须提供密码。
关于这一点的是,因为cmd.exe
的初始oShell.Run
是从非管理用户启动的,PsExec
继承了那些缺少权限并最终无法连接给予错误"访问被拒绝。"我在读取和测试PsExec
之后,在非管理命令提示符(没有涉及VBScript)和失败之间以及从成功执行的管理命令提示符之后得出结论。
所以我的问题是,是否可以让VBScript在脚本中以管理员身份(最好以上面发布的形式)启动cmd.exe
,或强制PsExec
部分使用权限作为管理帐户凭据传入?
此外,我尝试了下面发布的两种方法(两者都与我想要的形式不同):
https://gallery.technet.microsoft.com/scriptcenter/9bda53d7-ec2e-4bc2-8e97-4487233bc55b
set WshShell = WScript.CreateObject("WScript.Shell")
PASSW = "PASSWORD"
WshShell.run "runas /user:Administrator %comspec%"
WScript.Sleep 1000
WshShell.SendKeys PASSW
WScript.Sleep 1000
WshShell.SendKeys "{ENTER}"
但是这封闭然后打开了一个管理命令提示符,但是我无法使脚本将任何内容传递给新提示。
If WScript.Arguments.Length = 0 Then
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "wscript.exe", Chr(34) & _
WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1
Else
WScript.Echo "This code is ran as an elevated user, ie. 'Administrator'"
End If
但是这会打开一个回声对话框,但当我把它放在我的脚本的头部时,它只是让它无限循环。它还要求我输入我不介意的密码。我不愿意,但如果我必须的话。我知道虽然你可以使用set_credentials,runas
没有明确的标志来传递密码。