PowerShell 스크립트를 실행하는 방법


711

PowerShell 스크립트를 어떻게 실행합니까?

  • myscript.ps1이라는 스크립트가 있습니다.
  • 필요한 모든 프레임 워크가 설치되어 있습니다
  • 그 설정 실행 정책의 일을
  • 나는의 지시에 따랐다 이 MSDN 도움말 페이지를 하고 그렇게 좋아 실행하려고 : powershell.exe 'C:\my_path\yada_yada\run_import_script.ps1'(함께 또는없이 --noexit)

파일 이름이 출력되는 것을 제외하고는 정확히 아무것도 반환하지 않습니다.

오류도없고, 메시지도없고 아무것도 없습니다. 아, 추가 -noexit하면 똑같은 일이 발생하지만 PowerShell 내에 남아 수동으로 종료해야합니다.

.ps1 파일은 프로그램을 실행하고 해당 프로그램의 출력에 따라 오류 수준을 반환해야합니다. 그러나 나는 아직 거기에 도착하지 않을 것이라고 확신합니다.

내가 무엇을 잘못하고 있지?


2
시작한 powershell대로를 시작하십시오 cmd. 이제 myscript.ps1스크립트를 실행 파일 (powershell 창)에서 실행할 수 있습니다..\myscript.ps1
parasrish

답변:


732
  1. Windows PowerShell을 시작하고 PS명령 프롬프트가 나타날 때까지 잠시 기다립니다.
  2. 스크립트가있는 디렉토리로 이동

    PS> cd C:\my_path\yada_yada\ (enter)
  3. 스크립트를 실행하십시오.

    PS> .\run_import_script.ps1 (enter)

내가 무엇을 놓치고 있습니까?

또는 다음 cmd.exe과 같이 PowerShell 스크립트를 실행할 수 있습니다 .

powershell -noexit "& ""C:\my_path\yada_yada\run_import_script.ps1""" (enter)

블로그 게시물 에 따르면 여기

또는 C # 응용 프로그램에서 PowerShell 스크립트를 실행할 수도 있습니다 :-)

C # 응용 프로그램에서 PowerShell 스크립트를 비동기 적으로 실행


