Итак, я пытаюсь автоматизировать установку нашего программного обеспечения для удаленного управления. У нас есть около 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
).
Наблюдение:Код даст вам представление об использовании гибридной летучей мыши свбсвместоjscript
решение2
Что ж, получить имя хоста легко:
для /f "delims=" %%a in ('hostname') do set HostName=%%a
Далее вам нужно запустить Microsoft Edge с именем хоста:
запустить msedge.exe "%HostName%"
Если все клиентские машины работают под управлением Windows 10, возможно, вам стоит рассмотреть возможность использования curl вместо скрипта VBS для отправки входных данных на локальный или удаленный сайт...