Rozprowadzam skrypt PowerShell do mojego zespołu. Skrypt ma na celu pobranie adresu IP z klienta Vsphere, nawiązanie połączenia mstsc i zarejestrowanie go w udostępnionym pliku.
W chwili, gdy użyli skryptu, poznali adres IP maszyny. Następnie zawsze używają bezpośrednio mstsc zamiast uruchamiania skryptu PowerShell. (Ponieważ używają mstsc, nie jestem w stanie wiedzieć, czy często używają maszyny wirtualnej, czy nie).
Przede wszystkim mówią mi, że uruchomienie PowerShell nie jest proste.
Jestem chory przez ich lenistwo.
Czy istnieje sposób, aby skrypt programu PowerShell działał przez dwukrotne kliknięcie pliku .ps1?
powershell
powershell-2.0
Samselvaprabu
źródło
źródło
Odpowiedzi:
Utwórz skrót z czymś takim jak „Cel”:
źródło
-NoProfile
jest również pomocny, ponieważ profil może robić różne rzeczy, których skrypt nie oczekuje.Lub jeśli chcesz, aby wszystkie pliki PS1 działały tak, jak pliki VBS, możesz edytować rejestr w następujący sposób:
Edytuj wartość domyślną, aby była podobna ...
Następnie możesz po prostu dwukrotnie kliknąć wszystkie pliki .PS1, tak jak chcesz. moim skromnym zdaniem, być w stanie po wyjęciu z pudełka.
Mam zamiar nazwać to „Hack do usuwania kastracji z Powershell”. LOL ciesz się!
źródło
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo -File "%1"%*
którym możesz opcjonalnie dołączyć rozszerzenie-ExecutionPolicy unrestricted
. Zwróć uwagę na zmianę na końcu polecenia, która umożliwia przekazanie zerowej lub większej liczby parametrów do skryptu programu PowerShell. Cudzysłowy i odstępy wokół znaków procentowych powinny być dokładnie takie, jak pokazano.ftype Microsoft.PowerShellScript.1=^"^%SystemRoot^%\System32\WindowsPowerShell\v1.0\powershell.exe^" -NoLogo -ExecutionPolicy Unrestricted -File ^"%1^" %*
co spowoduje to samo.Należy pamiętać, że jedną z funkcji zabezpieczeń programu PowerShell jest to, że użytkownicy NIE mogą uruchamiać skryptu za pomocą dwukrotnego kliknięcia. Zachowaj szczególną ostrożność, modyfikując to ustawienie. Alternatywą może być spakowanie skryptu. Niektóre edytory, takie jak PrimalScript, potrafią to zrobić. Użytkownicy nadal potrzebują zainstalowanego programu PowerShell, ale mogą kliknąć dwukrotnie plik exe. Wygląda na to, że Twój zespół potrzebuje trochę edukacji.
źródło
To zadziałało dla mnie w systemie Windows 10 i PowerShell 5.1:
źródło
Set-ExecutionPolicy
).Napisałem to kilka lat temu (uruchom z uprawnieniami administratora):
źródło
Musisz dostosować rejestr. Najpierw skonfiguruj PSDrive dla HKEY_CLASSES_ROOT, ponieważ nie jest to ustawione domyślnie. Polecenie to:
Teraz możesz nawigować i edytować klucze rejestru i wartości w HKEY_CLASSES_ROOT, tak jak w zwykłych HKCU i HKLM PSDrives.
Aby skonfigurować dwukrotne kliknięcie w celu bezpośredniego uruchamiania skryptów PowerShell:
Aby skonfigurować dwukrotne kliknięcie, aby otworzyć skrypty PowerShell w PowerShell ISE:
Aby przywrócić wartość domyślną (ustawia dwukrotne kliknięcie, aby otworzyć skrypty PowerShell w Notatniku):
źródło
Zgadzam się, że ustawienie ustawień systemowych może być trochę za duże, ale skrót wymagający zakodowanej ścieżki nie jest idealny. Plik nietoperza faktycznie ładnie rozwiązuje problem
RunMyPowershellScript.bat
Ten plik wsadowy można teraz kliknąć dwukrotnie, można łatwo utworzyć skróty do pliku wsadowego, a skrypt można wdrożyć w dowolnym folderze.
źródło
Proste polecenia programu PowerShell, aby ustawić to w rejestrze;
źródło
ExecutionPolicy RemoteSigned
tak, aby losowy skrypt pobrany z sieci / internetu (z metadanymi wskazującymi, że nie został utworzony lokalnie) nie byłby wykonywany po dwukrotnym kliknięciu, ale każdy plik utworzony przez skopiowanie i wklejanie kodu do pliku .ps1 zostanie wykonane, ponieważ nie ma skojarzonych z nim metadanych.Przywróć wartość, jeśli chcesz ponownie używać Notatnika jako domyślnego.
źródło
Możesz ustawić domyślne skojarzenie
ps1
plików,powershell.exe
które umożliwi wykonanie skryptu PowerShell, klikając go dwukrotnie.W systemie Windows 10
ps1
plik prawym przyciskiem myszyOpen with
Choose another app
More apps
Look for another app on this PC
.C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
.Spowoduje to zmianę skojarzeń
ps1
plików i pliki zostaną uruchomione, klikając je dwukrotnie. Możesz przywrócić jej domyślne zachowanie, ustawiającnotepad.exe
aplikację domyślną.Źródło
źródło
umieść prosty plik .cmd w moim podfolderze z moim plikiem .ps1 o tej samej nazwie, więc na przykład skrypt o nazwie „foobar” będzie miał „foobar.ps1” i „foobar.cmd”. Aby uruchomić plik .ps1, wszystko, co muszę zrobić, to kliknąć plik .cmd w eksploratorze lub uruchomić .cmd z wiersza poleceń. Używam tej samej nazwy podstawowej, ponieważ plik .cmd automatycznie wyszuka plik .ps1, używając własnej nazwy.
Pushd / popd umożliwia uruchomienie pliku .cmd z wiersza poleceń bez konieczności przechodzenia do określonego katalogu, w którym znajdują się skrypty. Nastąpi przejście do katalogu skryptów, a po zakończeniu wróć do oryginalnego katalogu.
Możesz także wyłączyć pauzę, jeśli chcesz, aby okno poleceń zniknęło po zakończeniu działania skryptu.
Jeśli mój skrypt .ps1 ma parametry, pytam o nie za pomocą monitów GUI za pomocą formularzy .NET, ale także dostosowuję skrypty do akceptowania parametrów, jeśli chcę je zamiast tego przekazać. W ten sposób mogę kliknąć go dwukrotnie w Eksploratorze i nie muszę znać szczegółów parametrów, ponieważ zapyta mnie o to, czego potrzebuję, z polami listy lub innymi formularzami.
źródło
Jest to oparte na odpowiedzi KoZm0kNoT. Zmodyfikowałem go, aby działał na różnych dyskach.
Dwa pushd / popds są niezbędne w przypadku, gdy cwd użytkownika znajduje się na innym dysku. Bez zestawu zewnętrznego cwd na dysku ze skryptem zostanie utracone.
źródło
Oto, czego używam, aby domyślnie uruchamiać scrips jako administrator:
Musisz wkleić to do regedit jako domyślną wartość dla:
Lub oto skrypt, który zrobi to za Ciebie:
źródło
Jeśli znasz zaawansowaną administrację Windows, możesz użyć tego pakietu ADM (instrukcje znajdują się na tej stronie) i zezwolić na uruchamianie skryptów PowerShell po dwukrotnym kliknięciu za pomocą tego szablonu i lokalnego obiektu GPO. Następnie możesz po prostu zmienić domyślny program powiązany z typem pliku .ps1 na
powershell.exe
(użyj wyszukiwania, jest dość schowany) i jesteś gotowy do uruchamiania skryptów PowerShell za pomocą dwukrotnego kliknięcia.W przeciwnym razie zalecałbym trzymać się innych sugestii, ponieważ możesz zepsuć cały system za pomocą tych narzędzi administracyjnych.
Myślę, że ustawienia domyślne są zbyt surowe. Jeśli komuś uda się umieścić jakiś złośliwy kod na twoim komputerze, może on również ominąć to ograniczenie (zawinąć je w plik .cmd lub .exe, lub sztuczka ze skrótem), a wszystko, co ostatecznie osiąga, to po prostu zapobiec z łatwego sposobu uruchamiania napisanego skryptu.
źródło
Możesz skorzystać z funkcji „SendTo” systemu Windows, aby ułatwić uruchamianie skryptów PS1. Korzystając z tej metody, możesz kliknąć prawym przyciskiem myszy skrypt PS1 i wykonać. To nie jest dokładną odpowiedzią na pytanie OP, ale jest blisko. Miejmy nadzieję, że przyda się to innym. BTW .. jest to pomocne przy wielu innych zadaniach.
źródło
Użyłem tego (wystarczy uruchomić go tylko raz); upewnij się również, że masz uprawnienia do wykonywania:
z PowerShell z podwyższonymi uprawnieniami:
następnie z pliku nietoperza:
i voila; dwukrotne kliknięcie * .ps1 spowoduje jego wykonanie.
źródło
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
jest wymagane.W systemie Windows 10 możesz również chcieć usunąć nadpisanie Eksploratora Windows dla skojarzenia rozszerzenia pliku:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ps1\UserChoice
dodatkowo
HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\open\command
zmiany wymienionej w innych odpowiedziach.Zobacz https://stackoverflow.com/a/2697804/1360907
źródło
Wypróbowałem większość odpowiedzi na to pytanie, ale napotkałem komunikaty o błędach. Wtedy znalazłem odpowiedź tutaj:
PowerShell mówi, że „wykonywanie skryptów jest wyłączone w tym systemie”.
U mnie dobrze działało to rozwiązanie:
Możesz wkleić to do pliku .bat i kliknąć go dwukrotnie.
źródło
Od http://www.howtogeek.com/204166/how-to-configure-windows-to-work-with-powershell-scripts-more-easily :
Ustaw domyślną wartość opcji
HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell
to0
źródło