Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Verbesserungsvorschlag?

Frage Entwicklung Batch & Shell

Mitglied: Flauschbobbel

Flauschbobbel (Level 1) - Jetzt verbinden

29.07.2008, aktualisiert 30.07.2008, 4779 Aufrufe, 9 Kommentare

Hallo Zusammen,

ich habe nachfolgendes Script, das auch funktioniert. Ich bin der Ansicht, das ist nur viel
zu groß und man kann es sicherlich etwas besser zusammenfassen. Nur habe ich keine Idee wie ich es besser machen kann.
Könnt Ihr mir Tipps geben?
Ich möchte mit dem Script überprüfen, ob ggf. installierte Treiberdateien in dem Verzeichnis alle vorhanden sind,
wenn eine Datei oder das ganze Verzeichnis fehlt, sollen die Treiber erneut installiert werden.
(Das habe ich hier weggelassen, mach ich mit rundll32 printui.dll,PrintUIEntry /ia /m %ModellDruckerTreiber% /f %INFfile%)

Das Installieren der Printertreiber mache ich in einem eigenen Script (AddPrntDrv.cmd)
Wie kann ich das von diesem Script hier am sinnvollsten aufrufen?
Mit START /WAIT ? Damit ich warte bis die Installation der Treiber vom anderen Script erledigt wurde?
Muss ich warten? Dieses Script prüft, ob die Treiberfiles alle vorhanden sind, wenn nein, dann starte die Installation im Script AddPrntDrv.cmd
Gibt es was eleganteres? Oder wie macht ihr das?

Sorry, aber ich bin nicht soooo ganz fit im Thema Batch und Scripte und taste mich langsam vorwärts...

Danke für Eure Hilfe,
Flauschbobbel

01.
  
02.
@echo off & setlocal 
03.
set "TmpFileToChk=" 
04.
set "DoInstallDrv=" 
05.
 
06.
:: ---------------------------------------------------------------------- 
07.
:CHK_FILES_EXIST 
08.
:: ---------------------------------------------------------------------- 
09.
 
10.
::	================================ 
11.
:: 	C:\WINDOWS\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d 
12.
	set "TmpFileToChk=%windir%\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d" 
13.
 
14.
	if exist %TmpFileToChk% ( 
15.
		echo Verzeichnis: %TmpFileToChk% vorhanden --- Status: %errorlevel% 
16.
REM		call :WRITELOG "Verzeichnis: %TmpFileToChk% vorhanden --- Status: %errorlevel%" 
17.
	) else ( 
18.
		echo ERROR: Verzeichnis: %TmpFileToChk% fehlt! --- Status: %errorlevel% 
19.
REM		call :WRITELOG "ERROR: Verzeichnis: %TmpFileToChk% fehlt! --- Status: %errorlevel%" 
20.
		goto INSTALLATION_DRV 
21.
	)	 
22.
	set "TmpFileToChk=" 
23.
::	-------------------------------- 
24.
:: 	C:\WINDOWS\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\JCUI.EXE 
25.
	set "TmpFileToChk=%windir%\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\JCUI.EXE" 
26.
	call :CHK_FILES_EXIST_ROUTINE 
27.
	If defined DoInstallDrv goto INSTALLATION_DRV 
28.
::	-------------------------------- 
29.
:: 	C:\WINDOWS\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63I.cnt 
30.
	set "TmpFileToChk=%windir%\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63I.cnt" 
31.
	call :CHK_FILES_EXIST_ROUTINE 
32.
	If defined DoInstallDrv goto INSTALLATION_DRV 
33.
::	-------------------------------- 
34.
:: 	C:\WINDOWS\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63I.HLP 
35.
	set "TmpFileToChk=%windir%\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63I.HLP" 
36.
	call :CHK_FILES_EXIST_ROUTINE 
37.
	If defined DoInstallDrv goto INSTALLATION_DRV 
