# encoding: ascii
# api: powershell
# title: UCS-ServiceProf-fromList
# description: Gathers and sorts all of the service profile associations for a list of UCS clusters. Very handy for scanning growing UCS environments for all of your associations.
# version: 0.9.90
# type: script
# author: Josh Atwell
# license: CC0
# x-poshcode-id: 3677
# x-archived: 2016-01-21T19:17:29
# x-published: 2013-10-02T20:36:00
#
#
<#
====================================================================
Author(s): Josh Atwell <josh.c.atwell@gmail.com>
Link: www.vtesseract.com
File: Get-UCSServiceProfileAssociations-FromList.ps1
Purpose: Gets Service Profile Associations for all UCS clusters
provided in a list.
If you want to view the Serivce Profile associations for
a single UCSM you can use the following one-liner:
Get-UcsServiceProfile | Select Ucs, Name, PnDn | Sort UCS,PnDn
Date: 2012-10-01
Revision: 1
References: Written using UCSPowerTool 0.9.90
Requires Cisco UCSPowerTool
====================================================================
Disclaimer: This script is written as best effort and provides no
warranty expressed or implied. Please contact the author(s) if you
have questions about this script before running or modifying
====================================================================
#>
# Load UCSPowerTool Module if needed
If ((Get-Module "CiscoUCSPS" -ErrorAction SilentlyContinue) -eq $null) {
Write-Output "UCSPowerTool Module not loaded. Attempting to load UCSPowerTool"
Import-Module "C:\Program Files (x86)\Cisco\Cisco UCS PowerTool\Modules\CiscoUcsPS\CiscoUcsPS.psd1"
}
# Prepopulated Data
# Enter data and remote # comment character to use
#$sourcelist = Get-Content "C:\Josh\Temp\2012-09-29.txt"
#$destinationfile = "C:\Josh\Temp\ServiceProfiles_2012-09-29_b.csv"
# User prompts if data is not prepopulated above
If ($sourcelist -eq $null){
$sourcelist = Get-Content (Read-Host "Please enter path to file with list of UCSMs (.txt)")
}
If ($destinationfile -eq $null){
$destinationfile = Read-Host "Please enter file path and name for the output (.csv). If left blank no output file will be created."
}
# Prompts and stores user credentials
$cred = Get-Credential
Set-UcsPowerToolConfiguration -SupportMultipleDefaultUcs $true
$AllUCS = $sourcelist
Connect-UCS $AllUCS -Credential $cred
$report = Get-UcsServiceProfile | Select Ucs, Name, PnDn | Sort UCS,PnDn
Write-Output $report
# Will export to CSV
If ($destinationfile -ne $null){
$report | Export-CSV $destinationfile -NoTypeInformation
}
Disconnect-UCS
# Clears the $cred variable for security purposes
Clear-Variable cred
If ((Read-Host "Do you want to disconnect the CiscoUCSPS module? (Y/N)") -eq "Y"){
Remove-Module "CiscoUCSPS"
}Else{
Write-Output "Did not disconnect CiscoUCSPS module. You can do so manually with Remove-Module 'CiscoUCSPS'"
}