Blubmann1337
Ensign
- Registriert
- Dez. 2009
- Beiträge
- 241
Hallo zusammen,
ich bin gerade etwas sehr ratlos und hoffe, dass mir hier ein Powershell-Profil weiterhelfen kann. Ich versuche für unser Unternehmen ein Script zu basteln, welches automatisch über die Aufgabenplanung ein SFC/DISM durchführt und im Fehlerfall eine Mail an den Admin verschickt. Ich habe erstelle einen Backgroundjob und lese dann das Ergebnis des Jobs in eine Datei ein.
Soweit hier mal mein Code:
Anschließend möchte ich eine Stringsuche durchführen, die Prüft, ob es einen Fehler gab und dann entsprechend weiter agieren. Jedoch bringt mich das Encoding zur Verzweiflung. Der Inhalt der Textdatei sieht wie folgt aus:
▄ b e r p r ³ f u n g 9 9 % a b g e s c h l o s s e n .
▄ b e r p r ³ f u n g 1 0 0 % a b g e s c h l o s s e n .
D e r W i n d o w s - R e s s o u r c e n s c h u t z h a t k e i n e I n t e g r i t õ t s v e r l e t z u n g e n g e f u n d e n .
Umlaute sind falsch und es wird zwischen den Buchstaben noch eine Leerzeichen gesetzt. Mit dem Parameter -Encoding hinter out-file habe ich keine Änderung, da die Encodierung bereits bei receive-job irgendwie verhunzt wird. Auch habe ich am Anfang des Scripts $PSDefaultParameterValues['*:Encoding'] = 'oem' bzw. utf8 usw. gesetzt aber ich habe keine Änderung in der Datei. Eine Stringsuche läuft ins leere. Hat wer eine Idee oder alternativ eine andere Lösung?
ich bin gerade etwas sehr ratlos und hoffe, dass mir hier ein Powershell-Profil weiterhelfen kann. Ich versuche für unser Unternehmen ein Script zu basteln, welches automatisch über die Aufgabenplanung ein SFC/DISM durchführt und im Fehlerfall eine Mail an den Admin verschickt. Ich habe erstelle einen Backgroundjob und lese dann das Ergebnis des Jobs in eine Datei ein.
Soweit hier mal mein Code:
PowerShell:
$Path= 'C:\JobLogs'
$Date= get-date -format "dd MM yyyy"
$LogFile= "C:\JobLogs\Ergebnis$date.txt"
start-job -name SFC -ScriptBlock {sfc /scannow}
if (test-path $path) {
write-host "$Path gefunden, exportiere Logs"
}
else {
new-item C:\JobLogs -itemtype directory;
Write-Host "$Path nicht gefunden, erstelle Pfad und exportiere Logs"
}
wait-job -name SFC | receive-job | out-file -FilePath $LogFile
Anschließend möchte ich eine Stringsuche durchführen, die Prüft, ob es einen Fehler gab und dann entsprechend weiter agieren. Jedoch bringt mich das Encoding zur Verzweiflung. Der Inhalt der Textdatei sieht wie folgt aus:
▄ b e r p r ³ f u n g 9 9 % a b g e s c h l o s s e n .
▄ b e r p r ³ f u n g 1 0 0 % a b g e s c h l o s s e n .
D e r W i n d o w s - R e s s o u r c e n s c h u t z h a t k e i n e I n t e g r i t õ t s v e r l e t z u n g e n g e f u n d e n .
Umlaute sind falsch und es wird zwischen den Buchstaben noch eine Leerzeichen gesetzt. Mit dem Parameter -Encoding hinter out-file habe ich keine Änderung, da die Encodierung bereits bei receive-job irgendwie verhunzt wird. Auch habe ich am Anfang des Scripts $PSDefaultParameterValues['*:Encoding'] = 'oem' bzw. utf8 usw. gesetzt aber ich habe keine Änderung in der Datei. Eine Stringsuche läuft ins leere. Hat wer eine Idee oder alternativ eine andere Lösung?