38.
::	-------------------------------- 
39.
:: 	C:\WINDOWS\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63I.PDF 
40.
	set "TmpFileToChk=%windir%\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63I.PDF" 
41.
	call :CHK_FILES_EXIST_ROUTINE 
42.
	If defined DoInstallDrv goto INSTALLATION_DRV 
43.
::	-------------------------------- 
44.
:: 	C:\WINDOWS\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63I2K.RCF 
45.
	set "TmpFileToChk=%windir%\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63I2K.RCF" 
46.
	call :CHK_FILES_EXIST_ROUTINE 
47.
	If defined DoInstallDrv goto INSTALLATION_DRV 
48.
::	-------------------------------- 
49.
:: 	C:\WINDOWS\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63Ia.INI 
50.
	set "TmpFileToChk=%windir%\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63Ia.INI" 
51.
	call :CHK_FILES_EXIST_ROUTINE 
52.
	If defined DoInstallDrv goto INSTALLATION_DRV 
53.
::	-------------------------------- 
54.
:: 	C:\WINDOWS\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63Ia.XPI 
55.
	set "TmpFileToChk=%windir%\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63Ia.XPI" 
56.
	call :CHK_FILES_EXIST_ROUTINE 
57.
	If defined DoInstallDrv goto INSTALLATION_DRV 
58.
::	-------------------------------- 
59.
:: 	C:\WINDOWS\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63IBD.DLL 
60.
	set "TmpFileToChk=%windir%\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63IBD.DLL" 
61.
	call :CHK_FILES_EXIST_ROUTINE 
62.
	If defined DoInstallDrv goto INSTALLATION_DRV 
63.
::	-------------------------------- 
64.
:: 	C:\WINDOWS\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63Ic.DLL 
65.
	set "TmpFileToChk=%windir%\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63Ic.DLL" 
66.
	call :CHK_FILES_EXIST_ROUTINE 
67.
	If defined DoInstallDrv goto INSTALLATION_DRV 
68.
::	-------------------------------- 
69.
:: 	C:\WINDOWS\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63Il.DLL 
70.
	set "TmpFileToChk=%windir%\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63Il.DLL" 
71.
	call :CHK_FILES_EXIST_ROUTINE 
72.
	If defined DoInstallDrv goto INSTALLATION_DRV 
73.
::	-------------------------------- 
74.
:: 	C:\WINDOWS\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63Ip.DLL 
75.
	set "TmpFileToChk=%windir%\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63Ip.DLL" 
76.
	call :CHK_FILES_EXIST_ROUTINE 
77.
	If defined DoInstallDrv goto INSTALLATION_DRV 
78.
::	-------------------------------- 
79.
:: 	C:\WINDOWS\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63Iu.DLL 
80.
	set "TmpFileToChk=%windir%\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63Iu.DLL" 
81.
	call :CHK_FILES_EXIST_ROUTINE 
82.
	If defined DoInstallDrv goto INSTALLATION_DRV 
83.
::	-------------------------------- 
84.
:: 	C:\WINDOWS\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63IWM.EXE 
85.
	set "TmpFileToChk=%windir%\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RIC63IWM.EXE" 
86.
	call :CHK_FILES_EXIST_ROUTINE 
87.
	If defined DoInstallDrv goto INSTALLATION_DRV 
88.
::	-------------------------------- 
89.
:: 	C:\WINDOWS\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RICJC32.dll 
90.
	set "TmpFileToChk=%windir%\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\RICJC32.dll" 
91.
	call :CHK_FILES_EXIST_ROUTINE 
92.
	If defined DoInstallDrv goto INSTALLATION_DRV 
93.
::	-------------------------------- 
94.
:: 	C:\WINDOWS\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\TIBASE64.DLL 
95.
	set "TmpFileToChk=%windir%\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\TIBASE64.DLL" 
96.
	call :CHK_FILES_EXIST_ROUTINE 
97.
	If defined DoInstallDrv goto INSTALLATION_DRV 
