Updates
This commit is contained in:
1 parent
ada28a57e0
commit
ad3278b321
12 files changed
+4
-2
No files matched your search
@@ -0,0 +1,105 @@
|
||||
param (
|
||||
[string]$vcenter = "",
|
||||
# [switch]$allvms,
|
||||
[switch]$savecred,
|
||||
[switch]$Help = $false
|
||||
)
|
||||
|
||||
# Variables
|
||||
$fileVersion = "1.2.0"
|
||||
$fileDate = "2024-12-13"
|
||||
|
||||
# Display Script Banner
|
||||
Write-Host "--------------------------------------------------" -ForegroundColor White
|
||||
Write-Host "vSphere VM Network Assignment Export" -ForegroundColor Green
|
||||
Write-Host "Version $($FileVersion) ($($FileDate))" -ForegroundColor Green
|
||||
Write-Host "Written by Charlie Silverman" -ForegroundColor Green
|
||||
Write-Host "--------------------------------------------------" -ForegroundColor White
|
||||
|
||||
if ($Help) {
|
||||
Write-Host "Command Syntax:" -ForegroundColor Green
|
||||
Write-Host 'GetVMNetworks.ps1 -vcenter="VCURI" [-help] [-savecred]' -ForegroundColor Green
|
||||
Write-Host ""
|
||||
Write-Host "Command line options:" -ForegroundColor Green
|
||||
Write-Host "---------------------" -ForegroundColor Green
|
||||
Write-Host "-vcenter - Specify the URI for the vCenter server" -ForegroundColor Green
|
||||
Write-Host "-savecred - Save Credentials. If credentials were previously saved and this option is not selected," -ForegroundColor Green
|
||||
Write-Host " they will be used." -ForegroundColor Green
|
||||
Write-Host "-help - Show this help information." -ForegroundColor Green
|
||||
exit
|
||||
}
|
||||
|
||||
|
||||
if ($vcenter -eq "") {
|
||||
$vcenter = Read-Host "Enter name of vCenter Server"
|
||||
}
|
||||
|
||||
try {
|
||||
if (Test-Path -Path "$env:USERPROFILE\GetVMNetworks-$vcenter.cred" -PathType Leaf) {
|
||||
Write-Host "Using stored credentials for $vcenter."
|
||||
$cred = Import-CliXML -path "$env:USERPROFILE\GetVMNetworks-$vcenter.cred"
|
||||
} else {
|
||||
$cred = Get-Credential -Message "Enter credentials for vCenter $vcenter"
|
||||
}
|
||||
$vcenterConnection = connect-viserver $vcenter -credential $cred -ErrorAction Stop
|
||||
} catch {
|
||||
Write-Host "ERROR: Invalid credentials or incorrect vCenter FQDN"
|
||||
Write-Host $_
|
||||
exit
|
||||
}
|
||||
if ($savecred) {
|
||||
Write-Host "Storing credentials for $vcenter."
|
||||
$cred | Export-CliXML -Path "$env:USERPROFILE\GetVMNetworks-$vcenter.cred"
|
||||
}
|
||||
|
||||
# Output filename
|
||||
$DesktopPath = [Environment]::GetFolderPath("Desktop")
|
||||
$now = (Get-Date).ToString("yyyyMMdd_hhmm")
|
||||
$csvFileName = "$DesktopPath\VMNetworkList-$now.csv"
|
||||
|
||||
# Find the maximum number of adapters in a VM to create the CSV header properly
|
||||
$allvms = get-vm
|
||||
$maxnics = 0
|
||||
foreach ($vm in $allvms) {
|
||||
$adaptercount = ($vm | get-networkadapter | measure).Count
|
||||
if ($adaptercount -gt $maxnics) {
|
||||
$maxnics = $adaptercount
|
||||
}
|
||||
}
|
||||
|
||||
# Write the CSV header
|
||||
$header = """Cluster"",""VM Name"""
|
||||
for ($x = 1; $x -le $maxnics; ++$x) {
|
||||
#write-host -NoNewLine ",Network Adapter $x"
|
||||
$header = "$header,""Network Adapter $x"""
|
||||
}
|
||||
# write-host
|
||||
$header | Out-File -FilePath $csvFileName -Encoding UTF8
|
||||
|
||||
# Get list of clusters
|
||||
$clusters = get-cluster
|
||||
|
||||
# Iterate through cluster list
|
||||
foreach ($cluster in $clusters) {
|
||||
# Get list of VMs in the cluster
|
||||
$vms = $cluster | get-vm | sort-object -Property Name
|
||||
$clusterName = $cluster.Name
|
||||
# Iterate through the VM list
|
||||
foreach($vm in $vms) {
|
||||
$vmName = $vm.Name
|
||||
$entry = """$cluster"",""$vmName"""
|
||||
# Get all network adapters for the VM
|
||||
$netAdapters = $vm | get-networkadapter
|
||||
# Iterate through adapter list
|
||||
foreach ($adapter in $netAdapters) {
|
||||
# Append port group name for each adapter
|
||||
$adapterName = $adapter.Name
|
||||
$adapterPG = $adapter.NetworkName
|
||||
$entry = "$entry,""$adapterPG"""
|
||||
}
|
||||
# Write host entry
|
||||
#write-Host $entry
|
||||
$entry | Out-File -FilePath $csvFileName -Append -Encoding UTF8
|
||||
}
|
||||
Write-Host "`nData for cluster $clusterName has been saved to the file $csvFileName."
|
||||
}
|
||||
Reference in new issue
Block a user