Come unire due script VB in uno script


-1

Ho 2 script VB che vorrei unire in uno script.

il primo esegue un file batch nascosto (finestra invisibile). il secondo esegue il file batch come un utente diverso. ciò di cui ho bisogno è di avere uno script VB che esegua il file batch come un utente diverso e invisibile allo stesso 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

Ogni aiuto è molto apprezzato


1
Leggi di subroutine ( msdn.microsoft.com/en-us/library/dz1z94ha.aspx ). Dato che non sai cosa sia una subroutine, ti suggerirei di esaminare molto attentamente gli script che stai copiando.
Yorik

Ciao, non siamo un servizio di sceneggiatura. Dove ti stai bloccando esattamente? Che cosa ti ha mostrato finora la tua ricerca? Che cosa hai già provato? (suggerimento, guarda su wscript.shell Esegui metodo e imparare come funziona).
Ƭᴇcʜιᴇ007

Risposte:


0

Se stai provando ad eseguire questo script come un altro utente senza che un utente finale lo veda, non c'è modo di combinare questi script.

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

SendKeys fa affidamento sulla console come finestra attiva, che lo rende disponibile all'utente finale in modo che lo script automatizzi l'invio delle chiavi all'interfaccia più rapidamente di quanto l'utente sia in grado di interferire. Se l'utente sta già digitando nel momento in cui viene eseguito, il codice è difettoso e l'esecuzione verrà interrotta. Se si esegue questo script e si tiene premuto QUALSIASI tasto, si impedirà il corretto funzionamento. In altre parole, no non puoi combinarli.

Se stai cercando di eseguire uno script in background con un altro account utente, usa il servizio di pianificazione per eseguire "% SYSTEMROOT% \ system32 \ cmd.exe / c cscript yourscript.vbs 2 & gt; & amp; 1% SYSTEMROOT% \ logs \ myscript.log "Il servizio di pianificazione richiederà le credenziali se si desidera che venga eseguito come utente specifico.

Non posso raccomandare di usare / savecred sotto la sintassi runas in quanto l'utente finale avrà la possibilità di eseguire con quell'utente ogni volta che lo desidera. Il metodo più sicuro ed efficace per la tua eliminazione è l'utilizzo di attività programmate con l'esecuzione dell'interfaccia utente soppressa.

Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run "cmd.exe /c C:\Folder\BatchFileName.bat", 0
Set WinScriptHost = Nothing
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.