98.
::	-------------------------------- 
99.
:: 	C:\WINDOWS\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\TIFMTA.DLL 
100.
	set "TmpFileToChk=%windir%\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\TIFMTA.DLL" 
101.
	call :CHK_FILES_EXIST_ROUTINE 
102.
	If defined DoInstallDrv goto INSTALLATION_DRV 
103.
::	-------------------------------- 
104.
:: 	C:\WINDOWS\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\TrackID.DLL 
105.
	set "TmpFileToChk=%windir%\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d\TrackID.DLL" 
106.
	call :CHK_FILES_EXIST_ROUTINE 
107.
	If defined DoInstallDrv goto INSTALLATION_DRV 
108.
::	================================ 
109.
 
110.
goto ENDE 
111.
 
112.
:: ---------------------------------------------------------------------- 
113.
:INSTALLATION_DRV 
114.
:: ---------------------------------------------------------------------- 
115.
echo ...nun werden die Driver nochmals installiert... 
116.
echo ...mit rundll32 printui.dll,PrintUIEntry /ia /m %ModellDruckerTreiber% /f %INFfile% 
117.
 
118.
goto ENDE 
119.
 
120.
:: ---------------------------------------------------------------------- 
121.
:CHK_FILES_EXIST_ROUTINE 
122.
:: ---------------------------------------------------------------------- 
123.
 
124.
	If defined Tst echo %TstInfoMsg% CHK_FILES_EXIST_ROUTINE 
125.
 
126.
	if exist %TmpFileToChk% ( 
127.
		echo File: %TmpFileToChk% vorhanden --- Status: %errorlevel% 
128.
rem		call :WRITELOG "File: %TmpFileToChk% vorhanden --- Status: %errorlevel%" 
129.
	) else ( 
130.
		echo ERROR: File: %TmpFileToChk% fehlt! --- Status: %errorlevel% 
131.
		set "DoInstallDrv=True" 
132.
		echo %DoInstallDrv% 
133.
REM 		call :WRITELOG "ERROR: File: %TmpFileToChk% fehlt! --- Status: %errorlevel%" 
134.
	)	 
135.
	set "TmpFileToChk=" 
136.
	goto :eof 
137.
 
138.
:: ---------------------------------------------------------------------- 
139.
:ENDE 
140.
:: ----------------------------------------------------------------------
Mitglied: VW
29.07.2008 um 22:04 Uhr
Moin,

sorry, dass ich komplett Off Topic bin, aber eine Sache muss ich einfach fragen:

+++Was ist bitte ein Flauschbobbel?

Bei dem Skript kann ich dir so leider nicht weiterhelfen.

