PoshCode Archive  Artifact Content

Artifact 7d74b77e82bd80d799c4bce0fed1f36c684e4de96f4531007bc20eeff7f5cdf1:

  • File VMware-and-NetApp-file-f.ps1 — part of check-in [5e3f5f4552] at 2018-06-10 13:10:43 on branch trunk — This file was uploaded by a PowerGUI Script Editor Add-on. (user: unknown size: 2907)

# encoding: ascii
# api: powershell
# title: VMware and NetApp file f
# description: This file was uploaded by a PowerGUI Script Editor Add-on.
# version: 0.1
# type: module
# license: CC0
# x-poshcode-id: 2462
# x-archived: 2011-01-22T09:43:05
#
#
Add-PSSnapin VMware.VimAutomation.Core
Import-Module DataOntap
$cred = Get-VICredentialStoreItem -Host nau-vc.naucom.com -File c:\users\aaworkman\powershell\credentials.xml
Connect-VIServer nau-vc -User $cred.User -Password $cred.Password

$esxhost = "fargo-esx2.naucom.com"
$numberofclones = 10
$loc = Get-Folder -Location "FargoND" | Where-Object { $_.Name -cmatch "Discovered" }
New-Folder -Location $loc -Name "agro_desktops"
New-ResourcePool -Location $esxhost -Name agro -CpuSharesLevel Low -MemSharesLevel Low
$folderdsk = Get-View (Get-Datacenter -Name "FargoND" | Get-Folder -Name "agro_desktops").ID
$pool = Get-View (Get-VMHost -name $esxhost -Location FargoND | Get-ResourcePool -Name "agro").ID
Connect-NaController -Name fargo-nas1.naucom.com
cd vmstore:\FargoND\agrovms\agro-gld-win7
$vmfiles = ls -Name
$i=1
cd vmstore:\FargoND\agrovms\

#Create Folders and Clone Template Image
do {
$vmname = "agro-win7-"
$vmname += "$i"
mkdir $vmname
foreach($vmfile in $vmfiles){
Start-NaClone -SourcePath /vol/agrovm_integration/agro-gld-win7/${vmfile} -DestinationPath /vol/agrovm_integration/$vmname/${vmfile}
}
$i++
}
while ($i -le $numberofclones)
$clones = Get-NaClone
while ($clones -ne $null) {sleep -Seconds 5; $clones = Get-NaClone}


#Register VM's
$esxImpl = Get-VMHost -Location FargoND | Select-Object -First 1
$esx = Get-View $esxImpl.ID 
$dsBrowser = Get-View $esx.DatastoreBrowser
$ds = Get-Datastore -Name "agrovms"
$dsView = Get-View $ds
$datastorepath = "[" + $dsView.Summary.Name + "]"
$searchspec = New-Object VMware.Vim.HostDatastoreBrowserSearchSpec
$searchSpec.matchpattern = "*.vmx"
$taskMoRef = $dsBrowser.SearchDatastoreSubFolders_Task($datastorePath, $searchSpec) 
$task = Get-View $taskMoRef
while ($task.Info.State -eq "running"){$task = Get-View $taskMoRef}
$i = 1
foreach ($file in $task.info.Result){
$vmx = $file.FolderPath + $file.File[0].Path
$path = $file.File[0].Path
$guestname = [regex]"\[agrovms\] (.*)\/agro-gld-win7.vmx"
$value = $vmx -cmatch $guestname
$vmname = $matches[1]
if($vmname -cmatch "win7"){ $folder = $folderdsk }
Else { $folder = $foldersrv }
$folder.RegisterVM_Task($vmx,$vmname,$FALSE,$pool.MoRef,$null)
$i++
}
##Customize Guests
$serviceInstance = get-view ServiceInstance
$csMgr = get-view $serviceInstance.Content.CustomizationSpecManager
$foldername = $folderdsk
$specname = Get-OSCustomizationSpec -Name Win7-MAK-MSDN
$spec = $csMgr.GetCustomizationSpec($specname)
$goldens = Get-View -Viewtype VirtualMachine -Searchroot $folderdsk.MoRef
foreach($vm in $goldens){
$custtask = $vm.CustomizeVM_Task($spec.Spec)
}