Написали полезный PowerShell скрипт, который часто используете и теперь есть желание запускать скрипт через ярлык, как остальные программы в Microsoft Windows, то читайте дальше.
Если не знали, то знайте, что PowerShell запускается с параметрами. И параметры запуска ещё больше расширяют возможности практического использования PowerShell. Список доступных параметров и подробное описание каждого представлены в справке:
powershell.exe /?
Представляя себе возможности запуска PowerShell, которые даёт использование описанных в справке параметров, приступим к разбору непосредственного вопроса заметки. При этом надо иметь в виду, что PowerShell скрипт может быть реализован в виде одной строки кода или отдельного файла с кодом. Поэтому рассмотрю создание ярлыка для каждого случая.
В обоих примерах скрипт будет выполнять очистку временных файлов в Microsoft Windows. Для его выполнения требуются права Администратора.
Ярлык для запуска однострокового скрипта PowerShell
В диалоге мастера создания нового ярлыка в поле для указания пути к объекту, вставьте следующую команду и сохраните ярлык, задав ему имя.
powershell.exe -Command "& {Remove-Item @('C:\Windows\Temp\*', 'C:\Windows\Prefetch\*', 'C:\Documents and Settings\*\Local Settings\temp\*', 'C:\Users\*\Appdata\Local\Temp\*') -Force -Recurse}"
В случае, если передаваемый для исполнения код скрипта содержит фигурные скобки или сложные варианты экранирования кавычками, вместо параметра Command используется параметр EncodedCommand, принимающий строку, закодированную в Base64. Пример работы с параметром EncodedCommand показан в справке PowerShell.
Ярлык для запуска скрипта PowerShell из файла
Предположим, что следующий код скрипта PowerShell сохранён в файле %HOMEDRIVE%%HOMEPATH%”\Documents\WindowsPowerShell\Scripts\Remove-TempFiles.ps1:
Set-Location 'C:\Windows\Temp'
Remove-Item * -Recurse -Force
Set-Location 'C:\Windows\Prefetch'
Remove-Item * -Recurse -Force
Set-Location 'C:\Documents and Settings'
Remove-Item '.\*\Local Settings\temp\*' -Recurse -Force
Set-Location 'C:\Users'
Remove-Item '.\*\Appdata\Local\Temp\*' -Recurse -Force
Для запуска PowerShell скрипта из файла, в диалоге мастера создания нового ярлыка в поле для указания пути к объекту, используйте следующую команду.
powershell.exe -ExecutionPolicy Bypass -File %HOMEDRIVE%%HOMEPATH%"\Documents\WindowsPowerShell\Scripts\Remove-TempFiles.ps1"
Обратите внимание на значение параметра ExecutionPolicy равное Bypass, которое разрешает выполнение любых скриптов, при этом никакие предупреждения и запросы не выводятся. Используйте этот параметр с осторожностью, задавая политику выполнения скриптов PowerShell согласно требуемому уровню безопасности.
Использование ярлыков для запуска скриптов PowerShell повышают удобство практического использования PowerShell, а это повод написать новый скрипт, автоматизирующий очередную рутинную задачу или даже заменяющий отдельную программу.