PowerShell에서 Script, Function, Module의 차이점 이해


  • 개요
    • Script, Function, Module은 비슷하다. 출발은 Script이다.
    • Script를 사용하는 이유는 반복적인 작업을 할 때 GUI로 클릭 클릭으로 하지 않고 지정된 시간 및 원할 때 스크립트를 실행하면 편하다
  • Script
    • Script의 확장자는 .ps1 이고 그냥 한 번의 Enter로 실행된다
    • 이 파일은 로컬 컴퓨터에서 실행, 원격 컴퓨터에 접속하여 실행, 로컬에서 원격 컴퓨터로 실행, 예약 작업으로 실행, Group Policy로 실행할 수 있다
  • Function
    • Script안에 하나 이상의 기능을 포함하기 위해 명령어를 만들어서 사용하는 것이 Function이다
    • Function의 확장자는 .ps1이고 실행할 때는 경로를 지정하여 실행한다
      • . .\script.ps1
      • Get-MyCommand
    • 그런 다음 그 안에 포함된 명령어를 입력하여 실행하면 된다
  • Module
    • Module의 확장자는 .psm1이고 그 안에 여러 명령어가 있어서 Function과 유사하다
    • Import-Module을 통하여 메모리에 명령어를 Load할 수 있기 때문에 어느 위치에서나 명령어를 실행할 수 있다
    • Function은 파일이 있는 위치까지 이동하여 명령어를 실행하게 되며, 해당 세션에서만 명령어를 실행할 수 있다
    • 반면에, Module 파일인 .psm1은 C:\Windows\System32\WindowsPowerShell\v1.0\Modules\Rest-Azure 폴더에 저장하면 이 경로는 PowerShell을 실행할 때 자동으로 메모리에 로드되므로 언제든지 경로에 신경 쓰지 않고 실행할 수 있는 장점이 있다
  • 결론
    • 가장 단순한 것이 Script이고, 이것은 원격 컴퓨터로도 실행할 수 있는 장점이 있다. function 및 Module은 원격으로는 실행할 수 없다
    • Function은 script 형태로서 동일한 세션에서 명령어로 사용하고자 할 때 사용한다
    • Module은 복잡한 내용을 명령어로 만들어 언제든지 사용할 수 있도록 하는 장점이 있다.
Advertisements

파일의 작업 시간 기록하기


자신이 명령어를 실행한 것을 다시 공부하기 위해서 명령어들을 저장하고자 한다. 이 때 이 파일을 언제 생성했는지 기록을 남기고 싶다면 다음과 같이 한다.
또는 스크립트를 작성할 때 작성 시간을 기록할 때 유용하다. 즉, 스크립트 내용의 제일 위해 날짜를 입력하고 스크립트를 생성한다. 그리고 #을 붙여서 주석으로 처리하면 된다ㅏ

1.많은 명령어를 실행한다
2.Get-Date | Out-File -FilePath c:\mycommandlist.txt -Append
3. Get-History | Out-File -FilePath c:\mycommandlist.txt -Append

이렇게 한 한 제대로 작업이 되었는지 확인하기
4. Get-Content -Path c:\mycommandlist.txt
mycommandlist