Recent Changes
Media Manager
Sitemap
Enable RDP, without Network Level Authentication (Better for Linux User Compatibility)
Enable RDP on Windows Firewall
Activate Windows with KMS Key W269N-WFGWX-YVC9B-4J6C9-T83GX on IT-Services KMS-Server
Configure Power Settings to High Performance (otherwise the NIC will go to a sleep mode, and RDP-Service is no more accesible
name,vmnet,IP,subnet,gateway,Dns1,hostname,datastore
FITIFS16_wincli001.team1.local,isolated301,10.177.10.02,255.255.255.248,10.177.10.6,10.176.0.1,wincli001,DSP1EDU600-01
FITIFS16_wincli001.team2.local,isolated302,10.177.10.10,255.255.255.248,10.177.10.14,10.176.0.1,wincli001,DSP1EDU600-02
FITIFS16_wincli001.team3.local,isolated303,10.177.10.18,255.255.255.248,10.177.10.22,10.176.0.1,wincli001,DSP1EDU600-03
FITIFS16_wincli001.team4.local,isolated304,10.177.10.26,255.255.255.248,10.177.10.30,10.176.0.1,wincli001,DSP1EDU600-04
FITIFS16_wincli001.team5.local,isolated305,10.177.10.34,255.255.255.248,10.177.10.38,10.176.0.1,wincli001,DSP1EDU600-05
FITIFS16_wincli001.team6.local,isolated306,10.177.10.42,255.255.255.248,10.177.10.46,10.176.0.1,wincli001,DSP1EDU600-06
FITIFS16_wincli001.team7.local,isolated307,10.177.10.50,255.255.255.248,10.177.10.54,10.176.0.1,wincli001,DSP1EDU600-07
FITIFS16_wincli001.team8.local,isolated308,10.177.10.58,255.255.255.248,10.177.10.62,10.176.0.1,wincli001,DSP1EDU600-08
FITIFS16_wincli001.team9.local,isolated309,10.177.10.66,255.255.255.248,10.177.10.70,10.176.0.1,wincli001,DSP1EDU600-09
FITIFS16_wincli001.team10.local,isolated310,10.177.10.74,255.255.255.248,10.177.10.78,10.176.0.1,wincli001,DSP1EDU600-10
FITIFS16_wincli001.team11.local,isolated311,10.177.10.82,255.255.255.248,10.177.10.86,10.176.0.1,wincli001,DSP1EDU600-11
FITIFS16_wincli001.team12.local,isolated312,10.177.10.90,255.255.255.248,10.177.10.94,10.176.0.1,wincli001,DSP1EDU600-12
FITIFS16_wincli001.team13.local,isolated313,10.177.10.98,255.255.255.248,10.177.10.102,10.176.0.1,wincli001,DSP1EDU600-13
FITIFS16_wincli001.team14.local,isolated314,10.177.10.106,255.255.255.248,10.177.10.110,10.176.0.1,wincli001,DSP1EDU600-01
FITIFS16_wincli001.team15.local,isolated315,10.177.10.114,255.255.255.248,10.177.10.118,10.176.0.1,wincli001,DSP1EDU600-02
FITIFS16_wincli001.team16.local,isolated316,10.177.10.122,255.255.255.248,10.177.10.126,10.176.0.1,wincli001,DSP1EDU600-03
FITIFS16_wincli001.team17.local,isolated317,10.177.10.130,255.255.255.248,10.177.10.134,10.176.0.1,wincli001,DSP1EDU600-04
FITIFS16_wincli001.team18.local,isolated318,10.177.10.138,255.255.255.248,10.177.10.142,10.176.0.1,wincli001,DSP1EDU600-05
FITIFS16_wincli001.team19.local,isolated319,10.177.10.146,255.255.255.248,10.177.10.150,10.176.0.1,wincli001,DSP1EDU600-06
FITIFS16_wincli001.team20.local,isolated320,10.177.10.154,255.255.255.248,10.177.10.158,10.176.0.1,wincli001,DSP1EDU600-07
FITIFS16_wincli001.team21.local,isolated321,10.177.10.162,255.255.255.248,10.177.10.166,10.176.0.1,wincli001,DSP1EDU600-08
FITIFS16_wincli001.team22.local,isolated322,10.177.10.170,255.255.255.248,10.177.10.174,10.176.0.1,wincli001,DSP1EDU600-09
FITIFS16_wincli001.team23.local,isolated323,10.177.10.178,255.255.255.248,10.177.10.182,10.176.0.1,wincli001,DSP1EDU600-10
FITIFS16_wincli001.team24.local,isolated324,10.177.10.186,255.255.255.248,10.177.10.190,10.176.0.1,wincli001,DSP1EDU600-11
FITIFS16_wincli001.team25.local,isolated325,10.177.10.194,255.255.255.248,10.177.10.198,10.176.0.1,wincli001,DSP1EDU600-12
FITIFS16_wincli001.team26.local,isolated326,10.177.10.202,255.255.255.248,10.177.10.206,10.176.0.1,wincli001,DSP1EDU600-13
FITIFS16_wincli001.team27.local,isolated327,10.177.10.210,255.255.255.248,10.177.10.214,10.176.0.1,wincli001,DSP1EDU600-01
FITIFS16_wincli001.team28.local,isolated328,10.177.10.218,255.255.255.248,10.177.10.222,10.176.0.1,wincli001,DSP1EDU600-02
FITIFS16_wincli001.team29.local,isolated329,10.177.10.226,255.255.255.248,10.177.10.230,10.176.0.1,wincli001,DSP1EDU600-03
FITIFS16_wincli001.team30.local,isolated330,10.177.10.234,255.255.255.248,10.177.10.238,10.176.0.1,wincli001,DSP1EDU600-04
FITIFS16_wincli001.team31.local,isolated331,10.177.10.242,255.255.255.248,10.177.10.246,10.176.0.1,wincli001,DSP1EDU600-05
FITIFS16_wincli001.team32.local,isolated332,10.177.10.250,255.255.255.248,10.177.10.254,10.176.0.1,wincli001,DSP1EDU600-06
OS Customization Specification
Create a
OS
Customization Specification in VMware
Name: FITI_FS16_CLI
# Things you need to change:
# CSV File location
$vmlist = Import-Csv C:\Users\bas\Desktop\fiticlifs16.csv
# Customization Template name in vCenter Server. You can use "FITI_Windows_Client" for Windows 8.1 Clients and "FITI_Windows_Server" for Windows 2012r2 Server. No need to create your own. Your're welcome
$cs = "FITI_FS16_CLI"
# ------------------ Do not edit anything below this line ------------------ #
$taskTab = @{}
# Load VMware PowerCLI & VDS module
if ((Get-PSSnapin | where { $_.Name -eq "Vmware.VimAutomation.Core"}) -eq $null) {
Add-PSSnapin Vmware.VimAutomation.Core;
# Check that the import worked and throw exception if it didn't
if ((Get-PSSnapin | where { $_.Name -eq "Vmware.VimAutomation.Core"}) -eq $null) {
throw "Vmware.VimAutomation.Core Module is required."
if ((Get-PSSnapin | where { $_.Name -eq "VMware.vimautomation.vds"}) -eq $null) {
Add-PSSnapin VMware.vimautomation.vds;
# Check that the import worked and throw exception if it didn't
if ((Get-PSSnapin | where { $_.Name -eq "VMware.vimautomation.vds"}) -eq $null) {
throw "VMware.vimautomation.vds Module is required."
# Connect to vCenter server and print a funny message
Write-Host "Enter VCenter Hostname" -ForegroundColor Yellow
$esxihost = Read-Host
Connect-VIServer -Server $esxihost -Credential (Get-Credential -Message "You shall not pass!") -Protocol https
Clear-Host
# Get your rpool
Get-ResourcePool |FT Name
Write-Host "Enter your ressource pool name" -ForegroundColor Yellow
$vmrpool = Read-Host
Clear-Host
# List available Templates
Write-Host "List of available templates" -ForegroundColor Yellow
Get-ResourcePool $vmrpool | Get-VM | FT Name,Notes
Write-Host "Select your template by 'Name' attribute" -ForegroundColor Yellow
$sourcevm = Read-Host
Clear-Host
#Create SnapShot for LinkedClone
$OriginVMSnapShotName="SnapShot_for_linkedClone"
$SnapShot=New-Snapshot -VM $sourcevm -Name $OriginVMSnapShotName -Description "Snapshot for linked clones" -Memory -Quiesce
# The clone wars
foreach ($clone in $vmlist){
$destvm = $clone
get-OScustomizationspec $cs | get-OScustomizationNicMapping | set-OSCustomizationNicMapping -IpMode UseStaticIP -IpAddress $destvm.IP -SubnetMask $destvm.subnet -DefaultGateway $destvm.gateway -Dns $destvm.Dns1
Get-OSCustomizationSpec $cs | Set-OSCustomizationSpec -NamingScheme fixed -NamingPrefix $destvm.hostname
$taskTab[(New-VM -VM $sourcevm -Datastore $destvm.datastore -DiskStorageFormat Thin -Name $destvm.name -ResourcePool ($vmrpool) -OSCustomizationSpec $cs -LinkedClone -ReferenceSnapshot $SnapShot -RunAsync).Id] = $destvm
# Attack of the clones
$runningTasks = $taskTab.Count
while($runningTasks -gt 0){
Get-Task | % {
if($taskTab.ContainsKey($_.Id) -and $_.State -eq "Success"){
Get-HardDisk -VM $taskTab[$_.Id].name | Set-HardDisk -Persistence "Persistent" -Confirm:$false
Get-VM -Name $taskTab[$_.Id].name | Set-VM -Notes '' -Confirm:$false
$vpg = Get-VDPortgroup -Name $taskTab[$_.Id].vmnet
Get-VM -Name $taskTab[$_.Id].name | Get-NetworkAdapter | Set-NetworkAdapter -Portgroup $vpg -Confirm:$false
#$hostname = $taskTab[$_Id].hostname
#Get-VM -Name $taskTab[$_.ID].name | Get-VMHostNetwork | Set-VMHostNetwork -HostName $hostname
Get-VM -Name $taskTab[$_.Id].name | Start-VM
$taskTab.Remove($_.Id)
$runningTasks--
elseif($taskTab.ContainsKey($_.Id) -and $_.State -eq "Error"){
$taskTab.Remove($_.Id)
$runningTasks--
Start-Sleep -Seconds 15
# Disconnect from ESXi Host
Disconnect-VIServer -Confirm:$false
Windows Server
Enable RDP, without Network Level Authentication (Better for Linux User Compatibility)
Enable RDP on Windows Firewall
Activate Windows with KMS Key D2N9P-3P6X9-2R39C-7RTCD-MDVJX on IT-Services KMS-Server
name,vmnet,IP,subnet,gateway,Dns1,hostname,datastore
FITIFS16_winsrv001.team1.local,isolated301,10.177.10.01,255.255.255.248,10.177.10.6,10.176.0.1,winsrv001,DSP1EDU600-01
FITIFS16_winsrv001.team2.local,isolated302,10.177.10.09,255.255.255.248,10.177.10.14,10.176.0.1,winsrv001,DSP1EDU600-02
FITIFS16_winsrv001.team3.local,isolated303,10.177.10.17,255.255.255.248,10.177.10.22,10.176.0.1,winsrv001,DSP1EDU600-03
FITIFS16_winsrv001.team4.local,isolated304,10.177.10.25,255.255.255.248,10.177.10.30,10.176.0.1,winsrv001,DSP1EDU600-04
FITIFS16_winsrv001.team5.local,isolated305,10.177.10.33,255.255.255.248,10.177.10.38,10.176.0.1,winsrv001,DSP1EDU600-05
FITIFS16_winsrv001.team6.local,isolated306,10.177.10.41,255.255.255.248,10.177.10.46,10.176.0.1,winsrv001,DSP1EDU600-06
FITIFS16_winsrv001.team7.local,isolated307,10.177.10.49,255.255.255.248,10.177.10.54,10.176.0.1,winsrv001,DSP1EDU600-07
FITIFS16_winsrv001.team8.local,isolated308,10.177.10.57,255.255.255.248,10.177.10.62,10.176.0.1,winsrv001,DSP1EDU600-08
FITIFS16_winsrv001.team9.local,isolated309,10.177.10.65,255.255.255.248,10.177.10.70,10.176.0.1,winsrv001,DSP1EDU600-09
FITIFS16_winsrv001.team10.local,isolated310,10.177.10.73,255.255.255.248,10.177.10.78,10.176.0.1,winsrv001,DSP1EDU600-10
FITIFS16_winsrv001.team11.local,isolated311,10.177.10.81,255.255.255.248,10.177.10.86,10.176.0.1,winsrv001,DSP1EDU600-11
FITIFS16_winsrv001.team12.local,isolated312,10.177.10.89,255.255.255.248,10.177.10.94,10.176.0.1,winsrv001,DSP1EDU600-12
FITIFS16_winsrv001.team13.local,isolated313,10.177.10.97,255.255.255.248,10.177.10.102,10.176.0.1,winsrv001,DSP1EDU600-13
FITIFS16_winsrv001.team14.local,isolated314,10.177.10.105,255.255.255.248,10.177.10.110,10.176.0.1,winsrv001,DSP1EDU600-01
FITIFS16_winsrv001.team15.local,isolated315,10.177.10.113,255.255.255.248,10.177.10.118,10.176.0.1,winsrv001,DSP1EDU600-02
FITIFS16_winsrv001.team16.local,isolated316,10.177.10.121,255.255.255.248,10.177.10.126,10.176.0.1,winsrv001,DSP1EDU600-03
FITIFS16_winsrv001.team17.local,isolated317,10.177.10.129,255.255.255.248,10.177.10.134,10.176.0.1,winsrv001,DSP1EDU600-04
FITIFS16_winsrv001.team18.local,isolated318,10.177.10.137,255.255.255.248,10.177.10.142,10.176.0.1,winsrv001,DSP1EDU600-05
FITIFS16_winsrv001.team19.local,isolated319,10.177.10.145,255.255.255.248,10.177.10.150,10.176.0.1,winsrv001,DSP1EDU600-06
FITIFS16_winsrv001.team20.local,isolated320,10.177.10.153,255.255.255.248,10.177.10.158,10.176.0.1,winsrv001,DSP1EDU600-07
FITIFS16_winsrv001.team21.local,isolated321,10.177.10.161,255.255.255.248,10.177.10.166,10.176.0.1,winsrv001,DSP1EDU600-08
FITIFS16_winsrv001.team22.local,isolated322,10.177.10.169,255.255.255.248,10.177.10.174,10.176.0.1,winsrv001,DSP1EDU600-09
FITIFS16_winsrv001.team23.local,isolated323,10.177.10.177,255.255.255.248,10.177.10.182,10.176.0.1,winsrv001,DSP1EDU600-10
FITIFS16_winsrv001.team24.local,isolated324,10.177.10.185,255.255.255.248,10.177.10.190,10.176.0.1,winsrv001,DSP1EDU600-11
FITIFS16_winsrv001.team25.local,isolated325,10.177.10.193,255.255.255.248,10.177.10.198,10.176.0.1,winsrv001,DSP1EDU600-12
FITIFS16_winsrv001.team26.local,isolated326,10.177.10.201,255.255.255.248,10.177.10.206,10.176.0.1,winsrv001,DSP1EDU600-13
FITIFS16_winsrv001.team27.local,isolated327,10.177.10.209,255.255.255.248,10.177.10.214,10.176.0.1,winsrv001,DSP1EDU600-01
FITIFS16_winsrv001.team28.local,isolated328,10.177.10.217,255.255.255.248,10.177.10.222,10.176.0.1,winsrv001,DSP1EDU600-02
FITIFS16_winsrv001.team29.local,isolated329,10.177.10.225,255.255.255.248,10.177.10.230,10.176.0.1,winsrv001,DSP1EDU600-03
FITIFS16_winsrv001.team30.local,isolated330,10.177.10.233,255.255.255.248,10.177.10.238,10.176.0.1,winsrv001,DSP1EDU600-04
FITIFS16_winsrv001.team31.local,isolated331,10.177.10.241,255.255.255.248,10.177.10.246,10.176.0.1,winsrv001,DSP1EDU600-05
FITIFS16_winsrv001.team32.local,isolated332,10.177.10.249,255.255.255.248,10.177.10.254,10.176.0.1,winsrv001,DSP1EDU600-06
OS Customization Specification
Create a
OS
Customization Specification in VMware
Name: FITI_FS16_SRV
# Things you need to change:
# CSV File location
$vmlist = Import-Csv C:\Users\bas\Desktop\fitisrvfs16.csv
# Customization Template name in vCenter Server. You can use "FITI_Windows_Client" for Windows 8.1 Clients and "FITI_Windows_Server" for Windows 2012r2 Server. No need to create your own. Your're welcome
$cs = "FITI_FS16_SRV"
# ------------------ Do not edit anything below this line ------------------ #
$taskTab = @{}
# Load VMware PowerCLI & VDS module
if ((Get-PSSnapin | where { $_.Name -eq "Vmware.VimAutomation.Core"}) -eq $null) {
Add-PSSnapin Vmware.VimAutomation.Core;
# Check that the import worked and throw exception if it didn't
if ((Get-PSSnapin | where { $_.Name -eq "Vmware.VimAutomation.Core"}) -eq $null) {
throw "Vmware.VimAutomation.Core Module is required."
if ((Get-PSSnapin | where { $_.Name -eq "VMware.vimautomation.vds"}) -eq $null) {
Add-PSSnapin VMware.vimautomation.vds;
# Check that the import worked and throw exception if it didn't
if ((Get-PSSnapin | where { $_.Name -eq "VMware.vimautomation.vds"}) -eq $null) {
throw "VMware.vimautomation.vds Module is required."
# Connect to vCenter server and print a funny message
Write-Host "Enter VCenter Hostname" -ForegroundColor Yellow
$esxihost = Read-Host
Connect-VIServer -Server $esxihost -Credential (Get-Credential -Message "You shall not pass!") -Protocol https
Clear-Host
# Get your rpool
Get-ResourcePool |FT Name
Write-Host "Enter your ressource pool name" -ForegroundColor Yellow
$vmrpool = Read-Host
Clear-Host
# List available Templates
Write-Host "List of available templates" -ForegroundColor Yellow
Get-ResourcePool $vmrpool | Get-VM | FT Name,Notes
Write-Host "Select your template by 'Name' attribute" -ForegroundColor Yellow
$sourcevm = Read-Host
Clear-Host
#Create SnapShot for LinkedClone
$OriginVMSnapShotName="SnapShot_for_linkedClone"
$SnapShot=New-Snapshot -VM $sourcevm -Name $OriginVMSnapShotName -Description "Snapshot for linked clones" -Memory -Quiesce
# The clone wars
foreach ($clone in $vmlist){
$destvm = $clone
get-OScustomizationspec $cs | get-OScustomizationNicMapping | set-OSCustomizationNicMapping -IpMode UseStaticIP -IpAddress $destvm.IP -SubnetMask $destvm.subnet -DefaultGateway $destvm.gateway -Dns $destvm.Dns1
Get-OSCustomizationSpec $cs | Set-OSCustomizationSpec -NamingScheme fixed -NamingPrefix $destvm.hostname
$taskTab[(New-VM -VM $sourcevm -Datastore $destvm.datastore -DiskStorageFormat Thin -Name $destvm.name -ResourcePool ($vmrpool) -OSCustomizationSpec $cs -LinkedClone -ReferenceSnapshot $SnapShot -RunAsync).Id] = $destvm
# Attack of the clones
$runningTasks = $taskTab.Count
while($runningTasks -gt 0){
Get-Task | % {
if($taskTab.ContainsKey($_.Id) -and $_.State -eq "Success"){
Get-HardDisk -VM $taskTab[$_.Id].name | Set-HardDisk -Persistence "Persistent" -Confirm:$false
Get-VM -Name $taskTab[$_.Id].name | Set-VM -Notes '' -Confirm:$false
$vpg = Get-VDPortgroup -Name $taskTab[$_.Id].vmnet
Get-VM -Name $taskTab[$_.Id].name | Get-NetworkAdapter | Set-NetworkAdapter -Portgroup $vpg -Confirm:$false
#$hostname = $taskTab[$_Id].hostname
#Get-VM -Name $taskTab[$_.ID].name | Get-VMHostNetwork | Set-VMHostNetwork -HostName $hostname
Get-VM -Name $taskTab[$_.Id].name | Start-VM
$taskTab.Remove($_.Id)
$runningTasks--
elseif($taskTab.ContainsKey($_.Id) -and $_.State -eq "Error"){
$taskTab.Remove($_.Id)
$runningTasks--
Start-Sleep -Seconds 15
# Disconnect from ESXi Host
Disconnect-VIServer -Confirm:$false
pfSense