diff --git a/Scripts/Sysprep_Automation_Script.ps1 b/Scripts/Sysprep_Automation_Script.ps1 new file mode 100644 index 0000000..56b633d --- /dev/null +++ b/Scripts/Sysprep_Automation_Script.ps1 @@ -0,0 +1,113 @@ + +<#================================================== + Generated On: 6/27/2014 2:49 PM + Generated By: Brian Graf + VMware Technical Marketing Engineer - Automation + Organization: VMware + vCenter Sysprep File Transfer +================================================== +-------------------------------------------------- +==================USAGE=========================== + This script has been created to aid users who + upload multiple sysprep files to vCenter Server. + The upload button in vCenter only allows a single + file per upload. This script will allow the user + to upload as many files as they please. +-------------------------------------------------- +===============REQUIREMENTS======================= + Fill in the environment variables below. There + Is a $DefaultVIServer and a $target_vcenter. + This is because some customers may be running + their target vCenter server within a different + vCenter environment. + + On your local machine, you will need a directory + that includes the following folders: + * 2k + * svr2003-64 + * svr2003 + * xp + * 1.1 + * xp-64 + + Place all sysprep files within their respective + folders. + + Run the script. The script will determine if + the target_vCenter is a Windows VM or VCSA + and place the files accordingly. + + ***NOTE*** This script will give an error if + it tries to upload a filename that already exists + in the vCenter directory. If you wish for the + script to overwrite any file with the same name + add '-force' to the end of the copy-vmguestfile + command. +-------------------------------------------------- +#> + +# ---------------------------------------- +# USER CONFIGURATION - EDIT AS NEEDED +# ---------------------------------------- +$DefaultVIServer = "vcsa.lab.local" +$vCUser = "root" +$vCPass = "VMware1!" +$target_vcenter = "VCSA" +$target_vcenter_user = "root" +$target_vcenter_password = "VMware1!" +$Location = "C:\temp" +$vC_Partition = "C:" +# ---------------------------------------- +# END USER CONFIGURATION +# ---------------------------------------- + +# Sysprep Folders on vCenter +$folders = @("2k","svr2003-64","svr2003","xp","1.1","xp-64") + +# Add PowerCLI Snapin +Add-PSSnapin vmware.vimautomation.core + +# Connect to vCenter +connect-viserver $DefaultVIServer -user $vCUser -password $vCPass + +# Get view of the vCenter data +$myVC= get-vm $target_vcenter | get-view + +# $OS captures the Operating System Name +$OS = $myVC.config.GuestFullName + +# Switch of Operating System +switch -wildcard ($OS) +{ +# As per the compatibility guide, all OS's from the compatibility guide have been added +"*SUSE*" {Write-Host "This is a SUSE Machine" -ForegroundColor Green; $OS = "VCSA"} +"* XP *" {Write-Host "This is a Windows XP Machine" -ForegroundColor Green} +"* 2003 *" {Write-Host "This is a Windows Server 2003 Machine" -ForegroundColor Green} +"* 2008 *" {Write-Host "This is a Windows Server 2008 Machine" -ForegroundColor Green} +"* 2012 *" {Write-Host "This is a Windows Server 2012 Machine" -ForegroundColor Green} +Default {Write-Host "This is the default" -ForegroundColor Green} +} +Write-Host "" + +# If Location is not set, ask user to input location +if ($Location -eq ""){ +$Location = Read-Host "Where is the sysprep file located? (ex. c:\temp) " +} + +# Cycle through Sysprep Folders on local machine +foreach($folder in $folders){ +if ($OS -eq "VCSA"){$Destination = "/etc/vmware-vpx/sysprep/$folder"} else {$Destination = "$vC_Partition\ProgramData\VMware\VMware VirtualCenter\Sysprep\$folder"} + +# Get files from each folder +Get-ChildItem "$($Location)\$($folder)" -ErrorAction SilentlyContinue | ForEach-Object { +$source = "$($Location)\$($folder)\$_" + +Write-Host "Transferring File `"$_`" " -ForegroundColor Green #Source = $source" -ForegroundColor Green +Write-Host "Destination = $Destination" -ForegroundColor Green + +# Copy Files to vCenter Sysprep folders +Copy-vmguestfile -source "$source" -Destination "$Destination" -VM "$target_vcenter" -LocalToGuest -GuestUser "$target_vcenter_user" -GuestPassword "$target_vcenter_password" + +} +} +Disconnect-viServer -confirm:$false diff --git a/Scripts/Sysprep_Automation_Script_v1a.ps1 b/Scripts/Sysprep_Automation_Script_v1a.ps1 deleted file mode 100644 index 64a5c92..0000000 Binary files a/Scripts/Sysprep_Automation_Script_v1a.ps1 and /dev/null differ