PowerShell har många olika lager avsäkerhet som förhindrar att skadliga skript och kommandon körs. Till exempel kan du som standard inte köra ett skript som du har laddat ner från internet om du inte ändrar PowerShell-körningspolicyn. Andra säkerhetsåtgärder förhindrar att du kör ett skript genom att dubbelklicka på det. Du kan inte koppla PS1-skript till PowerShell och det enda sättet att köra ett skript är att högerklicka på det och välja köralternativet. Genom att dubbelklicka på den öppnas den i Anteckningar. Detta är bra för en säkerhetsåtgärd men irriterande om du vill att ett PowerShell-skript ska köras när en schemalagd uppgift körs. Arbetet är enkelt. Du kan använda ett batchskript för att automatiskt köra PowerShell-skript.
Batchmanus
Följande är det batchskript du behöver för att automatiskt köra PowerShell-skript på Windows 10. Varje PowerShell-skript behöver sitt eget Batch-skript.
Syntax
@ECHO OFF PowerShell.exe -Command "Path to script" PAUSE
Ersätt "Path to script" med den faktiska sökvägen till PowerShell-skriptet som du vill köra. Tänk på följande exempel;
Exempel
@ECHO OFF PowerShell.exe -Command "C:Reminder-ScriptsMilkBuy-Milk.ps1" PAUSE
Öppna Anteckningar och klistra in skriptet i det. Spara filen med .bat-förlängningen.
Vad den här batchfilen gör är att den öppnasPowerShell och kör sedan skriptet som du har pekat på det. Du kan fortfarande inte dubbelklicka på ett PowerShell-skript på skrivbordet och låta det automatiskt köras i PowerShell. Den aktuella filen öppnar ett kommandotolk-fönster och det visar ett 'Tryck på valfri knapp för att fortsätta'. När du trycker på en knapp körs bara PowerShell-skriptet. Om du föredrar skriptkörningen utan att du behöver ingripa, redigera ovanstående skript och ta bort raden 'PAUSE'. Det ska se ut så här;
@ECHO OFF PowerShell.exe -Command "Path to script"
Task Scheduler & PowerShell-skript
Vi antar att du automatiskt vill köra enPowerShell-skript som en åtgärd för en schemalagd uppgift. För att uppnå detta måste du först skapa ett motsvarande Batch-skript, som visas ovan, för att köra PowerShell-skriptet. När du skapar en schemalagd uppgift väljer du sedan Batch-skriptet under den åtgärd som den ska vidta som svar på en trigger. Detta kommer faktiskt att köra PowerShell-skriptet.
Vi har använt Task Scheduler som ett exempel här, menom du använder någon annan automatiseringsapp måste du fortfarande ringa Batch-skriptet. Det enda undantaget är om automatiseringsappen du använder kan öppna PowerShell och sedan peka på PowerShell-skriptet.
kommentarer