PowerShell Modüllerini Çevrimdışı Modda Kurma (İnternet Erişimi Olmadan)


En popüler PowerShell modülleri, resmi PowerShell Galerisi'nden (

PSGallery

) havuzu Install-Module komutunu kullanarak. Ancak, bilgisayarınız yalıtılmış bir ağdaysa veya PSRepository'ye doğrudan erişim kısıtlanmışsa bir PowerShell modülü kuramazsınız. Aynı durum, PowerShell modülünü genellikle doğrudan İnternet erişimi engellenen Windows Server ana bilgisayarlarına yüklemeye çalıştığınızda da geçerlidir. Bu makalede, PowerShell modüllerinin çevrimdışı olarak nasıl kurulacağını ve uzak bir bilgisayardan bir modülün nasıl içe aktarılacağını (örneğin, SQLServer yönetimi PoSh modülünü kullanırken) göstereceğiz.

PowershellGallery.com'dan modül indirmek için doğrudan bağlantı olmadığını unutmayın. Siteden indirebileceğiniz tek şey NuGet paketidir (bir .nupkg dosyası). NUPKG dosyasından bir PowerShell modülü kurabilirsiniz, ancak bu tam bir modül kurulumu olmayacaktır (asıl sorun, bağımlılıkların çözülmemesidir).

Çevrimdışı Bilgisayarlara PowerShell Modülleri Nasıl Kurulur?

Öncelikle ihtiyacınız olan PowerShell modülünü internet erişimi olan bir bilgisayara kurun.

Bilgisayarda PowerShell sürüm 5.1 veya daha yenisi yüklü olmalıdır:

$PSVersionTable.PSVersion

Modülün PSGallery'de bulunduğundan emin olun:

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

Modülü bilgisayarınızda belirtilen yerel klasöre indirin:

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

Klasörü, modülü kurmak istediğiniz başka bir bilgisayara kopyalayın.

PowerShell modüllerinin hangi klasörlerde saklandığını görelim:

$env:PSModulePath -split ";"

Gördüğünüz gibi, PowerShell modülleri aşağıdaki yollardan birinde bulunur:

  • C:\Users\username\Documents\WindowsPowerShell\Modules

    (

    $Home\Documents\PowerShell\Modules

    ) - Bu klasördeki PowerShell modülleri yalnızca bu kullanıcı (CurrentUser) tarafından kullanılabilir;

  • C:\Program Files\WindowsPowerShell\Modules

    (

    $Env:ProgramFiles\WindowsPowerShell\Modules

    ) — yol, tüm bilgisayar kullanıcıları için bir modül kurmak için kullanılır (

    -Scope AllUsers

    );

  • C:\Windows\system32\WindowsPowerShell\v1.0\Modules

    - yerleşik modüller için varsayılan klasör.

Modülü C:\Program Files\WindowsPowerShell\Modules klasörüne kopyalayın.

SQLServer modülünün artık kullanılabilir olduğundan emin olun:

Get-Module -Name SQLServer -ListAvailable

Modül dizinini aşağıda gösterildiği gibi alabilirsiniz:

(Get-Module -ListAvailable SQLServer).path

Modülde bulunan komutların listesini görüntüleyin:

Get-Command -Module SQLServer

Aynı şekilde herhangi bir modülü kurabilirsiniz. VMWare modülleri için SQLServer, PSWindowsUpdate veya PowerCLI'yi yüklemek için bu yöntemi sıklıkla kullanırım.

Açık nedenlerden dolayı AzureAD ve Exchange Online PowerShell modüllerini çevrimdışı cihazlara yüklemek mantıklı değildir.

Uzak Bilgisayardan PowerShell Modülünü İçe Aktarın

Tüm bilgisayarlara bir PowerShell modülü yüklemek istemiyorsanız, PSRemoting'i kullanarak uzak bir bilgisayardan herhangi bir modülü içe aktarabilirsiniz:

$session = New-PSSession -ComputerName dub-sql1

Uzak bir bilgisayarda kurulu olan modüllerin listesini görüntülemek için:

Get-Module -PSSession $session -ListAvailable

Belirtilen PowerShell modülünü bilgisayarınıza almak için:

Import-Module -PSsession $session -Name SqlServer

Bitirdiğinizde oturumu kapatmayı unutmayın:

Remove-PSSession $session

Örtük uzaktan iletişim aracılığıyla uzak bir bilgisayara yüklenmiş bir PowerShell modülünü yerel olarak kullanmanın başka bir ilginç yolu.

Invoke-Command kullanarak uzak bir bilgisayara bağlanın ve istediğiniz PowerShell modülünü içe aktarın:

$session = New-PSSession -ComputerName dub-sql1
Invoke-Command {Import-Module SqlServer} -Session $session

Modül cmdlet'lerini uzak oturumdan yerel modüle aktarın:

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

Komut, bilgisayarınızda (C:\Program Files\WindowsPowerShell\Modules konumunda) yeni bir RemoteSQLServer PowerShell modülü oluşturur. Cmdlet dosyalarının kendileri kopyalanmaz.

Oturumu kapatın:

Remove-PSSession $session

Ardından, bu modülden PowerShell cmdlet'lerini kullanmak için bunları oturuma aktarmanız yeterlidir:

Import-Module RemoteSQLServer

Tüm SQL modülü cmdlet'leri, uzak bilgisayarla açık bir bağlantı kurulmadan kullanılabilir. Invoke-Sqlcmd kullanarak MS SQL veritabanını sorgulamayı deneyin. PowerShell konsolunuzu kapatana veya modülü kaldırana kadar tüm MSSQL komutları kullanılabilir.

İlgili makaleler