그래서 원격 소프트웨어 설치를 자동화하려고 합니다. 우리는 그것을 설치할 약 1000대의 PC를 가지고 있으며 모든 것을 직접 입력할 필요가 없다면 좋을 것입니다.
현재 실행하고 로그인했지만 PC의 호스트 이름을 확인한 다음 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
VBS한 번에 한 문자인지, 체인/문자열인지에 관계없이 하나 이상의 키를 보낼 수 있습니다.
질문을 편집하고 키로 무엇을 보내고 싶은지, 인수나 환경 변수( set
또는 setx
)를 사용하여 호스트 이름이 가는 위치를 명확히 하십시오.
답변2
호스트 이름을 얻는 부분은 쉽습니다.
for /f "delims=" %%a in ('hostname') do set HostName=%%a
다음으로 호스트 이름을 사용하여 Microsoft Edge를 시작합니다.
msedge.exe "%HostName%" 시작
모든 클라이언트 시스템이 Windows 10을 실행하는 경우 VBS 스크립트 대신 컬을 사용하여 로컬 또는 원격 사이트에 입력을 보내는 것을 고려할 수 있습니다.