Nur um mal die Frage zu beantworten …
Hi …
an sich ist das nur eine programmiertechnische Fingerübung. Ich mach mir jetzt nicht die Mühe, den Code zu schreiben und zu testen, aber ich denke, Du kommst mit folgenden allgemeinen Anweisungen klar. Werkzeug: Windows Script Host (WSH) und WMI. Statt dem WSH kannst Du auch so ziemlich jede andere vernünftige Programmiersprache verwenden, ja, auch Powershell
Mit DOS Batches würde ich mich nicht abgeben. Nicht dass man damit nicht auch remote Prozesse killen könnte (z.B. mit dem rkill Tool), aber die Steuerung (Liste von Computern irgendwo abgreifen, abarbeiten, kill Befehl senden, Fehlerbehandung) ist in einer Batch so absurd kompliziert und vom Ergebnis her bestenfalls gerade so lauffähig, dass man damit keinen Blumentopf gewinnen kann.
Also wohlan, wsh code:
Erst mal zum Remote-Computer verbinden.
Set objLocator = CreateObject( „WbemScripting.SWbemLocator“ )
Set objWMIService = objLocator.ConnectServer („DerComputerName“, „root/cimv2“, „DerDomainName\EinemAdminUserSeinName“,„EinemAdminUserSeinPasswort“ )
objWMIService.Security_.impersonationlevel = 3
Dann alle Prozesse auflisten …
For Each objProcess in objWMIService.ExecQuery((„Select * From Win32_Process“)
strProcessName = objProcess.Name
If instr(UCase(strProcessName),„ACCESS.EXE“) Then
objProcess.Terminate
Next
Soweit ist das keine Kunst. Prozesse terminieren ist also keine große Sache. Das Terminieren ist übrigens gleich wie wenn jemand Access regulär mit dem „Fenster schließen“ Button zumacht, Datenverluste würde ich nicht befürchten, denn das Schließen von Access muss eine Access Datenbank aushalten.
Das wirkliche Kunststück ist, die Namen aller laufenden Computer auflisten zu lassen, um dann strComputer mit einer Schleife drüberlaufen zu lassen. Eine Liste der eingeschalteten Compute gibt es in einem Microsoft Netz leider nicht, also musst Du Dir so helfen dass Du entweder eine Liste bekannter Computer die die Datenbank nützen können hinterlegst und pflegst, oder - wenn ihr ein Active Directory habt - die Liste aller im AD bekannten Computer rausziehst (das geht mit nicht mehr als 5 zeilen Codeaufwand über die ADSI Schnittstelle). Dann läufst Du durch die Liste und fängst nicht angeschaltete Computer per Fehlerbehandlung ab. Sofern es nicht um tausende Computer geht wird das ganz gut funktionieren.
Und eine IT Abteilung, die sowas nicht zustande bringt soll sich eingraben lassen-
Gruss Armin.