Использование пакетного файла для ввода имени хоста на веб-сайт

Использование пакетного файла для ввода имени хоста на веб-сайт

Итак, я пытаюсь автоматизировать установку нашего программного обеспечения для удаленного управления. У нас есть около 1000 ПК для установки, и было бы неплохо не вводить все вручную.

В настоящее время он у меня запускается и входит в систему, но мне нужно, чтобы он посмотрел на имя хоста ПК и затем ввел его в edge. Я совсем новичок в написании скриптов, так что имейте это в виду. Также, если есть лучший способ сделать это, то любые советы приветствуются.

Вот что у меня есть на данный момент. Заранее спасибо за любую помощь.

@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));

решение1

<!-- :
@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>

Ваш вопрос не проясняет, что вы имеете в виду под всеми этими {TABs}, {downs}, {ETCs}, но я подозреваю, что вы этого не понимаете sendkeys/можно отправить 1 или несколько ключей, независимо от того, по одному символу за раз или цепочкой/строкой...

Пожалуйста, отредактируйте свой вопрос и уточните, что именно вы хотите отправить с помощью ключей и куда следует отправить ваше имя хоста, если это аргумент или переменная окружения ( setили setx).

Наблюдение:Код даст вам представление об использовании гибридной летучей мыши свместо

решение2

Что ж, получить имя хоста легко:

для /f "delims=" %%a in ('hostname') do set HostName=%%a

Далее вам нужно запустить Microsoft Edge с именем хоста:

запустить msedge.exe "%HostName%"

Если все клиентские машины работают под управлением Windows 10, возможно, вам стоит рассмотреть возможность использования curl вместо скрипта VBS для отправки входных данных на локальный или удаленный сайт...

решение3

Я делал что-то подобное в прошлом, но используяАХКВместо этого. Я на самом деле сделал видео об этом некоторое время назад...здесьэто.

Связанный контент