Artikel
Bereits zu Anfang des Jahres angekündigt, erreichte mich die letzten Tage eine Kurzinfo von All-Inkl: Die Tarife wurden angepasst. Was...

All-Inkl aktualisiert Tarife

Bereits zu Anfang des Jahres angekündigt, erreichte mich die letzten Tage eine Kurzinfo von All-Inkl: Die Tarife wurden angepasst. Was…

Ich betreibe meinen ESXi in der Version 3.5 direkt im Internet; ohne Router oder Firewall vorangestellt. Daher habe ich auch...

Welcome-Screen vom ESXi deaktivieren

Ich betreibe meinen ESXi in der Version 3.5 direkt im Internet; ohne Router oder Firewall vorangestellt. Daher habe ich auch…

Heute bin ich gesundheitlich gezwungen, ein wenig von zuhause aus zu arbeiten. Das ist teilweise mit längeren Telefonaten mit Kunden...

Kostenlose VoiP-Software für 1&1-SIP

Heute bin ich gesundheitlich gezwungen, ein wenig von zuhause aus zu arbeiten. Das ist teilweise mit längeren Telefonaten mit Kunden…

Workarounds
0

Batch-Scriptsammlung

Da ich in letzter Zeit immer öfter mit Kommandozeilen-Scripting konfrontiert werde, erstelle ich diesen Artikel als “Cheat-Sheet”, dass sich ständig erweitern soll.

Eine einfache Mirror-Sicherung per Robocopy auf eine UNC-Freigabe.
Als erster Parameter wird ein Unterverzeichnis übergeben (01-Montag, 03-Mittwoch, etc.), in das das Script die jeweilige Sicherung schreibt.
Wird ein zweiter Parameter angegeben (egal welcher) wird – z.B. für einen speziellen Wochentag – eine zusätzliche Sicherung gefahren.

?Download robocopy.bat
REM Kopiervorgang mit Parametern für Werktag-Ordner
REM Aufruf mit script.bat 01-Montag (xyz), script.bat 02-Dienstag (xyz)
robocopy.exe "C:\Ressourcen\dir1" \\192.168.102.100\docbkp\%1\dir1 /MIR
robocopy.exe "C:\Ressourcen\dir2" \\192.168.102.100\docbkp\%1\dir2 /MIR

REM Wenn kein zweiter Parameter angegeben wurde, spring zum Ende
if %2!==! goto ende
robocopy.exe "C:\Ressourcen\dir3" \\192.168.102.100\docbkp\%1\dir3 /MIR
:ende

Netzwerk-Drucker per con2prt.exe über CMD-Script verbinden
Verbindet einen freigegebenen Netzwerk-Drucker am Client per UNC-Pfad

1
2
3
4
5
6
7
8
9
REM con2prt.exe sollte am besten im NETLOGON des DC's liegen
REM Download con2prt.exe: http://www.awesomeit.de/wp-content/uploads/2012/01/con2prt.exe

REM Alle lokalen Netzwerkdrucker löschen
\\dcsrv01\netlogon\con2prt.exe /f
REM Drucker verbinden
\\dcsrv01\netlogon\con2prt.exe /c \\dcsrv01\Drucker1
REM Drucker als Standard-Drucker verbinden
\\dcsrv01\netlogon\con2prt.exe /cd \\dcsrv01\Drucker1
Schlagwörter: ,
0

G-Data AVCleaner silent ausführen

Vor kurzem wurde ich vor die Aufgabe gestellt, auf über 50 Clients den G-Data Business AntiVir zu deinstallieren.

Über den Management-Server war dies nicht (bzw. nicht “vollständig” oder fehlerfrei) möglich, sodass man sich des Tools “G-Data AVCleaner” bedienen musste.

Der Cleaner prüft diverse Datenverzeichnisse und die Registry, und entfernt “hart” (auch, wenn G-Data noch ausgeführt wird), die betreffenden Verweise.

Manchmal ist ein Neustart und die erneute Ausführung erforderlich, um den G-Data Client komplett zu deinstallieren. Einen “silent-trigger” bringt die avcleaner.exe leider nicht mit.

Ich habe daraufhin ein einfaches AutoIT-Script erstellt, dass folgende Tasks durchführt:

  • Den AVCleaner mit in die *.exe kompilieren; nach Ausführung in den @Temp-Ordner des Clients kopieren und ausführen
  • Alle Elemente markieren und den “Entfernen”-Button drücken
  • Es wird 3 Minuten gewartet, danach wird entweder
    • das “Sie müssen Neustarten um weitere Elemente zu entfernen” bestätigt und ein Neustart durchgeführt, oder
    • der AVCleaner beendet

Nach dem Neustart muss ggf. der AVCleaner erneut durchgeführt werden – G-Data ist zu diesem Zeitpunkt aber bereits “tot” – kein Dienst mehr, und nurnoch einige verbliebene Datendateien auf der Festplatte.

Der AVCleaner kann auf der Website von G-Data heruntergeladen werden, und muss – zur Kompilierung des Scripts – im gleichen Verzeichnis liegen.

?View Code AUTOIT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
FileInstall("AVCleaner_2012_DE.exe", @TempDir & "\AVCleaner_2012_DE.exe")
 
$title	= "AV-Cleaner"
$text	= "Select All"
 
IF WinExists($title, $text) Then
	IF Not WinActive($title, $text) Then WinActivate($title, $text)
Else
	Run(@TempDir & "\AVCleaner_2012_DE.exe")
EndIf
 
IF WinWaitActive($title, $text) Then
	ControlClick($title, $text, "Button1")
	sleep(5000)
	ControlClick($title, $text, "Button2")
EndIf
 
sleep(180000)
 
$title2	= "Rechnerneustart erforderlich"
$text2	= "Es konnten nicht alle"
IF WinExists($title2, $text2) Then
	WinActivate($title2, $text2)
 
	IF WinWaitActive($title2, $text2) Then
		Send("{ENTER}")
		ControlClick($title, $text, "Button3")
		sleep(1000)
		Run(@ComSpec & " /c " & 'shutdown -t 10 -f -r', "", @SW_HIDE)
	EndIf
Else
	IF WinWaitActive($title, $text) Then ControlClick($title, $text, "Button3")
EndIf