Merge branch 'master' into Reorg
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# PowerCLI Public Repo
|
||||
# PowerCLI Community Repository
|
||||
## Principles of Operations
|
||||
## Table of Contents
|
||||
* Abstract
|
||||
@@ -28,7 +28,7 @@
|
||||
* VMWARE TECHNOLOGY PREVIEW LICENSE AGREEMENT
|
||||
|
||||
## Abstract
|
||||
This document will serve for collaboration to identify the operating principles of a centralized PowerCLI resource repo on GitHub.
|
||||
This document will serve for collaboration to identify the operating principles of a centralized PowerCLI Community Repository on GitHub.
|
||||
|
||||
The central PowerCLI repo will be located at: <https://github.com/vmware/PowerCLI-Example-Scripts>
|
||||
## Content Restrictions
|
||||
@@ -158,4 +158,4 @@ The VMware Technnology Preview License Agreement: <https://github.com/vmware/Pow
|
||||
* Rynardt Spies
|
||||
|
||||
## Approval of Additions
|
||||
Items added to the repository require 2 votes from the board members before being added to the repository. The approving members will have ideally downloaded and tested the item. When two “Approved for Merge” comments are added from board members, the pull can then be committed to the repository.
|
||||
Items added to the repository require 2 votes from the board members before being added to the repository. The approving members will have ideally downloaded and tested the item. When two “Approved for Merge” comments are added from board members, the pull can then be committed to the repository.
|
||||
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