Advertisement
Guest User

Untitled

a guest
Apr 21st, 2017
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Function Load-Vmware {
  2.  
  3.     # +------------------------------------------------------+
  4.     # |        Load VMware modules if not loaded             |
  5.     # +------------------------------------------------------+
  6.  
  7.     # List of modules to be loaded
  8.     $moduleList = @(
  9.         "VMware.VimAutomation.Core",
  10.         "VMware.VimAutomation.Vds",
  11.         "VMware.VimAutomation.Cloud",
  12.         "VMware.VimAutomation.PCloud",
  13.         "VMware.VimAutomation.Cis.Core",
  14.         "VMware.VimAutomation.Storage",
  15.         "VMware.VimAutomation.HorizonView",
  16.         "VMware.VimAutomation.HA",
  17.         "VMware.VimAutomation.vROps",
  18.         "VMware.VumAutomation",
  19.         "VMware.DeployAutomation",
  20.         "VMware.ImageBuilder",
  21.         "VMware.VimAutomation.License"
  22.         )
  23.  
  24.     $productName = "PowerCLI"
  25.     $productShortName = "PowerCLI"
  26.  
  27.     $loadingActivity = "Loading $productName"
  28.     $script:completedActivities = 0
  29.     $script:percentComplete = 0
  30.     $script:currentActivity = ""
  31.     $script:totalActivities = `
  32.        $moduleList.Count + 1
  33.  
  34.     function ReportStartOfActivity($activity) {
  35.        $script:currentActivity = $activity
  36.        Write-Progress -Activity $loadingActivity -CurrentOperation $script:currentActivity -PercentComplete $script:percentComplete
  37.     }
  38.     function ReportFinishedActivity() {
  39.        $script:completedActivities++
  40.        $script:percentComplete = (100.0 / $totalActivities) * $script:completedActivities
  41.        $script:percentComplete = [Math]::Min(99, $percentComplete)
  42.    
  43.        Write-Progress -Activity $loadingActivity -CurrentOperation $script:currentActivity -PercentComplete $script:percentComplete
  44.     }
  45.  
  46.     # Load modules
  47.     function LoadModules(){
  48.        ReportStartOfActivity "Searching for $productShortName module components..."
  49.    
  50.        $loaded = Get-Module -Name $moduleList -ErrorAction Ignore | % {$_.Name}
  51.        $registered = Get-Module -Name $moduleList -ListAvailable -ErrorAction Ignore | % {$_.Name}
  52.        $notLoaded = $registered | ? {$loaded -notcontains $_}
  53.    
  54.        ReportFinishedActivity
  55.    
  56.        foreach ($module in $registered) {
  57.           if ($loaded -notcontains $module) {
  58.              ReportStartOfActivity "Loading module $module"
  59.          
  60.              Import-Module $module
  61.          
  62.              ReportFinishedActivity
  63.           }
  64.        }
  65.     }
  66.  
  67.     LoadModules
  68.  
  69.     $powerCliFriendlyVersion = [VMware.VimAutomation.Sdk.Util10.ProductInfo]::PowerCLIFriendlyVersion
  70.     Write-Output "$powerCliFriendlyVersion Loaded"
  71.  
  72.     Write-Progress -Activity $loadingActivity -Completed
  73. }
  74.  
  75. Function Load-Xen {
  76.     Import-Module XenServerPSModule
  77. }
  78.  
  79. Function Load-Azure {
  80.     Import-Module AzureRM
  81. }
  82.  
  83. Write-Output "Load-Vmware, Load-Xen, Load-Azure"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement