Remote Powershell Module Offline Install

Remote Powershell Module Offline Install

Powershell Modul per remote installieren

Wenn es in einer geschlossen Umgebung (Netzwerk) kein Zugang zum Internet gibt, so können Powershellmodule auch offline installiert werden. Von Computer zu Computer (Server/Client).

Vorausgesetzt das entsprechende Modul ist auf irgendeinem Computer im Netzwerk vorhanden.

Download und Installation Powershell Modul

In diesem Beispiel lade ich das Powershellmodul “SQLServer” von/auf einem gesicherten Computer mit Zugang zum Internet herunter.

Prüfen der Mindestanforderung (v5.1):

$PSVersionTable.PSVersion

$PSVersionTable.PSVersion

Suchen nach dem individuellen Modul (SQLServer):
Sollte NuGet nicht installiert sein, wird die Installation als Voraussetzung angeboten.

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

Find-Module -Name

Find-Module -Name SQLServer

Speichern des Moduls auf dem gesicherten Computer nach Laufwerk E:\:

Save-Module -Name SqlServer -Path E:\PSModule\

Download und Installation Powershell Modul

RemoteSQLServer

Nach dem Download des Moduls, stellen wird es auch lokal auf dem System bereit. Dazu kopieren wir den (Download-) Ordner “SQLServer” in den Pfad ProgramFiles\WindowsPowerShell\Modules.

xcopy E:\PSModule\ $Env:ProgramFiles\WindowsPowerShell\Modules /E/H

Remote Powershell Module Offline Install

Damit nun Server oder Clients ohne Zugang zum Internet an das Modul kommen, gehen wir wie folgt vor:

Stellen eine Remoteverbindung zu dem gesicherten Computer (Name “DB”) her. Schön wäre natürlich wenn WinRM per SSL konfiguriert ist.

$session = New-PSSession -ComputerName DB

Können über die gestartete Remotesession die lokal vorhandenen Module  abfragen:

Get-Module -PSSession $session -ListAvailable

Powershell Modul per remote installieren

Importieren nun das Powershellmodul “SQLServer” über die gestartete Remotesession  in die vorhandene Session.

Invoke-Command {Import-Module SqlServer} -Session $session

Und nun exportieren wir das Powershellmodul auf den lokalen Server namens “FI” unter dem Namen RemoteSQLServer. Der Name kann auch SQLServer lauten. Nur so lässt es sich besser unterscheiden.

Export-PSSession -Session $session -CommandName *-Sql* -OutputModule RemoteSQLServer -AllowClobberRemove-PSSession $session

Remote Powershell Module Offline Install

Die Remotesession wird nun beendet.

Remove-PSSession $session