Rename Sysprep_Automation_Script_v1a.ps1 to Sysprep_Automation_Script.ps1
This commit is contained in:
113
Scripts/Sysprep_Automation_Script.ps1
Normal file
113
Scripts/Sysprep_Automation_Script.ps1
Normal file
@@ -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
|
||||||
Binary file not shown.
Reference in New Issue
Block a user