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.PSVersionModülün PSGallery'de bulunduğundan emin olun:
Find-Module -Name *SqlServer*| Select Name, Version, RepositoryModü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 -ListAvailableModü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 SQLServerAynı ş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-sql1Uzak bir bilgisayarda kurulu olan modüllerin listesini görüntülemek için:
Get-Module -PSSession $session -ListAvailableBelirtilen PowerShell modülünü bilgisayarınıza almak için:
Import-Module -PSsession $session -Name SqlServerBitirdiğ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 $sessionModül cmdlet'lerini uzak oturumdan yerel modüle aktarın:
Export-PSSession -Session $s -CommandName *-Sql* -OutputModule RemoteSQLServer -AllowClobberKomut, 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 $sessionArdından, bu modülden PowerShell cmdlet'lerini kullanmak için bunları oturuma aktarmanız yeterlidir:
Import-Module RemoteSQLServerTü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.






