Batch file 使用vbscript将输入发送到cmd窗口

Batch file 使用vbscript将输入发送到cmd窗口,batch-file,vbscript,cmd,psexec,Batch File,Vbscript,Cmd,Psexec,我正在尝试自动化我的过程。我需要向用户询问计算机名ex:SH010123,并将其存储为变量。启动命令提示符。键入psexec\\\“computername”cmd然后我需要键入net use t:\\network\path password/user:domain\username,最后键入\\network\path\\“my file.bat” 我不知道如何使用vbscript将这些输入发送到cmd窗口。虽然解决方案可以绕过将输入发送到cmd窗口来实现,但下面是一个如何将命令发送到cmd

我正在尝试自动化我的过程。我需要向用户询问计算机名ex:SH010123,并将其存储为变量。启动命令提示符。键入
psexec\\\“computername”cmd
然后我需要键入
net use t:\\network\path password/user:domain\username
,最后键入
\\network\path\\“my file.bat”


我不知道如何使用vbscript将这些输入发送到cmd窗口。

虽然解决方案可以绕过将输入发送到cmd窗口来实现,但下面是一个如何将命令发送到cmd并返回一些输出的示例:

Dim oShell, oExec
Set oShell = CreateObject("WScript.Shell")
Set oExec = oShell.exec("%comspec%")
oExec.StdIn.Write "dir" & vbCrLf
oExec.StdIn.Write "cd c:\" & vbCrLf
oExec.StdIn.Write "dir" & vbCrLf
oExec.StdIn.Write "exit" & vbCrLf
ShowInNotepad oExec.StdOut.readall

Sub ShowInNotepad(strTest)
    Dim TempPath
    With CreateObject("Scripting.FileSystemObject")
        TempPath = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%TEMP%") & "\" & .GetTempName
        With .CreateTextFile(TempPath, True, True)
            .WriteLine(strTest)
            .Close
        End With
        CreateObject("WScript.Shell").Run "notepad.exe " & TempPath, 1, True
        .DeleteFile(TempPath)
    End With
End Sub

有一些方法可以在不打开命令提示符的情况下执行几乎所有操作。这应该是您最后的选择。psexec将在命令提示窗口中执行。这就是我为什么要这样做的原因。我不知道还有别的方法,我认为这是一个XY问题。(). 你到底想做什么?使用psexec在远程计算机上运行.bat文件。这个.bat文件是USMT(捕获用户数据并将其发送到网络驱动器)。我还希望它在后台运行,而最终用户不知道。但是.bat文件位于需要管理员帐户权限才能访问的网络驱动器上。因此,请使用WSShell的.Exec()或.Run()方法执行psexec。运行psexec时,可以将批处理文件传递给run和admin凭据。无需打开cmd提示符。您还可以通过WMI启动新进程,在远程计算机上运行它。也不需要打开提示。