Я распространяю скрипт PowerShell для своей команды. Сценарий должен получить IP-адрес от клиента Vsphere, установить соединение mstsc и записать его в общий файл.
В тот момент, когда они использовали скрипт, они узнали IP-адрес компьютера. После этого они всегда склонны использовать mstsc напрямую вместо запуска сценария PowerShell. (Поскольку они используют mstsc, я не могу знать, часто ли они используют виртуальную машину или нет.)
В основном они говорят мне, что запуск PowerShell не прост.
Меня тошнит от их лени.
Есть ли способ заставить скрипт PowerShell работать, дважды щелкнув файл .ps1?
powershell
powershell-2.0
Samselvaprabu
источник
источник
Ответы:
Создайте ярлык с именем типа «Цель»:
источник
-NoProfile
также полезно, так как профиль может делать все то, что сценарий не ожидает.Или, если вы хотите, чтобы все файлы PS1 работали так же, как файлы VBS, вы можете отредактировать реестр следующим образом:
Отредактируйте значение по умолчанию, чтобы оно было примерно таким ...
Затем вы можете просто дважды щелкнуть все ваши файлы .PS1, как вы хотели бы. по моему скромному мнению, можно из коробки.
Я собираюсь назвать это «взломом Powershell De-кастрации». LOL наслаждайся!
источник
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo -File "%1"%*
где вы можете при желании включить-ExecutionPolicy unrestricted
. Обратите внимание на изменение в конце команды, которое позволяет передавать в сценарий PowerShell ноль или более параметров. Кавычки и интервалы вокруг знаков процента должны быть точно такими, как показано.ftype Microsoft.PowerShellScript.1=^"^%SystemRoot^%\System32\WindowsPowerShell\v1.0\powershell.exe^" -NoLogo -ExecutionPolicy Unrestricted -File ^"%1^" %*
что сделает то же самое.Помните, что одной из функций безопасности PowerShell является то, что пользователи НЕ могут запускать сценарии двойным щелчком мыши. Будьте очень осторожны, если вы измените этот параметр. Альтернативой может быть упаковка вашего скрипта. Некоторые редакторы, такие как PrimalScript, могут это сделать. Пользователям по-прежнему необходимо установить PowerShell, но затем они могут дважды щелкнуть исполняемый файл. И, похоже, ваша команда нуждается в небольшом образовании.
источник
Это работало для меня на Windows 10 и powershell 5.1:
источник
Set-ExecutionPolicy
).Я написал это несколько лет назад (запустите его с правами администратора):
источник
Вам нужно настроить реестр. Во-первых, настройте PSDrive для HKEY_CLASSES_ROOT, так как он не установлен по умолчанию. Команда для этого:
Теперь вы можете перемещаться и редактировать ключи и значения реестра в HKEY_CLASSES_ROOT так же, как и в обычных PSDrive HKCU и HKLM.
Чтобы настроить двойной щелчок для запуска сценариев PowerShell напрямую:
Чтобы настроить двойной щелчок для открытия сценариев PowerShell в PowerShell ISE:
Чтобы восстановить значение по умолчанию (устанавливает двойной щелчок, чтобы открыть сценарии PowerShell в блокноте):
источник
Я согласен, что установка системных настроек может быть довольно сложной, но ярлык, требующий жестко заданного пути, не идеален. Файл bat на самом деле хорошо решает проблему
RunMyPowershellScript.bat
Теперь можно дважды щелкнуть этот командный файл, быстро создать ярлыки для командного файла и развернуть скрипт в любой папке.
источник
Простые команды PowerShell, чтобы установить это в реестре;
источник
ExecutionPolicy RemoteSigned
так, чтобы случайный скрипт, загруженный из сети / интернета (с метаданными, обозначающими, что он не был создан локально), не будет выполняться двойным щелчком, но любой файл, который вы создали с помощью копирования и вставка кода в файл .ps1 будет выполнена, поскольку с ним не связаны метаданные.Восстановите значение, если хотите снова использовать Блокнот по умолчанию.
источник
Вы можете установить ассоциацию
ps1
файлов по умолчанию,powershell.exe
которая позволит вам выполнить скрипт powershell, дважды щелкнув по нему.В Windows 10
ps1
файлOpen with
Choose another app
More apps
Look for another app on this PC
.C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
.Это изменит файловую ассоциацию, и
ps1
файлы будут выполнены, дважды щелкнув по ним. Вы можете изменить его обратно на поведение по умолчанию, установивnotepad.exe
приложение по умолчанию.Источник
источник
поместите простой файл .cmd в мою подпапку с моим файлом .ps1 с тем же именем, поэтому, например, сценарий с именем «foobar» будет иметь «foobar.ps1» и «foobar.cmd». Таким образом, чтобы запустить .ps1, все, что мне нужно сделать, это щелкнуть файл .cmd в проводнике или запустить .cmd из командной строки. Я использую то же самое базовое имя, потому что .cmd файл будет автоматически искать .ps1, используя свое собственное имя.
Pushd / popd позволяет запускать файл .cmd из командной строки, не переходя в конкретный каталог, в котором находятся скрипты. Он перейдет в каталог сценариев, а затем по завершении вернется в исходный каталог.
Вы также можете снять паузу, если хотите, чтобы окно командной строки исчезло после завершения сценария.
Если мой сценарий .ps1 имеет параметры, я запрашиваю их с помощью графического интерфейса, используя .NET Forms, но также делаю сценарии достаточно гибкими, чтобы принимать параметры, если я хочу вместо них передать их. Таким образом, я могу просто дважды щелкнуть по нему из Проводника и не знать детали параметров, так как он спросит меня, что мне нужно, со списками или другими формами.
источник
Это основано на ответе KoZm0kNoT. Я изменил его для работы на разных дисках.
Два pushd / popds необходимы, если cwd пользователя находится на другом диске. Без внешнего набора диск cwd на диске со сценарием будет потерян.
источник
Это то, что я использую, чтобы по умолчанию скрипты запускались от имени администратора:
Вам нужно будет вставить это в regedit как значение по умолчанию для:
Или вот скрипт, который сделает это за вас:
источник
Если вы знакомы с расширенным администрированием Windows, вы можете использовать этот пакет ADM (инструкции приведены на этой странице) и разрешить запуск сценариев PowerShell после двойного щелчка по этому шаблону и локальному объекту групповой политики. После этого вы можете просто изменить программу по умолчанию, связанную с типом файла .ps1, на
powershell.exe
(используйте поиск, она довольно спрятана), и вы готовы запускать сценарии PowerShell двойным щелчком мыши.В противном случае, я бы порекомендовал придерживаться других предложений, поскольку вы можете испортить всю систему с помощью этих инструментов администрирования.
Я думаю, что настройки по умолчанию слишком строги. Если кому-то удастся разместить вредоносный код на вашем компьютере, он / она также сможет обойти это ограничение (обернуть его в файл .cmd или .exe, или использовать ярлык с ярлыком), и все, что он в конце концов достигнет, это просто предотвратить Вы от простого способа запустить сценарий, который вы написали.
источник
Вы можете использовать функцию Windows «SendTo», чтобы упростить запуск сценариев PS1. Используя этот метод, вы можете щелкнуть правой кнопкой мыши скрипт PS1 и выполнить. Это не совсем ответ на вопрос ОП, но это близко. Надеюсь, это полезно для других. Кстати ... это полезно для множества других задач.
источник
Я использовал это (нужно запустить его только один раз); также убедитесь, что у вас есть права на выполнение:
из PowerShell с повышенными правами:
затем из файла bat:
и вуаля; двойной щелчок * .ps1 запустит его.
источник
The term '%1' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
assoc
требуется.В Windows 10 вы также можете удалить переопределение проводника Windows для ассоциации расширений файлов:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ps1\UserChoice
в дополнение к
HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\open\command
изменениям, упомянутым в других ответах.См. Https://stackoverflow.com/a/2697804/1360907
источник
Я попробовал самые лучшие ответы на этот вопрос, но столкнулся с сообщениями об ошибках. Тогда я нашел ответ здесь:
PowerShell говорит: «В этой системе отключено выполнение сценариев».
Для меня хорошо было использовать это решение:
Вы можете вставить это в файл .bat и дважды щелкнуть по нему.
источник
С http://www.howtogeek.com/204166/how-to-configure-windows-to-work-with-powershell-scripts-more-easily :
Устанавливает значение по умолчанию для
HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell
To0
источник