Add-PSSnapin을 호출하기 전에 PowerShell 스냅인이 이미 로드되었는지 확인하는 방법
PowerShell 스크립트 그룹은 함께 실행되거나 한 번에 실행되기도 합니다.각 스크립트는 특정 스냅인을 로드해야 합니다.
현재 각 스크립트가 호출하고 있습니다.Add-PSSnapin XYZ
처음에.
여러 스크립트를 연속해서 실행하면 다음 스크립트가 느려집니다.
Windows PowerShell 스냅인 XYZ는 항상 추가되므로 추가할 수 없습니다.스냅인의 이름을 확인하고 다시 시도하십시오.
Add-PSSnapin을 호출하기 전에 각 스크립트에 스냅인이 이미 로드되었는지 확인하려면 어떻게 해야 합니까?
Snapin을 쿼리하지만 찾을 수 없는 경우 오류가 발생하지 않도록 PowerShell에 알려주는 다음과 같은 작업을 수행할 수 있습니다.
if ( (Get-PSSnapin -Name MySnapin -ErrorAction SilentlyContinue) -eq $null )
{
Add-PsSnapin MySnapin
}
스캇이 이미 답을 줬어또한 로드하고 이미 로드된 경우 오류를 무시할 수도 있습니다.
Add-PSSnapin -Name <snapin> -ErrorAction SilentlyContinue
@ScottSaad의 코드샘플을 시도해 봤지만 소용이 없었습니다.정확한 이유는 알 수 없지만, 수표는 믿을 수 없고, 때로는 성공하고 때로는 실패했어요.그 결과, 이 기능을Where-Object
필터링Name
속성이 더 잘 작동합니다.
if ((Get-PSSnapin | ? { $_.Name -eq $SnapinName }) -eq $null) {
Add-PSSnapin $SnapinName
}
코드 제공:
놀랍게도 스크립트가 의존관계를 지정하는 네이티브한 방법은 아무도 언급하지 않았습니다.#REQUIRES -PSSnapin Microsoft.PowerShell...
코멘트/프로세서 디렉티브.같은 방법으로 고도화를 요구할 수 있습니다.-RunAsAdministrator
, 모듈:-Modules Module1,Module2
및 특정 Runspace 버전입니다.
입력해서 더 읽기Get-Help about_requires
Scott Saads는 일을 하지만 내가 보기엔 이게 좀 더 빠른 것 같다.측정해 본 적은 없지만, 에러메시지가 발생하지 않기 때문에 로딩 속도가 조금 빠른 것 같습니다.
$snapinAdded = Get-PSSnapin | Select-String $snapinName
if (!$snapinAdded)
{
Add-PSSnapin $snapinName
}
언급URL : https://stackoverflow.com/questions/1477994/how-to-check-if-powershell-snap-in-is-already-loaded-before-calling-add-pssnapin
'programing' 카테고리의 다른 글
특정 위치에서 cmd 창을 열려면 어떻게 해야 합니까? (0) | 2023.04.21 |
---|---|
체리픽을 어떻게 중단하죠? (0) | 2023.04.21 |
Bash if 문의 정규식 일치 (0) | 2023.04.21 |
grep로 한 단어를 제외하려면 어떻게 해야 하나요? (0) | 2023.04.21 |
IIS8의 WCF. *.svc 핸들러 매핑이 작동하지 않음 (0) | 2023.04.21 |