Computer >> 컴퓨터 >  >> 체계 >> Windows Server

오프라인 모드에서 PowerShell 모듈 설치(인터넷 액세스 없이)

가장 인기 있는 PowerShell 모듈은 공식 PowerShell 갤러리(PSGallery)에서 온라인으로 설치됩니다. ) Install-Module을 사용하는 저장소 명령. 그러나 컴퓨터가 격리된 네트워크에 있거나 PSRepository에 대한 직접 액세스가 제한된 경우 PowerShell 모듈을 설치할 수 없습니다. 일반적으로 직접 인터넷 액세스가 차단된 Windows Server 호스트에 PowerShell 모듈을 설치하려고 할 때도 마찬가지입니다. 이 기사에서는 PowerShell 모듈을 오프라인으로 설치하고 원격 컴퓨터에서 모듈을 가져오는 방법(예:SQLServer 관리 PoSh 모듈을 사용하는 경우)을 보여줍니다.

PowershellGallery.com에서 모듈을 다운로드할 수 있는 직접 링크는 없습니다. 사이트에서 다운로드할 수 있는 유일한 것은 NuGet 패키지(.nupkg 파일). NUPKG 파일에서 PowerShell 모듈을 설치할 수 있지만 이것은 완전한 모듈 설치가 아닙니다(주요 문제는 종속성이 해결되지 않는다는 것입니다).

오프라인 모드에서 PowerShell 모듈 설치(인터넷 액세스 없이)

오프라인 컴퓨터에 PowerShell 모듈을 설치하는 방법

먼저 인터넷에 연결된 컴퓨터에 필요한 PowerShell 모듈을 설치합니다.

PowerShell 버전 5.1 이상이 컴퓨터에 설치되어 있어야 합니다.

$PSVersionTable.PSVersion

모듈이 PSGallery에 있는지 확인하십시오.

Find-Module –Name *SqlServer*| Select Name, Version, Repository

오프라인 모드에서 PowerShell 모듈 설치(인터넷 액세스 없이)

컴퓨터의 지정된 로컬 폴더에 모듈을 다운로드합니다.

Save-Module –Name SqlServer –Path C:\PS\

오프라인 모드에서 PowerShell 모듈 설치(인터넷 액세스 없이)

모듈을 설치하려는 다른 컴퓨터에 폴더를 복사합니다.

PowerShell 모듈이 어떤 폴더에 저장되어 있는지 살펴보겠습니다.

$env:PSModulePath -split ";"

오프라인 모드에서 PowerShell 모듈 설치(인터넷 액세스 없이)

보시다시피 PowerShell 모듈은 다음 경로 중 하나에 있습니다.

  • C:\Users\username\Documents\WindowsPowerShell\Modules ($Home\Documents\PowerShell\Modules ) – 이 폴더의 PowerShell 모듈은 이 사용자(CurrentUser)만 사용할 수 있습니다.
  • C:\Program Files\WindowsPowerShell\Modules ($Env:ProgramFiles\WindowsPowerShell\Modules ) — 경로는 모든 컴퓨터 사용자를 위한 모듈을 설치하는 데 사용됩니다(-Scope AllUsers). );
  • C:\Windows\system32\WindowsPowerShell\v1.0\Modules – 내장 모듈의 기본 폴더입니다.

모듈을 C:\Program Files\WindowsPowerShell\Modules에 복사합니다. .

오프라인 모드에서 PowerShell 모듈 설치(인터넷 액세스 없이)

이제 SQLServer 모듈을 사용할 수 있는지 확인하십시오.

Get-Module -Name SQLServer -ListAvailable

오프라인 모드에서 PowerShell 모듈 설치(인터넷 액세스 없이)

아래와 같이 모듈 디렉토리를 얻을 수 있습니다.

(Get-Module -ListAvailable SQLServer).path

오프라인 모드에서 PowerShell 모듈 설치(인터넷 액세스 없이)

모듈에서 사용할 수 있는 명령 목록 표시:

Get-Command -Module SQLServer

같은 방법으로 모든 모듈을 설치할 수 있습니다. 저는 종종 이 방법을 사용하여 SQLServer, PSWindowsUpdate 또는 VMWare 모듈용 PowerCLI를 설치합니다.

명백한 이유로 오프라인 장치에 AzureAD 및 Exchange Online PowerShell 모듈을 설치하는 것은 의미가 없습니다.

원격 컴퓨터에서 PowerShell 모듈 가져오기

모든 컴퓨터에 PowerShell 모듈을 설치하지 않으려면 PSRemoting을 사용하여 원격 컴퓨터에서 모듈을 가져올 수 있습니다.

$session = New-PSSession -ComputerName dub-sql1

원격 컴퓨터에 설치된 모듈 목록을 표시하려면:

Get-Module -PSSession $session –ListAvailable

지정된 PowerShell 모듈을 컴퓨터로 가져오려면:

Import-Module -PSsession $session -Name SqlServer

끝나면 세션을 종료하는 것을 잊지 마십시오.

Remove-PSSession $session

암시적 원격을 통해 원격 컴퓨터에 설치된 PowerShell 모듈을 로컬로 사용하는 또 다른 흥미로운 방법 .

Invoke-Command를 사용하여 원격 컴퓨터에 연결하고 원하는 PowerShell 모듈을 가져옵니다.
$session = New-PSSession -ComputerName dub-sql1
Invoke-Command {Import-Module SqlServer} -Session $session

원격 세션에서 로컬 모듈로 모듈 cmdlet 내보내기:

Export-PSSession -Session $s -CommandName *-Sql* -OutputModule RemoteSQLServer -AllowClobber

이 명령은 컴퓨터(C:\Program Files\WindowsPowerShell\Modules)에 새 RemoteSQLServer PowerShell 모듈을 만듭니다. cmdlet 파일 자체는 복사되지 않습니다.

세션 닫기:

Remove-PSSession $session

그런 다음 이 모듈의 PowerShell cmdlet을 사용하려면 해당 cmdlet을 세션으로 가져오기만 하면 됩니다.

Import-Module RemoteSQLServer

원격 컴퓨터에 대한 명시적 연결을 설정하지 않고도 모든 SQL 모듈 cmdlet을 사용할 수 있습니다. Invoke-Sqlcmd를 사용하여 MS SQL 데이터베이스 쿼리를 시도합니다. 모든 MSSQL 명령은 PowerShell 콘솔을 닫거나 모듈을 제거할 때까지 사용할 수 있습니다.