Merge branch 'master' into Reorg

This commit is contained in:
Kyle Ruddy
2016-07-15 14:48:46 -07:00
5 changed files with 116 additions and 3 deletions

View File

@@ -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.

View 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