-
Das Problem hatte ich auch. Ist es auf der Seite nicht beschrieben?
So kann man unter Windows zunächst die power-shell-Dateien nicht ausführen lassen, weil das unter Windows blockiert ist.
Hier noch ein Link wo es erklärt ist, wie es funktionieren soll: https://praxistipps.chip.de/windows-...so-gehts_41143
in PowerShelll Rechte ändern mit: Set-ExecutionPolicy ‹policy›
Bspw. set-executionpolicy unrestricted
Dann aufrufen mit bspw.: powershell.exe c:\windows\system32\chkdsk.ps1
Du kannst auf dem Desktop eine Textdatei anlegen, schreibst die Zeile dort rein und benennst die Extension der Datei, nach dem Speichern, in "cmd" um.
Danach kannst Du diese Datei auf dem Desktop doppelklicken und sie wird ausgeführt. Bei mir erscheint dann die CHKDSKResults.txt auf dem Desktop, weil die bei mir in der PS1-Datei ohne Pfad drin steht. Dann wird die Datei dort erstellt, wo auch meine CMD-Datei liegt.
-
ist mir iwie zu verworren...
wo soll ich das reinschreiben?
an den Anfang einer .BAT Datei?
So?
[chkdskscript.ps1]
Code:
get-winevent -FilterHashTable @{logname="Application"; id="1001"}| ?{$_.providername –match "wininit"} | fl timecreated, message | out-file d:\CHKDSKResults.txt
[powershell_exe.bat]
Code:
Set-ExecutionPolicy unrestricted
powershell.exe chkdskscript.ps1
(beide, also .BAT und .ps1, liegen auf d:\ )
das klappt nicht, da kommt nichts sichtbares außer einer wieder nicht lesbaren Fehlermeldung
auch wenn ich erst Powershell aufrufe, dann eingebe
Set-ExecutionPolicy unrestricted
dann Powershell beende und dann die .BAT Datei aufrufufe (ohne die 1. Zeile): wieder nur kurze unlesbare Fehlermeldung.
Wie muss die .BAT Datei richtig aussehen (getestet), damit sie direkt ausführbar ist, ohne dass ich vorher erst Powershell gesondert aufrufen muss?
-
1. Power Shell rechte ändern, PowerShell aufrufen, Eingabe Rechte ändern vornehmen. Beispiel:
Code:
Windows PowerShellCopyright (C) 2009 Microsoft Corporation. Alle Rechte vorbehalten.
PS C:\Windows\system32> set-executionpolicy unrestricted
Ausführungsrichtlinie ändern
Die Ausführungsrichtlinie trägt zum Schutz vor nicht vertrauenswürdigen Skripts bei. Wenn Sie die Ausführun
ändern, sind Sie möglicherweise den im Hilfethema "about_Execution_Policies" beschriebenen Sicherheitsrisi
ausgesetzt. Möchten Sie die Ausführungsrichtlinie ändern?
[J] Ja [N] Nein [H] Anhalten [?] Hilfe (Standard ist "J"): j
PS C:\Windows\system32>
2. Auf dem Desktop eine Datei anlegen: chkdsk.txt
Diese Datei öffnen, mit einem Texteditor.
3. In den Texteditor eingeben: powershell.exe c:\windows\system32\chkdsk.ps1
Dabei Deinen eigenen Pfad für chkdsk.ps1 verwenden, wo immer Deine PS1-Datei steht.
4. Textdatei speichern.
5. Auf dem Desktop die Datei chkdsk.txt in chkdsk.cmd umbenennen.
6. chkdsk.cmd auf dem Desktop doppelt anklicken.
- - - Aktualisiert - - -
Inhalt der PS1-Datei bei mir:
Code:
get-winevent -FilterHashTable @{logname="Application"; id="1001"}| ?{$_.providername –match "wininit"} | fl timecreated, message | out-file CHKDSKResults.txt
-
update:
das hatte ich so gemacht, hat aber nicht geklappt.
Der Fehler war:
PS braucht den Dateipfad d:\ , auch wenn es im aktuellen Verzeichnis liegt wie die .BAT Datei, also
[powershell_exe.bat]
Code:
powershell.exe d:\chkdskscript.ps1
so geht es jetzt, tausend Dank!