Ich versuche also, die Installation unserer Remotesoftware zu automatisieren. Wir müssen sie auf etwa 1000 PCs installieren und es wäre schön, nicht alles von Hand eingeben zu müssen.
Momentan starte ich es und melde mich an, aber es muss den Hostnamen des PCs prüfen und ihn dann in Edge eingeben. Ich bin sehr neu im Scripting, also behalte das im Hinterkopf. Wenn es eine bessere Möglichkeit gibt, dies zu tun, ist jeder Rat willkommen.
Hier ist, was ich bisher habe. Vielen Dank im Voraus für jede Hilfe.
@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));
Antwort1
<!-- :
@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>
Aus Ihrer Frage geht nicht klar hervor, was Sie mit all diesen {TABs}
, {downs}
, , meinen {ETCs}
, aber ich vermute, Sie verstehen das nicht sendkeys
/vbskann 1 oder mehrere Schlüssel senden, unabhängig davon, ob es sich um jeweils ein Zeichen oder eine Kette/Zeichenfolge handelt ...
Bitte bearbeiten Sie Ihre Frage und machen Sie deutlich, was Sie per Schlüssel senden möchten und wohin Ihr Hostname geht, ob per Argument oder per Umgebungsvariable ( set
oder setx
)..
Bem.:Der Code gibt Ihnen eine Vorstellung von der Verwendung von Hybrid-Schläger mitvbsanstattjscript
Antwort2
Das Abrufen des Hostnamens ist einfach:
für /f "delims=" %%a in ('Hostname') setze HostName=%%a
Als Nächstes starten Sie Microsoft Edge mit dem Hostnamen:
Starten Sie msedge.exe "%HostName%"
Wenn auf allen Client-Rechnern Windows 10 läuft, könnten Sie zum Senden von Eingaben an eine lokale oder Remote-Site vielleicht die Verwendung von curl anstelle eines VBS-Skripts in Erwägung ziehen ...