336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
스크립트 모듈의 확장자 : .psm1
스크립트 모듈을 사용하면 특정 경로에서 스크립트 파일을 실행하고 함수를 다시 호출하는 과정을 거치지 않아도 된다. 기본 파워셸 명령을 사용할 때처럼 단순히 이름과 필요한 매개변수를 입력하여 사용하면 된다.
작성한 모듈을 올바른 위치에 정확한 파일 확장자로 저장했다면, 파워셸을 시작할 때마다 자동으로 모듈을 찾아 로드하기 때문에작성한 함수를 해당 셸 내에서 편리하게 사용할 수 있다.
스크립트 모듈을 저장하는 위치를 확인할 때 살펴볼 환경 변수가 PSModulePath 이다.
PS /> Get-Content Env:/PSModulePath /Users/{User-Name}/.local/share/powershell/Modules:/usr/local/share/powershell/Modules:/usr/local/microsoft/powershell/6.0.2/Modules
아래 경로에 모듈이 저장된다.
마이크로소프트에서 예약한 위치, 로그인한 사용자의 프로필 위치 시스템 전역 위치에 해당한다.
- /Users/{User-Name}/.local/share/powershell/Modules
- /usr/local/share/powershell/Modules
- /usr/local/microsoft/powershell/6.0.2/Modules
스크립트 모듈을 만드는 방법
PSMail.psm1
function Send-OutlookMail{ [CmdletBinding()] Param( [Parameter(Mandatory=$False)] [string] $From = "김도균", [Parameter(Mandatory=$True)] [string] $To, [Parameter(Mandatory=$False)] [string] $Cc = "steelflea@outlook.com", [Parameter(Mandatory=$True)] [string] $Subject, [Parameter(Mandatory=$False)] [string] $Body = "PowerShell에서 보낸 메일" ) BEGIN { $Cred = (Get-Credential) $SmtpSvr=“smtp.live.com” $SmtpPort="587" } PROCESS { Send-MailMessage -From $From -To $To -Cc $Cc -Subject $Subject ` -Body $Body -SmtpServer $SmtpSvr -Port $SmtpPort -UseSsl ` -Credential $Cred -Encoding UTF8 } END { Clear-Variable -Name Cred } }
위 모듈을 PSMail 이라는 폴더를 만들어 저정한다.
PS /usr/local/share/powershell/Modules/PSMail> ls -al total 8 drwxr-xr-x 3 hongkun admin 96 6 29 23:10 . drwxr-xr-x 3 hongkun admin 96 6 29 23:09 .. -rw-r--r--@ 1 hongkun admin 76 6 29 23:10 PSMail.psm1 PS /usr/local/share/powershell/Modules/PSMail> Send- Send-MailMessage Send-OutlookMail PS /usr/local/share/powershell/Modules/PSMail> Get-Module -ListAvailable Directory: /usr/local/share/powershell/Modules ModuleType Version Name ExportedCommands ---------- ------- ---- ---------------- Script 0.0 PSMail Send-OutlookMail Directory: /usr/local/microsoft/powershell/6.0.2/Modules ModuleType Version Name ExportedCommands ---------- ------- ---- ---------------- Manifest 1.1.0.0 Microsoft.PowerShell.Archive {Compress-Archive, Expand-Archive} Manifest 3.0.0.0 Microsoft.PowerShell.Host {Start-Transcript, Stop-Transcript} Manifest 3.1.0.0 Microsoft.PowerShell.Management {Add-Content, Clear-Content, Clear-ItemProperty, Join-Path...} Manifest 3.0.0.0 Microsoft.PowerShell.Security {Get-Credential, Get-ExecutionPolicy, Set-ExecutionPolicy, ConvertFrom-Secure... Manifest 3.1.0.0 Microsoft.PowerShell.Utility {Format-List, Format-Custom, Format-Table, Format-Wide...} Script 1.1.7.0 PackageManagement {Find-Package, Get-Package, Get-PackageProvider, Get-PackageSource...} Script 1.6.0 PowerShellGet {Install-Module, Find-Module, Save-Module, Update-Module...} Script 0.0 PSDesiredStateConfiguration {ValidateNodeManager, Get-PublicKeyFromFile, Set-PSDefaultConfigurationDocume... Script 1.2 PSReadLine {Get-PSReadlineKeyHandler, Set-PSReadlineKeyHandler, Remove-PSReadlineKeyHand...
Send- 까지만 입력하고 tab을 누르면 추가한 모듈을 확인 할 수 있다.
'ⓟrogramming > PowerShell' 카테고리의 다른 글
POWERSHELL SCRIPT - 개체 선택 (0) | 2018.07.03 |
---|---|
POWERSHELL SCRIPT - 스크립트 흐름 제어 구문 (0) | 2018.07.01 |
POWERSHELL SCRIPT - 파워셸 범위 (0) | 2018.06.28 |
POWERSHELL SCRIPT - 모듈화 (0) | 2018.06.28 |
PowerShell Script - 변수 (0) | 2018.06.26 |