Batch Link unbemerkt aufrufen

  • Ersteller Ersteller mw197
  • Erstellt am Erstellt am
M

mw197

Gast
Hallo Leute,

ich versuche die ganze Zeit mit einer Batch-Datei einen Link aufzurufen und den IE dann wieder zu schließen. Also quasi einmal aufrufen (damit ein Script durchläuft auf dem Webserver) und dann wieder schließen, damit der Benutzer nichts davon mit bekommt.

Kann mir jemand sagen, wie ich das realisieren kann?

Mit PowerShell habe ich es wie folgt gelöst, auf den Systemen steht die PowerShell leider nicht zur Verfügung und kann auch nicht hinzugefügt werden, weshalb Batch Pflicht ist.

PowerShell-Script:
Code:
$cl = new-object system.net.webclient
$cl.DownloadString($server + "&tscID=" + $tscID)

Danke im Voraus für eine Idee :)
 
Hi,

damit der Benutzer nichts davon mit bekommt

das solltest du jetzt aber mal ganz flott näher erklären, wieso das so sein muss - solche Sachen werden nämlich normalerweise aus gutem Grund nicht unterstützt. Was genau hast du auf wessen Rechner vor?

VG,
Mad
 
Hey,

wir möchten bei uns auf Windows 7 umstellen und benötigen von den alten XP Kisten die Hardwareinfos. Die lese ich mit Batch aus und möchte die an unseren Inventar-Webserver weiterleiten, die man einfach per URL übergeben kann.

Momentan erhält der Benutzer beim Anmelden immer ein Internet Explorer-Fenster mit der Meldung: "Inventarisierung erfolgreich!".
Das möchte ich den Usern gerne ersparen. Mit PowerShell funktioniert das prima, wie oben gepostet. Da melden sich die Clients am Inventar-Webserver als Startscript. Nun brauche ich das halt für XP als Batch, weil es da keine PowerShell gibt und auch nicht nachinstalliert werden kann. :)
 
Ist mein Ernst... :(

Hiermit mache ich das in PowerShell. Muss nur per Batch noch die Anfrage an den Webserver schicken, dass er die Daten entgegen nimmt

Code:
$tscID = "SRV22"
$sysinfo = Get-WmiObject -Class Win32_ComputerSystem
$mac = getmac /NH /FO CSV
$sn = gwmi win32_bios | Select –ExpandProperty SerialNumber
$ip = test-connection $sysinfo.Name -timetolive 2 -count 1
$ip = $ip.ipv4address | findstr "IPAddressToString"
$ip = $ip.Split(": ")
$ip = $ip[4]

$cl = new-object system.net.webclient
2.$cl.DownloadString($server + "&tscID=" + $tscID + "&pcname=" + $sysinfo.Name + "&ip=" + $ip + "&sn=" + $sn + "&mac=" + $mac + "&ram=" + $sysinfo.TotalPhysicalMemory + "&hersteller=" + $sysinfo.Manufacturer + "&modell=" + $sysinfo.Model + "&prozessoren=" + $sysinfo.NumberOfProcessors + "&logprozessoren=" + $sysinfo.NumberOfLogicalProcessors)

Muss doch irgendwie möglich sein, wie bei Windows 7, einen GET Request zu senden...
 
Zuletzt bearbeitet:
Hi,

mit Batch allein bin ich leider überfragt. Sowas funktioniert nicht?

Und für mich klingt der Grund tatsächlich plausibel :)

VG,
Mad
 
Danke dir!

Das Problem ist, dass ich PowerShell schon auf einem XP-Test-System installiert hatte und dann machten spezielle Programme teilweise Probleme, was auf keinen Fall auftreten darf. Bei Windows 7 gibt es schon neuere Versionen der Software die sich nicht beißen und bei XP leider nicht (liegt da am .NET Framework 2, was für PowerShell auch benötigt wird).

Danke trotzdem und es ist wirklich mein Ernst! :)
 
Wie wäre es mit VBScript?
Code:
URL = WScript.Arguments(0)
Set objXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
objXMLHTTP.open "GET", URL, false
objXMLHTTP.send()
In script.vbs speichern und mit "script.vbs URL" aufrufen.
 
Es kommt nur auf das GET-Request an, nicht darauf, dass das ganze im Browser ausgeführt wird, oder?

Eigentlich das Anwendungsgebiet für CURL. Irgendwo gibts da auch ne Windows-Version. Die von der Batch-Datei mit der entsprechenden URL aufrufen, fertig.
Hätte halt den Nachteil, dass man neben der Batch-Datei auch noch ne curl.exe mit herumschleppt.
 
die vbscript lösung über XMLHTTP ist die leichteste, falls das ganze wirklich über IE laufen soll gibts auch hier eine Möglichkeit
Code:
With CreateObject("InternetExplorer.Application")
	.visible = False
	.Navigate URL
	Do While .ReadyState <> 4
		Wscript.sleep 100
	Loop
	.Quit
End With
 
Zurück
Oben