Como mesclar dois scripts vb em um script

Como mesclar dois scripts vb em um script

Tenho 2 scripts vb que gostaria de mesclar em um script.

o primeiro executa um arquivo em lote oculto (janela invisível). o segundo executa o arquivo em lote como um usuário diferente. o que eu preciso é ter um script vb que execute o arquivo em lote como um usuário diferente e invisível ao mesmo tempo.

1)

Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "C:\Folder\BatchFileName.bat" & Chr(34), 0
Set WinScriptHost = Nothing

2)

Option explicit
Dim oShell
set oShell= Wscript.CreateObject("WScript.Shell")
oShell.Run "RunAs /noprofile /user:domain\domainuser ""C:\Folder\BatchFileName.bat"""
WScript.Sleep 100
oShell.Sendkeys "yourpassword~"
Wscript.Quit

Qualquer ajuda é muito apreciada

Responder1

Se você estiver tentando executar esse script como outro usuário sem que o usuário final o veja, não há como combinar esses scripts.

oShell.Run "RunAs /noprofile /user:domain\domainuser ""C:\Folder\BatchFileName.bat"""
WScript.Sleep 100
oShell.Sendkeys "yourpassword~"

SendKeys depende do console ser uma janela ativa, o que o disponibiliza ao usuário final para que o script automatize o envio das chaves para a interface mais rápido do que o usuário é capaz de interferir. Se o usuário já estiver digitando no momento da execução, seu código está falho e a execução será interrompida. Se você executar este script e manter pressionada QUALQUER tecla, você impedirá que ele funcione corretamente. Em outras palavras, não, você não pode combiná-los.

Se você estiver tentando executar um script em segundo plano com uma conta de usuário diferente, use o serviço de agendamento para executar "%SYSTEMROOT%\system32\cmd.exe /c cscript yourscript.vbs 2>&1 %SYSTEMROOT%\logs\myscript .log" O serviço de agendamento solicitará as credenciais se você quiser que ele seja executado como um usuário específico.

Não posso recomendar o uso de /savecred na sintaxe runas, pois o usuário final poderá executar runas com esse usuário a qualquer momento que desejar. O método mais seguro e eficaz à sua disposição é usar tarefas agendadas com a execução da IU suprimida.

Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run "cmd.exe /c C:\Folder\BatchFileName.bat", 0
Set WinScriptHost = Nothing

informação relacionada