Usando un archivo por lotes para escribir el nombre de host en el sitio web

Usando un archivo por lotes para escribir el nombre de host en el sitio web

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}sendkeyspuede 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 ( seto setx).

Obs.:El código le dará una idea de cómo utilizar un murciélago híbrido conen lugar de

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...

Respuesta3

He hecho algo similar en el pasado, pero usandoAHKen cambio. De hecho, hace un tiempo hice un vídeo sobre ello...aquíes.

información relacionada