Así que estoy intentando automatizar la instalación de nuestro software de comunicación remota. Tenemos alrededor de 1000 PC para instalarlo y sería bueno no tener que escribir todo a mano.
Actualmente lo estoy iniciando e iniciando sesión, pero necesito mirar el nombre de host de la PC y luego escribirlo en Edge. Soy muy nuevo en el mundo de las secuencias de comandos, así que tenlo en cuenta. Además, si hay una mejor manera de hacer esto, cualquier consejo será bienvenido.
Esto es lo que tengo hasta ahora. Gracias de antemano por cualquier ayuda.
@if (@CodeSection == @Batch) @then
@echo off
set SendKeys=CScript //nologo //E:JScript "%~F0"
start microsoft-edge:
timeout /t 1
%SendKeys% "{enter}"
Timeout /t 1
Used to type in my info. Then will send me Duo Prompt.
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{TAB}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{}"
%SendKeys% "{ENTER}"
timeout /t 10
start microsoft-edge:
timeout /t 2
%SendKeys% "{TAB}"
%SendKeys% "{TAB}"
%SendKeys% "{TAB}"
%SendKeys% "{TAB}"
%SendKeys% "{TAB}"
%SendKeys% "{TAB}"
%SendKeys% "{TAB}"
%SendKeys% "{TAB}"
%SendKeys% "{DOWN}"
%SendKeys% "{DOWN}"
%SendKeys% "{DOWN}"
%SendKeys% "{DOWN}"
%SendKeys% "{DOWN}"
%SendKeys% "{DOWN}"
%SendKeys% "{TAB}"
%SendKeys% "{TAB}"
%SendKeys% "{TAB}"
%SendKeys% "{TAB}"
%SendKeys% "{TAB}"
pause
@end
// JScript section
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0));
Respuesta1
<!-- :
@echo off
"%windir%\system32\wScript.exe" "%~dpnx0?.wsf" "hOsTnAmE" & goto :EOF
:: -->
<job><script language = "vbscript">
Set WshShell = CreateObject("WScript.Shell")
WshShell.run """msedge.exe"" ""google.com""", 9
WScript.Sleep 700
For i=1 To 9
If i>8 Then
WshShell.SendKeys "{TAB}"
Else
WshShell.SendKeys (WScript.Arguments(0))+"{ENTER}"
End If
Wscript.Sleep 700
Next
For i=1 To 19
If i<9 Then
WshShell.SendKeys "{TAB}"
ElseIf i<15 then
WshShell.SendKeys "{DOWN}"
Else
WshShell.SendKeys "{TAB}"
End If
Wscript.Sleep 700
Next
</script></job>
Tu pregunta no deja claro a qué te refieres con todo esto , {TABs}
pero sospecho que no lo entiendes .{downs}
{ETCs}
sendkeys
vbspuede enviar 1 o más claves, independientemente de si es un carácter a la vez o una cadena/cadena...
Edite su pregunta y deje en claro qué desea enviar mediante claves y dónde va su nombre de host, ya sea por argumento o por variable de entorno ( set
o setx
).
Obs.:El código le dará una idea de cómo utilizar un murciélago híbrido convbsen lugar dejscript
Respuesta2
Bueno, la parte de obtener el nombre de host es fácil:
para /f "delims=" %%a en ('nombre de host') configure HostName=%%a
A continuación, iniciaría Microsoft Edge con el nombre de host:
inicie msedge.exe "%HostName%"
Si todas las máquinas cliente ejecutan Windows 10, tal vez podría considerar usar curl en lugar del script VBS para enviar información a un sitio local o remoto...