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

Mit Powershell aus dem Eventlog den Messageinhalt in Excel schreiben

Frage Microsoft

Mitglied: Feuerstein08

Feuerstein08 (Level 1) - Jetzt verbinden

22.06.2009, aktualisiert 09:12 Uhr, 10953 Aufrufe, 18 Kommentare

Hallo Zusammen,

ich versuche aus dem System-Eventlog bestimmte Informationen in eine csv-Datei zu schreiben.

Beispiel :get-eventlog -newest 5 -logname application |where {$_.source -eq "AutoEnrollment"} | select-object * | % ($Message = $_.Message)

Nun möchte ich die "Messages" dieser Fehlermeldungen in je >eine< Zelle einer csv schreiben.
Bei längeren Meldungen wird das leider immer in mehrere Zellen geschrieben.

Danke!
Mitglied: LotPings
22.06.2009 um 10:51 Uhr
Hallo Feuerstein08,

warum nicht einfacher:

get-eventlog -newest 5 -logname application -source AutoEnrollment | select-object Message

Die Bildschirmausgabe weicht ja immer ab, wie schreibst du in die Datei?
Ich habe hier keine AutoEnrollment Einträge, wie sehen die Messsages denn aus?
Wenn die Zeilenwechsel Bestandteil der Messages sind, musst du sie gfs. rausfiltern.
Wenn in den Messages Anführungszeichen enthalten sind, müssen die auch ggfs ersetz/escaped werden damit eine gültige csv entsteht.

Gruß
LotPings
Bitte warten ..
Mitglied: Feuerstein08
22.06.2009 um 13:43 Uhr
Hallo LotPings,

es geht nicht um das AutoEnrollment (sollte nur ein Beispiel sein).
Es geht hier um das automatische Suchen von bestimmten Event- oder Source-oder ...-Einträgen im Eventlog (auch wieder egal ob System, Appl. oder ...)

Ich möchte einen PS-Job regelmäßig auf meine Server loslassen, der mir das anhand einer Config-Datei (hier sind dann die zu suchenden Felder beschrieben) das
Gesuchte rausschreibt und (da x-Server) in eine Excel kompatible Datei ausgibt.
Soweit - so schön. Klappt auch alles, bis auf die Tatsache, das mir die Messages, sofern sie nicht nur Einzeiler sind, NICHT in ein Feld geschrieben werden, sondern in die nächste Zeile, erstes Feld ... und das gilt es zu optimieren.

Ich möchte also die einzelnen Inhalte der Variablen in einezelne Felder einer csv-Datei schreiben.

BEISPIEL (irgendeinen Index-Eintrag nehmen ... hier Nr. 70):
get-eventlog -logname system | where-object {$_.Index -eq 70} |select-object *| % {$1 = $_.Index; $2 = $_.EventID; $3 = $_.MachineName; $4 = $_.Category; $5 = $_.CategoryNumber; $6 = $_.EntryType; $7 = $_.Message; $8 = $_.Source; Write-host 1: $1; Write-Host 2: $2; Write-Host 3: $3; Write-Host 3: $3; Write-Host 4: $4; Write-Host 5: $5; Write-Host 6: $6; Write-Host 7: $7; Write-Host 8: $8; "$1`t$2`t$3`t$4`t$5`t$6`t$7`t$8" | out-file -filepath "c:\test.csv" -append}

Ausgabe:
1: 70
2: 17
3: SERVER001
3: SERVER001
4: (0)
5: 0
6: Error
7: Time Provider NtpClient: An error occurred during DNS lookup of the manually
configured peer 'time.windows.com,0x1'. NtpClient will try the DNS lookup again in 15
minutes.
The error was: A socket operation was attempted to an unreachable host. (0x80072751)
8: W32Time

Bzw. die "c:\test.csv"

DAS möchte ich nun in eine CSV ausgeben, wobei die Nr. 7 die Probleme macht ...

Könnte es an Steuerzeichen in der Message liegen (CRLF) und wenn "Ja" : wie bekomme ich das entsprechend hin?

Vielen Dank!
Bitte warten ..
Mitglied: LotPings
22.06.2009 um 15:33 Uhr
Zitat von Feuerstein08:
Könnte es an Steuerzeichen in der Message liegen (CRLF) und wenn "Ja" : wie bekomme ich das entsprechend hin?
JA.
Mit einer berechneten Eigenschaft die Message um das CRLF erleichtern:
01.
get-eventlog -logname system -newest 5| Select Index,EventID,MachineName,Category,CategoryNumber,EntryType,@{Name="MyMSG"; Expression = {$_.Message -replace "`r`n", ""}},Source | export-csv "c:\test\test.csv"
Gruß
LotPings
Bitte warten ..
Mitglied: Feuerstein08
22.06.2009 um 16:43 Uhr
Hallo LotPings,

