そこで、リモート ソフトウェアのインストールを自動化しようとしています。インストールする PC が約 1000 台あり、すべてを手入力しなくても済むと便利です。
現在、起動してサインインしていますが、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
。ビブス一度に 1 文字かチェーン/文字列かに関係なく、1 つ以上のキーを送信できます。
質問を編集して、キーで何を送信するのか、ホスト名が引数または環境変数 (set
またはsetx
) でどこに行くのかを明確にしてください。
答え2
ホスト名を取得する部分は簡単です:
/f "delims=" %%a in ('hostname') の場合、HostName=%%a を設定します。
次に、ホスト名を使用して Microsoft Edge を起動します。
msedge.exe "%HostName%" を起動します
すべてのクライアント マシンが Windows 10 を実行している場合は、VBS スクリプトの代わりに curl を使用して、ローカルまたはリモート サイトに入力を送信することを検討できます...