19
귀하의 블로그 게시물 링크가 그렇게했습니다. 나는 왜 그런지 이해하지 못하지만 ( 세 개의 큰 따옴표에 powershell -noexit "& "C:\yada_yada\run_import_script.ps1"주목 해야 함)이 시점에서 나는 정말로 신경 쓰지 않습니다 :) 고마워요!
Pekka

16
정확히 무엇을 "&합니까?
BlueRaja-대니 Pflughoeft

16
technet.microsoft.com/en-us/library/ee176949.aspx 에 따르면 '&'는 "실제로 문자열 값을 실행하려는 경우 (경로가 포함 된 스크립트를 실행하려는 경우) 큰 따옴표로 묶으십시오) Call 연산자 (앰퍼샌드)로 경로를 시작해야합니다. "
Doug Dawson

29
새로 만든 서명되지 않은 스크립트에 대해 powershell의 기본 실행 정책을 무시할 때까지이 중 어느 것도 효과가 없었습니다. 무엇보다도 관리자 권한으로 powershell을 다시 시작해야했습니다. @LukePuplett에 전적으로 동의합니다. 가장 간단한 유스 케이스를 20 분 동안 인터넷 검색 및 퍼팅하는 것이 좋습니다. 그리고 오류 메시지! 분명히이 사람들은 70 년대에 IBM에서 일했습니다.
Spike0xff

15
아래 의견에서 언급했듯이 실행 정책은 무시해야합니다. 여기서 다루지 않은 항목 중 하나는 매개 변수를 전달하는 명령 행에서 powershell 스크립트를 실행하는 방법입니다. 이렇게하려면 :powershell -executionpolicy bypass ".\myscript.ps1 yadayadayada"
Jim Lahman

229

PowerShell 2.0을 사용하는 경우 PowerShell.exe의 -File매개 변수를 사용하여 cmd.exe와 같은 다른 환경에서 스크립트를 호출하십시오. 예를 들면 다음과 같습니다.

Powershell.exe -File C:\my_path\yada_yada\run_import_script.ps1

5
그러한 호출에 매개 변수를 추가하는 방법이 있습니까?
Alexander Groß

11
스크립트 파일 경로 다음에 인수를 추적 할 수 있어야합니다. PowerShell.exe 사용법에서-[-File <filePath> <args>]
Keith Hill

"이 시스템에서 스크립트 실행이 비활성화되어로드 할 수 없습니다. 자세한 내용은"get-help about_signing "을 참조하십시오."
Pavel Vlasov

7
시스템에서 PowerShell 스크립트 실행을 활성화하지 않은 경우-ExecutionPolicy Bypass
Keith Hill

4
참고로 이것은 내 경험 (Windows 2012 Server)의 PowerShell 1.0에서도 작동합니다.
knocte

189

기본 스크립트 실행 정책을 수정하지 않고 스크립트를 실행하려는 경우 Windows PowerShell을 시작할 때 바이 패스 스위치를 사용할 수 있습니다 .

powershell [-noexit] -executionpolicy bypass -File <Filename>

11
또한 -nologo시작 배너를 제거 하는 옵션 포함
swdev

73

유형:

powershell -executionpolicy bypass -File .\Test.ps1

참고 : Test.ps1PowerShell 스크립트는 다음과 같습니다 .


이것은 같은 PowerShell에서 실행해야 powershell -executionpolicy bypass -File .\Test.ps1당신에게 현재 작업 디렉토리 가정은 Test.ps1을 포함
Yeow_Meng

29

나는 같은 문제가 있었고, 시도하고 시도했다 ... 마침내 나는 다음을 사용했다 :

powershell.exe -noexit "& 'c:\Data\ScheduledScripts\ShutdownVM.ps1'"

이 줄을 배치 파일에 넣으면 작동합니다.


22

PowerShell 1.0 만있는 경우이 트릭을 충분히 수행하는 것 같습니다.

powershell -command - < c:\mypath\myscript.ps1

스크립트 파일을 PowerShell 명령 줄로 파이프합니다.


3
보안 정책이 스크립트 실행을 허용하지 않을 때 유용한 트릭입니다.
Aron Lorincz

17

아주 쉽습니다. Windows에서 .ps1 파일을 마우스 오른쪽 단추로 클릭하고 셸 메뉴 에서 PowerShell로 실행을 클릭 하십시오 .


이는 실행 정책으로 스크립트를 실행할 필요없이 스크립트를 빠르게 실행하는 데 효과적입니다. 감사!
b01

이것이 제가 찾고 있던 것입니다, 감사합니다!
Aamol

11

cmd (BAT) 파일 사용 :

@echo off
color 1F
echo.

C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "PrepareEnvironment.ps1"

:EOF
echo Waiting seconds
timeout /t 10 /nobreak > NUL

관리자 권한으로 실행 해야하는 경우 :

  1. 바로 가기를 명령 프롬프트로 지정하십시오 (관리 명령 프롬프트라고 함).
  2. 바로 가기 속성을 열고 호환성 탭으로 이동하십시오.
  3. 권한 수준 섹션에서 "이 프로그램을 관리자 권한으로 실행"옆의 확인란이 선택되어 있는지 확인하십시오.


10

스크립트 이름이 .ps1확장명 으로 지정 되어 있고 PowerShell 창에있는 ./myscript.ps1경우 파일이 작업 디렉토리에 있다고 가정하면 실행 됩니다.

어쨌든 PowerShell 버전 5.1이 설치된 Windows 10에서는 어쨌든 가능하며 가능한 한 아무것도하지 않았다고 생각합니다.


2
이 질문에 어떻게 대답합니까?
피터 Mortensen

4
그것은 절대로 질문에 대답합니다 : 어떻게 powershell 스크립트를 실행합니까? 답 : powershell 콘솔을 시작한 다음 스크립트를 실행하십시오. 쉬운. 단순한. Linux에서도 작동합니다.
Thufir

4
이것은 절대적으로 질문에 대답하며, 내가 찾던 것입니다. 등은 myscript.ps1오류 던졌다,하지 작업을했지만으로 ./는 실행입니다.
Jeff

7
  • 스크립트의 경로, 즉 cmd에 의한 경로 설정을 제공하십시오.

    $> . c:\program file\prog.ps1

  • PowerShell의 진입 점 기능을 실행하십시오.

    예를 들어 $> add or entry_func or main


A로부터 당신의 명령을 실행 프롬프트 cmd를 : >$ . c:\program file\prog.ps1 '.' is not recognized as an internal or external command, operable program or batch file.>$ add or entry_func or main 'add' is not recognized as an internal or external command, operable program or batch file.
Suncat2000


1

-File파일 이름 앞에 매개 변수를 사용하십시오 . 인용문은 PowerShell이 ​​명령 문자열이라고 생각합니다.


1

작동하는 매우 간단한 답변이 있습니다.

  1. 관리자 모드에서 PowerShell 열기
  2. 운영: set-executionpolicy unrestricted
  3. 일반 PowerShell 창을 열고 스크립트를 실행하십시오.

오류 메시지의 일부로 제공된 링크를 따라이 솔루션을 찾았습니다. 실행 정책 정보

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.