ich muss sagen "Hut ab" - funktioniert einwandfrei (und wesentlich effektiver und schneller als meine Version).
Könntest du mir noch kurz erläutern, was es mit dem "@" auf sich hat?
Ist das eine Powershell interne Variable (foreach?)
Kannst du mir ein Tutorial oder eine gute Seite nennen, wo ich das mit den internen Variablen und die Handhabung mit den Expressions nachlesen kann? (Möchte ja schlauer werden

Und zu guter letzt, wie kann ich diese Ausgabe so umformulieren, das ich anstatt der Komma-Trennung die Tabulatoren >`t< reinbekomme?
Dann reicht ein einfacher Doppelklich auf die csv-Datei - so hat Excel beim öffnen immer ein wenig Probleme damit (oder mache ich hier auch etwas falsch?).

Vielen Dank für deine Hilfe!
Bitte warten ..
Mitglied: Feuerstein08
22.06.2009 um 17:24 Uhr
... und wie bekomme ich Datum und Zeit da noch rein. Einfach simpel Date und Time haben nicht hingehauen ... ??

Danke!
Bitte warten ..
Mitglied: LotPings
22.06.2009 um 17:27 Uhr
Zitat von Feuerstein08:
Könntest du mir noch kurz erläutern, was es mit dem "@" auf sich hat? Ist das eine Powershell interne Variable (foreach?)
Siehe get-help select -full
und get-help export-csv -full

Das ist eine berechnete Eigenschaft. In Powershell bin ich auch noch ein "Einäugiger" und muss viel googlen bzw. in der Newsgroup "microsoft.public.windows.powershell" mitlesen.

Kannst du mir ein Tutorial oder eine gute Seite nennen, wo ich das mit den internen Variablen und die Handhabung mit den Expressions nachlesen kann? (Möchte ja schlauer werden
Da ich mir mein Wissen nur Online angeeignet habe, kann ich kein Buch empfehlen, ich such mal bei Gelegenheit Links raus.

Und zu guter letzt, wie kann ich diese Ausgabe so umformulieren, das ich anstatt der Komma-Trennung die Tabulatoren >`t< reinbekomme?
01.
get-eventlog -logname system -newest 5| Select Index,EventID,MachineName,Category,CategoryNumber,EntryType,@{Name="MyMSG"; Expression = {$_.Message -replace "`r`n", ""}},Source | export-csv "c:\test\test.csv" -delimiter "`t"
Dann reicht ein einfacher Doppelklich auf die csv-Datei - so hat Excel beim öffnen immer ein wenig Probleme damit (oder mache ich hier auch etwas falsch?).
Excel sollte mit dem Standard csv Format eigentlich auch klarkommen.

Gruß
LotPings
Bitte warten ..
Mitglied: LotPings
22.06.2009 um 17:38 Uhr
Zitat von Feuerstein08:
... und wie bekomme ich Datum und Zeit da noch rein. Einfach simpel
Date und Time haben nicht hingehauen ... ??

Tja welche DateTime?

Schau dir mal dies an:
get-eventlog -logname system -newest 1| gm
Da gibts es "TimeGenerated" und "TimeWritten"

Hier nochmal alles zusammen:
01.
get-eventlog -logname system -newest 5| Select TimeGenerated,TimeWritten,Index,EventID,MachineName,Category,CategoryNumber,EntryType,@{Name="MyMSG"; Expression = {$_.Message -replace "`r`n", ""}},Source | export-csv "c:\test\test.csv" -delimiter "`t"
Gruß
Bitte warten ..
Mitglied: Feuerstein08
22.06.2009 um 17:52 Uhr
Hallo LotPings,

supi!!
Das mit den TimeGenerated hatte ich zwar eben auch rausgefunden, aber an den Delimiter hätte ich zu knabbern gehabt.
Das mit den Büchern ist so eine Sache ... man blättert zu selten darin rum und das suchen ist in Papierform doch eher umständlich (wozu gibt es den mittlerweile fast alles "Online"?).

Wenn du auf dieses Posting hier eventuell noch mal so 1-2 gute Links packst, wär das echt klasse.
Ansonsten hast du mir SEHR geholfen.

Super schnell - super gut!
Vielen Dank noch einmal!
Gruß
Feuerstein08
Bitte warten ..
Mitglied: Feuerstein08
22.06.2009 um 17:56 Uhr
Hmm - der Delimiter funktioniert so leider nicht.... Stellungsparameter?

Gruß
Feuerstein08
Bitte warten ..
Mitglied: Feuerstein08
22.06.2009 um 17:59 Uhr
OK - der Delimiter scheint erst ab der V2 zu funktionieren.
Ich habe (und muss leider) die V1 benutzen.

Hast du noch einen Workaround für mich und der Tabulatorgeschichte?

Danke
Feuerstein08
Bitte warten ..
Mitglied: LotPings
22.06.2009 um 18:27 Uhr
Zitat von Feuerstein08:
OK - der Delimiter scheint erst ab der V2 zu funktionieren. Ich habe (und muss leider) die V1 benutzen.
Schade, hab hier überall v2, entweder ctp3 oder schon dabei.

Hast du noch einen Workaround für mich und der Tabulatorgeschichte?
Speicher mal mit export-csv mit der Erweiterung .txt - dann müsste der ImportDialog von excel kommen.
Alternativ
  • hab ich im Hinterkopf dass man auch xls erzeugen kann, habe ich aber gerade nicht greifbar
  • in der Datei Suchen nach "," ersetzen mit "`t".

Habe gerade nicht soviel Zeit.

Gruß
Bitte warten ..
Mitglied: LotPings
22.06.2009 um 19:40 Uhr
Dies sollte auch mit v1 gehen:
01.
$str = get-eventlog -logname system -newest 5| Select TimeGenerated,TimeWritten,Index,EventID,MachineName,Category,CategoryNumber,EntryType,@{Name="MyMSG"; Expression = {$_.Message -replace "`r`n", ""}},Source | ConvertTo-Csv -NoTypeInformation 
02.
$str = $str -replace ",", "`t" 
03.
$str |out-file -filepath "c:\test\test.csv"
Gruß
Bitte warten ..
Mitglied: Feuerstein08
25.06.2009 um 22:13 Uhr
Hallo LotPings,

schade - hautt aber auch nicht hin. Das cmdlet "Convertto-csv" gubt es in der v1.0 nicht.
Ist aber nicht so schlimm - ich regel das einfach über ein erneutes einlesen der ersten Datei in eine neue aus.

Eine letzte Frage hätte ich noch (wenn du noch magst??):
Wenn du dir das nachfolgende Beispiel einmal ansiehst, dann sind da "eigentlich" 2 gleiche Abfragen drin, die aber einmal das korrekte Ergebnis und einmal das komplette System Eventlog ausgibt.

Das Array ($IDToQuery) lese ich im kompletten Skript über eine Datei ein - hier nur zur Demo in dem Skript.
Ich möchte gern die Variante mit der zusammengebauten $query nutzen.
Das bringt mir aber das komplette Log ...
Was ist da falsch?

Danke für die Hilfe!

01.
if ((Test-Path "C:\Test") -ne $true)	 
02.
	{new-item -path c:\ -name test -type directory} 
03.
 
04.
$csv_file_1 = "c:\test\Eventlog1.csv" 
05.
$csv_file_2 = "c:\test\Eventlog2.csv" 
06.
 
07.
$IDToQuery =@() 
08.
$IDToQuery = "4","9" 
09.
 
10.
Write-Host "" 
11.
Write-Host IDToQuery =  $IDToQuery :: Anzahl = $IDToQuery.Count  
12.
 
13.
######################################### 
14.
# Query erstellen 						# 
15.
######################################### 
16.
$query = "" 
17.
If ($IDToQuery.Count -gt 0) 
18.
	{$query = '($_.EventID -contains $IDToQuery)'} 
19.
#  ... hier würden noch weitere Array Abfragen kommen 
20.
#  dadurch erweitert sich die <query> 
21.
 
22.
Write-Host Query = $query 
23.
 
24.
#################### 
25.
# Header erstellen # 
26.
#################### 
27.
"Computer`tEventID`tTimeGenerated`tMachineName`tCategoryNumber`tEntryType`tSource`tMessage" | out-file -filepath $csv_file_1 -Append 
28.
"Computer`tEventID`tTimeGenerated`tMachineName`tCategoryNumber`tEntryType`tSource`tMessage" | out-file -filepath $csv_file_2 -Append 
29.
 
30.
####################### 
31.
# Eigentliche Abfrage # 
32.
####################### 
33.
 
34.
# So möchte ich die Query gestalten (und ausbauen) - erhalte aber leider das komplette Log ... 
35.
get-eventlog -logname system | where-object { $query } | Select Index,EventID,TimeGenerated,MachineName,CategoryNumber,EntryType,@{Name="MyMSG"; Expression = {$_.Message -replace "`r`n", ""}},Source | select-object * | % {$EventID = $_.EventID; $MachineName = $_.MachineName; $TimeGenerated = $_.TimeGenerated; $CategoryNumber = $_.CategoryNumber; $EntryType = $_.EntryType; $Message = $_.MyMSG; $Source = $_.Source; "$CompName`t$EventID`t$TimeGenerated`t$MachineName`t$CategoryNumber`t$EntryType`t$Source`t$Message"} | out-file -filepath $csv_file_1 -Append 
36.
 
37.
# richtiger Output, aber ich will ja die Bedingungen nicht einzeln reinschreiben, sondern flexibel gestalten 
38.
get-eventlog -logname system | where-object {(($_.EventID -eq 4) -or ($_.EventID -eq 9))} | Select Index,EventID,TimeGenerated,MachineName,CategoryNumber,EntryType,@{Name="MyMSG"; Expression = {$_.Message -replace "`r`n", ""}},Source | select-object * | % {$EventID = $_.EventID; $MachineName = $_.MachineName; $TimeGenerated = $_.TimeGenerated; $CategoryNumber = $_.CategoryNumber; $EntryType = $_.EntryType; $Message = $_.MyMSG; $Source = $_.Source; "$CompName`t$EventID`t$TimeGenerated`t$MachineName`t$CategoryNumber`t$EntryType`t$Source`t$Message"} | out-file -filepath $csv_file_2 -Append
Bitte warten ..
Mitglied: LotPings
26.06.2009 um 10:24 Uhr
Hallo Feuerstein08,

das war auch für mich eine Nuss

Die Lösung ist die Kommandozeile in einem String zusammenzubauen und dann mit invoke-expression auszuführen.
Dieses Script erzeugt bei mir identischen Output für beide Varianten.
Ob das auch unter V1 geht, musst du selber testen.
Ich habe auch noch ein paar Dinge geändert, Header in Variable, unsinningen Select-Object * entfernt, MyMsg in Message geändert (man kann Eigenschaften überschreiben)

01.
if ((Test-Path "D:\Test\Posh") -ne $true)	 
02.
	{new-item -path c:\ -name test -type directory} 
03.
 
04.
$csv_file_1 = "D:\Test\Posh\Eventlog1.csv" 
05.
$csv_file_2 = "D:\Test\Posh\Eventlog2.csv" 
06.
 
07.
$IDToQuery =@() 
08.
$IDToQuery = "4","9" 
09.
 
10.
Write-Host "" 
11.
Write-Host IDToQuery =  $IDToQuery :: Anzahl = $IDToQuery.Count  
12.
 
13.
######################################### 
14.
# Query erstellen 						# 
15.
######################################### 
16.
$query = "" 
17.
If ($IDToQuery.Count -gt 0) 
18.
	{$query = '(($_.EventID -eq 4) -or ($_.EventID -eq 9))'} 
19.
#  ... hier würden noch weitere Array Abfragen kommen 
20.
#  dadurch erweitert sich die <query> 
21.
 
22.
Write-Host Query = $query 
23.
 
24.
#################### 
25.
# Header erstellen # 
26.
#################### 
27.
$Header = "Computer`tEventID`tTimeGenerated`tMachineName`tCategoryNumber`tEntryType`tSource`tMessage" 
28.
$Header | out-file -filepath $csv_file_1  
29.
$Header | out-file -filepath $csv_file_2  
30.
 
31.
####################### 
32.
# Eigentliche Abfrage # 
33.
####################### 
34.
# So möchte ich die Query gestalten (und ausbauen) - erhalte aber leider das komplette Log ... 
35.
$cmd='get-eventlog -logname system | where-object {' + $query + '}| Select Index,EventID,TimeGenerated,MachineName,CategoryNumber,EntryType,Source,@{Name="Message";Expression={$_.Message -replace "`r`n", ""}}| %{$EventID=$_.EventID; $MachineName=$_.MachineName; $TimeGenerated=$_.TimeGenerated; $CategoryNumber=$_.CategoryNumber; $EntryType=$_.EntryType; $Message=$_.Message; $Source=$_.Source;"$CompName`t$EventID`t$TimeGenerated`t$MachineName`t$CategoryNumber`t$EntryType`t$Source`t$Message"}| out-file -filepath $csv_file_1 -Append' 
36.
Invoke-Expression $cmd 
37.
 
38.
# richtiger Output, aber ich will ja die Bedingungen nicht einzeln reinschreiben, sondern flexibel gestalten 
39.
get-eventlog -logname system | where-object {(($_.EventID -eq 4) -or ($_.EventID -eq 9))} ` 
40.
| Select Index,EventID,TimeGenerated,MachineName,CategoryNumber,EntryType,Source,@{Name="Message";Expression={$_.Message -replace "`r`n", ""}} ` 
41.
| %{$EventID=$_.EventID; $MachineName=$_.MachineName; $TimeGenerated=$_.TimeGenerated; $CategoryNumber=$_.CategoryNumber; $EntryType=$_.EntryType; $Message=$_.Message; $Source=$_.Source; ` 
42.
"$CompName`t$EventID`t$TimeGenerated`t$MachineName`t$CategoryNumber`t$EntryType`t$Source`t$Message"} ` 
43.
| out-file -filepath $csv_file_2 -Append
Gruß
LotPings
Bitte warten ..
Mitglied: Feuerstein08
26.06.2009 um 18:29 Uhr
Hallo LotPings,

klasse - ich werde das nachher gleich testen und berichten.

Vielen Dank soweit (und schön, das es für dich scheinbar auch noch "Nüsse" zu knacken gibt .

CU
Feuerstein08
Bitte warten ..
Mitglied: Feuerstein08
27.06.2009 um 10:08 Uhr
Hallo LotPings,

klappt soweit alles super. Die anderen Bedingungen waren schnell eingetragen und brachten die erwarteten Ergebnsse.
Einzig an den "Messages" beiße ich mir wieder die Zähne aus ...

Auch hier lese ich aus einer Datei die zu suchenden "Satzfragmente" aus und möchte diese mit den jeweiligen Messages vergleichen.
Das klappt nicht

Beispiel: Diese Events sollten gefunden werden, wenn ich das nachfolgende Array nutze:

Das ist die Original Message:
The time service is now synchronizing the system time with the time source server001.Sosoft.local (ntp.d|10.1.1.11:123->10.1.1.1:123).

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

01.
# Ich möchte ein Array bilden, dessen Inhalt ich gegen die Message vergleichen kann  
02.
# und "natürlich" nur die Treffer-Events erhalte. 
03.
 
04.
# Das Array (hier nicht aus einer Datei erstellt): 
05.
$Mess = "The time service" 
06.
$Mess += "The time provider" 
07.
 
08.
#Die Abfrage 
09.
Get-EventLog -LogName system | where {$_.Message -match $Mess}
Hier stimmt irgendetwas mit dem Vergleichsoperator (-contains, -match, -like) nicht und scheinbar auch bei der Erstellung des Arrays.
Muss ich die Strings anders "einkleiden"?
Oder kann ich so keine Teilvergleiche anstellen?

Manuell klappt eine einzelne Abfrage ...
01.
get-eventlog -logname system |where {$_.Message -match "WinHTTP Web Proxy Auto-Discovery Service service was"}
Danke für die Hilfe!
Bitte warten ..
Mitglied: LotPings
27.06.2009 um 10:46 Uhr
Sorry Feuerstein08,

aber so geht das nicht.
Die eigentliche Frage ist längst beantwortet und das solltest du auch entsprechend abhaken. Desen Beitrag als "gelöst" markieren
Deine Ergänzungen habe ich alleine austüfteln müssen weil Andere diese Fragen in diesem alten Thread gar nicht beachten (können).

Also mache bitte für die neuen Fragen einen neuen Beitrag auf.

Gruß
LotPings
Bitte warten ..
Mitglied: Feuerstein08
27.06.2009 um 18:06 Uhr
Hallo LotPings,

hast vollkommen Recht!

Danke soweit und ich mache einen neuen Beitrag mit der Frage bzgl. der Messages auf.

Gruß
Feuerstein.
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst Loginzeiten aus dem Ereignisprotokoll in Excel schreiben (1)

Frage von l-Ne0n zum Thema Batch & Shell ...

Batch & Shell
gelöst PowerShell EventLog informationen filtern (1)

Frage von derhoeppi zum Thema Batch & Shell ...

VB for Applications
gelöst PDF Datei auslesen und per VBA in Excel schreiben (3)

Frage von Julian8990 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...