02 Nov 2017

PowerCLI: Offline install Powershell v3 and v4

Today I came across the need to use PowerCLI on a computer without internet access. Thankfully I found this blog post detailing the steps that I needed to perform, however not all was rainbows and unicorns. I quickly ran aground when attempting to import the modules. After a bit of research, I learnt that Microsoft had changed the module directory structure in PowerShell v5. This new structure is not compatible with previous versions.

The Problem

When using Install-Module to install a module, the module files as located in a subdirectory which is the version number. This is not a supported directory structure for PowerShell version 3 and 4. This caused an error when attempting to import, PowerShell could not find the modules.

PowerShell v5 Module Structure

PowerShell v3v4 Module Structure

The Solution

The solution to the problem is simple enough, move the module files up one directory. As there are a number of modules this can be tedious. So here’s a script to do that for you

$ModuleFolders = Get-ChildItem VMware*

Foreach($ModuleFolder in $ModuleFolders){
    $VersionFolder = $ModuleFolder | Get-ChildItem -Directory
    $CopySourceString = $VersionFolder.FullName + "\*"
    Copy-Item $CopySourceString $ModuleFolder.FullName -Verbose
}

Further details on the script are available on GitHub.

After running the script, I was able to user PowerCLI for super-secret spy business.

 

Thank You For Reading