Powershell Skript automatisch ausführen?
Fakten:
1) Angemeldet bin ich als nicht-admin und sicher konfiguriert ist das Konto auch. Viele ist abgedreht.
2) Auf meinem Desktop liegt ein power-shell script, das ich mehrmals am Tag anklicke und was mit: "Kontextmenü - Mit Power Shell ausführen" gut klappt.
3) Versuche ich, diese Ausführungen in der Aufgabenplanung auszuführen, so lese ich lediglich "die Rechte dieses Kontos erlauben keine Skript-Ausführung" und kann die Aufgabe nicht einmal testen und auch nicht speichern, es sei denn ich wäre als admin angemeldet. "ausführen" nach Speichern geht nach wie vor nicht.
4) Als Plan b legte ich mein Sript in den Ordner
C:\Users\xxxxxxxx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
das eine Verknüpfung enthält:
C:\Users\xxxx\Documents\PC\Script\myScript.ps1
5) dadurch öffnet sich die Powershell und zeigt mir mein Scipt an, führt es aber nicht aus.
Wie erreiche ich, dass mein Script automatisch ausgeführt wird? Bei der Aufgabenplanung sind die Rechte ein Problem. Doch etwa Opera konnte sein Update auch dort platzieren, also muss ich selbst es auch irgendwie können?
Ich bitte die Spezialisten hier daher um Lösung a oder b:
a) Wie formuliere ich die Verknüpfung in Autostart richtig?
b) Wie forciere ich die Rechte in der Aufgabenplanung?
3 Antworten
das Dein Script nicht ausgeführt wird ist keine Sache der Globalen Rechte, sondern der Art ob und welche Ausführungserlaubnis man für das auszuführende Script erteilt. (das ist allein eine Sache zwischen Powershell und dem Script)
Das ist der gebräuchliche Aufruf:
powershell -executionpolicy bypass -File "c:\blah\Mein Script.ps1"
eine trickreiche Variante wäre ein Batch-Poweshell-Hybrid.
simpelHybridDemo.cmd
<# : Batch Abschnitt ,Batch sieht in dieser Zeile die Eingabe aus der Datei # an ein SprungLabel, Powershell sieht den begin eines Kommentars.
@echo off
powershell -noprofile "iex (${%~f0} | out-string)"
rem das folgende pause hält das Fenster offen....
pause
exit /b
: Ende Batch
:: Ab der nächsten Zeile beginnt das eigentliche PowershellScript #>
#hier kan jedes Script rein...
Write-Host -f Green 'Hallo ich bin text aus dem Poweshellscript'
gespeichert wird das Script als normale Batch... !Wichtig die Zeilen mit <# und #> sind nötig um den Batchcode vom Powershellcode zu trennen.
Für einen normalen Aufruf als Batch sollte die Simple Variante ausreichen. Die Batch kannst Du sowohl in den Startup legen als auch über die Aufgabenplanung legen.
Diese Hybridscripte werden nicht von der Windows Sicherheit beäugt... für diese liest Powerschell einfach Text aus einer Datei mit der Endung .cmd... (also Vorsicht mit fremdem Scriptcode... dessen Funktionsweise unbekannt ist)
Das geht sogar mit Parameterübergabe... siehe https://www.gutefrage.net/frage/kann-ich-den-mauszeiger-durch-ein-skript-bewegen#answer-386920814
ganz lieben Dank!
Die Verknüpfung läuft einmal. Ob sie mit Startup tut, was sie soll, weiß ich erst morgen.
Man kann auch Powershell-Skripte in EXE-Dateien kompilieren: https://winfuture.de/downloadvorschalt,4029.html
Dann kann man die erstellte EXE-Datei z.B. bei Autostart hinzufügen.
danke, ja, das weiß ich.
Geht aber in meinem Fall nicht, weil der Rechner provoziert. Das ist nur ein Rechner und er tut nicht, was ich will. Das geht gar nicht.
Cron von Windows, also das Pendant zu CronTab bei Linux?