Gruß,
VW
Bitte warten ..
Mitglied: Flauschbobbel
29.07.2008 um 22:41 Uhr
Hallo VW,

) Na, das will ich Dich mal aufklären:
Also, Flauschbobbel ist ein Kunstwort und setzt sich aus Flauschig (also weich) und Bobbel (im Hessischen abgeleitet von Bobbelche= "goldiger Kleiner") zusammen. Hat mir mal meine bessere Hälfte angetextet, als meine Haare noch voller und weicher waren... (Lang, lang ist's her..) Ich habe nix mit "Bobbelche" Mark Medlock zu tun, nur zur Klarstellung!! Ich hatte den Namen schon weg, da wusste noch niemand was von Bohlen's Neuentdeckung.

Grüße,
Flauschbobbel
Bitte warten ..
Mitglied: 67369
29.07.2008 um 22:49 Uhr
Also frei übersetzt ein Knuddelbär.
Bitte warten ..
Mitglied: Flauschbobbel
29.07.2008 um 22:53 Uhr
Yep, im weitesten Sinne...
Bitte warten ..
Mitglied: bastla
29.07.2008 um 22:57 Uhr
Hallo Flauschbobbel!

Ein wenig kürzer ist's so ja doch (aber auch ziemlich ungetestet ):
01.
@echo off & setlocal 
02.
 
03.
set "DrvPath=%windir%\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d" 
04.
 
05.
::	-------------------------------- 
06.
::DATA JCUI.EXE 
07.
::DATA RIC63I.cnt 
08.
::DATA RIC63I.HLP 
09.
::DATA RIC63I.PDF 
10.
::DATA RIC63I2K.RCF 
11.
::DATA RIC63Ia.INI 
12.
::DATA RIC63Ia.XPI 
13.
::DATA RIC63IBD.DLL 
14.
::DATA RIC63Ic.DLL 
15.
::DATA RIC63Il.DLL 
16.
::DATA RIC63Ip.DLL 
17.
::DATA RIC63Iu.DLL 
18.
::DATA RIC63IWM.EXE 
19.
::DATA RICJC32.dll 
20.
::DATA TIBASE64.DLL 
21.
::DATA TIFMTA.DLL 
22.
::DATA TrackID.DLL 
23.
::	-------------------------------- 
24.
 
25.
set "TmpFileToChk=" 
26.
set "DoInstallDrv=" 
27.
 
28.
:: ---------------------------------------------------------------------- 
29.
:CHK_FILES_EXIST 
30.
:: ---------------------------------------------------------------------- 
31.
 
32.
::	================================ 
33.
:: 	C:\WINDOWS\system32\spool\drivers\w32x86\ricohaficio_sp_4100ne89d 
34.
	set "TmpFileToChk=%DrvPath%\" 
35.
 
36.
	if exist "%TmpFileToChk%" ( 
37.
		echo Verzeichnis: %TmpFileToChk% vorhanden --- Status: %errorlevel% 
38.
REM		call :WRITELOG "Verzeichnis: %TmpFileToChk% vorhanden --- Status: %errorlevel%" 
39.
	) else ( 
40.
		echo ERROR: Verzeichnis: %TmpFileToChk% fehlt! --- Status: %errorlevel% 
41.
REM		call :WRITELOG "ERROR: Verzeichnis: %TmpFileToChk% fehlt! --- Status: %errorlevel%" 
42.
		goto INSTALLATION_DRV 
43.
	)	 
44.
 
45.
for /f "tokens=1*" %%i in ('findstr /b /c:"::DATA " "%~f0"') do ( 
46.
	call :CHK_FILES_EXIST_ROUTINE "%DrvPath%\%%~j" 
47.
	If defined DoInstallDrv goto INSTALLATION_DRV 
48.
49.
::	================================ 
50.
 
51.
goto ENDE 
52.
 
53.
:: ---------------------------------------------------------------------- 
54.
:INSTALLATION_DRV 
55.
:: ---------------------------------------------------------------------- 
56.
echo ...nun werden die Driver nochmals installiert... 
57.
echo ...mit rundll32 printui.dll,PrintUIEntry /ia /m %ModellDruckerTreiber% /f %INFfile% 
58.
 
59.
goto ENDE 
60.
 
61.
:: ---------------------------------------------------------------------- 
62.
:CHK_FILES_EXIST_ROUTINE 
63.
:: ---------------------------------------------------------------------- 
64.
 
65.
	If defined Tst echo %TstInfoMsg% CHK_FILES_EXIST_ROUTINE 
66.
	 
67.
	set "TmpFileToChk=%~1" 
68.
	if exist "%TmpFileToChk%" ( 
69.
		echo File: %TmpFileToChk% vorhanden --- Status: %errorlevel% 
70.
rem		call :WRITELOG "File: %TmpFileToChk% vorhanden --- Status: %errorlevel%" 
71.
	) else ( 
72.
		echo ERROR: File: %TmpFileToChk% fehlt! --- Status: %errorlevel% 
73.
		set "DoInstallDrv=True" 
74.
		echo %DoInstallDrv% 
75.
REM 		call :WRITELOG "ERROR: File: %TmpFileToChk% fehlt! --- Status: %errorlevel%" 
76.
	)	 
77.
	set "TmpFileToChk=" 
78.
	goto :eof 
79.
 
80.
:: ---------------------------------------------------------------------- 
81.
:ENDE 
82.
:: ----------------------------------------------------------------------
Grüße
bastla
Bitte warten ..
Mitglied: Flauschbobbel
29.07.2008 um 23:57 Uhr
Hallo bastla,

das sieht ja richtig übersichtlich aus. Ich werde es morgen im Büro nochmals ausführlich testen.
Nach eine Frage:
Was meinst Du, wie sollte ich den Aufruf zum Installieren der Printertreiber in einem eigenen Script (AddPrntDrv.cmd) sinnvoll aufrufen?
Mit START /WAIT aus obigem Script heraus? Damit ich warte bis die Installation der Treiber vom anderen Script erledigt wurde? Muss ich warten?

Danke und Grüße,
Flauschbobbel
Bitte warten ..
Mitglied: bastla
30.07.2008 um 00:43 Uhr
Hallo Flauschbobbel!

Ob es sinnvoll ist, auf das Ende des anderen Batches zu warten, kann ich nicht beurteilen; aber falls Du das willst, genügt auch ein Aufruf per "call AddPrntDrv.cmd" ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
30.07.2008 um 01:16 Uhr
Moin Flauschbobbel und bastla,

ein konzeptionelles Detail würde ich ändern:
Die FOR /F-Anweisung (in bastlas Lösung ca Zeile 41-45).

Ich würde -auch wenn ich schon weiß dass eine Inst-Datei fehlt, dennoch die FOR-Anweisung durchnudeln lassen.
Das "Verlassen" einer FOR-Anweisung ist eigentlich vom sympathischen Weltmarktführer nicht vorgesehen, geschweige denn zugesichert.

Wenn so etwas gemacht wird, dann bestenfalls in diesem Forum - aber wenn es nicht unbedingt in einem produktiven Batch sein muss..

01.
... 
02.
:: Variante A: Immer alle Inst-Dateien prüfen und  
03.
:: alle fehlenden ins Log schreiben 
04.
for /f "tokens=1*" %%i in ('findstr /b /c:"::DATA " "%~f0"') do (  
05.
	call :CHK_FILES_EXIST_ROUTINE "%DrvPath%\%%~j"  
06.
07.
If defined DoInstallDrv goto INSTALLATION_DRV  
08.
  
09.
::
01.
... 
02.
:: Variante B: Nur bis zur ersten fehlenden Inst-Dateien prüfen 
03.
:: aber die FOR-Anweisung zu Ende bringen 
04.
 
05.
for /f "tokens=1*" %%i in ('findstr /b /c:"::DATA " "%~f0"') do (  
06.
    If defined DoInstallDrv  call :CHK_FILES_EXIST_ROUTINE "%DrvPath%\%%~j"  
07.
08.
If defined DoInstallDrv goto INSTALLATION_DRV  
09.
  
10.
::
Grüße
Biber
P.S. Kleinkram: die %errorlevel%-Echos werden nichts Aussagefähiges bringen in einer IF . ELSE -ZEILE.
Entweder mit DelayedExpansion arbeiten.... aber eher einfach weglassen.
Inhalt von %errorlevel% ist hier 1 oder 0.
Informationsgehalt von Errorlevel im obigen Batch ist immer 0.
Bitte warten ..
Mitglied: Flauschbobbel
30.07.2008 um 19:18 Uhr
Hallo bastla, hallo Biber,

herzlichen Dank! Es funktioniert sehr gut. Ich habe mich übrigens für Variante A entschieden, das hat einen gewissen Charme. Die Errorlevels habe ich auch rausgelassen.
Danke für die Ratschläge.

Viele Grüße,
Flauschbobbel
Bitte warten ..
Neuester Wissensbeitrag
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (22)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...