To test and verify your script you can use the virtual environment UCSPE.

First install Ucs.Manager Package on Powershell.
PS C:\WINDOWS\system32> Install-Module -Name Cisco.UCSManager -RequiredVersion 2.5.3.0
Verify Module is installed.
PS C:\WINDOWS\system32> Get-Package -Name *Ucs* Name Version Source ProviderName ---- ------- ------ ------------ Cisco.UCS.Core 2.5.3.0 https://www.powershellgallery… PowerShellGet Cisco.UCSManager 2.5.3.0 https://www.powershellgallery… PowerShellGet
Connect to UCS Manager. A pop-up will be open to enter your login and password.
PS C:\WINDOWS\system32> Connect-Ucs 10.0.100.162
applet de commande Connect-Ucs à la position 1 du pipeline de la commande
Fournissez des valeurs pour les paramètres suivants :
Credential
NumPendingConfigs : 0
Ucs : UCSPE-10-0-100-162
Cookie : 1594713831/e2c5faea-c1d9-412f-b7d1-b582c379477a
Domains : org-root
LastUpdateTime : 14/07/2020 10:03:54
Name : 10.0.100.162
NoSsl : False
NumWatchers : 0
Port : 443
Priv : {aaa, admin, ext-lan-config, ext-lan-policy…}
PromptOnCompleteTransaction : False
Proxy :
RefreshPeriod : 600
SessionId :
TransactionInProgress : False
Uri : https://10.0.100.162
UserName : ucspe
Version : 4.0(4e)
VirtualIpv4Address : 10.0.100.162
WatchThreadStatus : None
You can also enter directly your password.
PS C:\WINDOWS\system32> $ucsm_credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "ucspe", $(ConvertTo-SecureString -AsPlainText "ucspe" -Force) PS C:\WINDOWS\system32> $ucsm_credentials UserName Password -------- -------- ucspe System.Security.SecureString
PS C:\WINDOWS\system32> Connect-Ucs 10.0.100.162 -Credential $ucsm_credentials
NumPendingConfigs : 0
Ucs : UCSPE-10-0-100-162
Cookie : 1594715399/f32ff405-981f-4c7a-817a-1d09324c89b6
Domains : org-root
LastUpdateTime : 14/07/2020 10:29:59
Name : 10.0.100.162
NoSsl : False
NumWatchers : 0
Port : 443
Priv : {aaa, admin, ext-lan-config, ext-lan-policy…}
PromptOnCompleteTransaction : False
Proxy :
RefreshPeriod : 600
SessionId :
TransactionInProgress : False
Uri : https://10.0.100.162
UserName : ucspe
Version : 4.0(4e)
VirtualIpv4Address : 10.0.100.162
WatchThreadStatus : None
You can disconnect with the following command:
PS C:\WINDOWS\system32> Disconnect-Ucs Ucs : UCSPE-10-0-100-162 InCookie : 1594715399/f32ff405-981f-4c7a-817a-1d09324c89b6 Name : 10.0.100.162 OutStatus : success SessionId : Uri : https://10.0.100.162 Version : 4.0(4e)
You can Get the UCS blades and servers with this command:
PS C:\WINDOWS\system32> Get-UcsServer
AdminPower : policy
AdminState : in-service
AssetTag :
AssignedToDn :
Association : none
Availability : available
AvailableMemory : 49152
ChassisId : 3
CheckPoint : discovered
ConnPath : {A, B}
ConnStatus : {A, B}
Descr :
Discovery : complete
DiscoveryStatus :
KmipFault : no
KmipFaultDescription :
Lc : undiscovered
LcTs : 1970-01-01T00:00:00.000
LocalId :
LowVoltageMemory : not-applicable
ManagingInst : A
MemorySpeed : not-applicable
MfgTime : not-applicable
Model : UCSB-EX-M4-1
Name :
NumOf40GAdaptorsWithOldFw : 0
NumOf40GAdaptorsWithUnknownFw : 0
NumOfAdaptors : 2
NumOfCores : 10
NumOfCoresEnabled : 10
NumOfCpus : 2
NumOfEthHostIfs : 0
NumOfFcHostIfs : 0
NumOfThreads : 16
OperPower : off
OperPwrTransSrc : unknown
OperQualifier : {}
OperQualifierReason : N/A
OperState : unassociated
Operability : operable
OriginalUuid : 1b4e28ba-2fa1-11d2-0301-b9a761bde3fb
PartNumber :
PolicyLevel : 0
PolicyOwner : local
Presence : equipped
Revision : 0
Sacl :
ScaledMode : single
Serial : SRV107
ServerId : 3/1
SlotId : 1
StorageOperQualifier : unknown
TotalMemory : 49152
UsrLbl :
Uuid : 1b4e28ba-2fa1-11d2-0301-b9a761bde3fb
Vendor : Cisco Systems Inc
Vid :
Ucs : UCSPE-10-0-100-162
Dn : sys/chassis-3/blade-1
Rn : blade-1
Status :
XtraProperty : {}
And you can filter the result with the pipe command and Select-Object
PS C:\WINDOWS\system32> Get-UcsServer | Select-Object Dn Dn sys/chassis-3/blade-1 sys/chassis-3/blade-3 sys/chassis-3/blade-7 sys/chassis-3/blade-5 sys/chassis-4/blade-1 sys/chassis-4/blade-2 sys/chassis-5/blade-1 sys/chassis-5/blade-2 sys/chassis-5/blade-3 sys/chassis-6/blade-1 sys/chassis-6/blade-2 sys/chassis-6/blade-3 sys/rack-unit-1 sys/rack-unit-2 sys/rack-unit-3 sys/rack-unit-4 sys/rack-unit-5 sys/rack-unit-6 sys/rack-unit-7 sys/rack-unit-8 sys/rack-unit-9 sys/rack-unit-10 sys/rack-unit-11 sys/rack-unit-12
or with two filters to Get the Serial for each server
PS C:\WINDOWS\system32> Get-UcsServer | Select-Object Dn,Serial Dn Serial -- ------ sys/chassis-3/blade-1 SRV107 sys/chassis-3/blade-3 SRV108 sys/chassis-3/blade-7 SRV110 sys/chassis-3/blade-5 SRV126 sys/chassis-4/blade-1 SRV111 sys/chassis-4/blade-2 SRV112 sys/chassis-5/blade-1 SRV113 sys/chassis-5/blade-2 SRV114 sys/chassis-5/blade-3 SRV115 sys/chassis-6/blade-1 SRV122 sys/chassis-6/blade-2 SRV124 sys/chassis-6/blade-3 SRV125 sys/rack-unit-1 ND80 sys/rack-unit-2 ND81 sys/rack-unit-3 RK46 sys/rack-unit-4 RK54 sys/rack-unit-5 RK57 sys/rack-unit-6 RK58 sys/rack-unit-7 RK59 sys/rack-unit-8 RK60 sys/rack-unit-9 RK62 sys/rack-unit-10 RK63 sys/rack-unit-11 RK64 sys/rack-unit-12 RK65
You can see Servers and Blades with the previous command or only the blade.
PS C:\WINDOWS\system32> Get-UcsBlade | Select-Object Dn,Serial Dn Serial -- ------ sys/chassis-3/blade-1 SRV107 sys/chassis-3/blade-3 SRV108 sys/chassis-3/blade-5 SRV126 sys/chassis-3/blade-7 SRV110 sys/chassis-4/blade-1 SRV111 sys/chassis-4/blade-2 SRV112 sys/chassis-5/blade-1 SRV113 sys/chassis-5/blade-2 SRV114 sys/chassis-5/blade-3 SRV115 sys/chassis-6/blade-1 SRV122 sys/chassis-6/blade-2 SRV124 sys/chassis-6/blade-3 SRV125
You can search all commands ucs and the documentation with the following commands:
PS C:\WINDOWS\system32> Get-Command -noun Ucs | more CommandType Name Version Source ----------- ---- ------- ------ Alias Acknowledge-UcsBlade 2.5.3.0 Cisco.UcsManager Alias Acknowledge-UcsChassis 2.5.3.0 Cisco.UcsManager Alias Acknowledge-UcsFault 2.5.3.0 Cisco.UcsManager Alias Acknowledge-UcsFex 2.5.3.0 Cisco.UcsManager Alias Acknowledge-UcsRackUnit 2.5.3.0 Cisco.UcsManager Alias Acknowledge-UcsServerUnit 2.5.3.0 Cisco.UcsManager Alias Acknowledge-UcsSlot 2.5.3.0 Cisco.UcsManager Alias Add-UcsMo 2.5.3.0 Cisco.UcsManager Alias Associate-UcsServiceProfile 2.5.3.0 Cisco.UcsManager Alias Compare-UcsMo 2.5.3.0 Cisco.UcsManager Alias Decommission-UcsBlade 2.5.3.0 Cisco.UcsManager Alias Decommission-UcsChassis 2.5.3.0 Cisco.UcsManager Alias Decommission-UcsFex 2.5.3.0 Cisco.UcsManager Alias Decommission-UcsRackUnit 2.5.3.0 Cisco.UcsManager Alias Decommission-UcsServerUnit 2.5.3.0 Cisco.UcsManager Alias Disable-UcsDiskLocatorLed 2.5.3.0 Cisco.UcsManager Alias Disassociate-UcsServiceProfile 2.5.3.0 Cisco.UcsManager Alias Enable-UcsDiskLocatorLed 2.5.3.0 Cisco.UcsManager Alias Get-UcsCentral 2.5.3.0 Cisco.UcsManager Alias Get-UcsMo 2.5.3.0 Cisco.UcsManager Alias Get-UcsOs 2.5.3.0 Cisco.Ucs.Core [..] PS C:\WINDOWS\system32> Get-help Get-UcsServer NOM Get-UcsServer RÉSUMÉ Gets Managed Object of type ComputeBlade, ComputeRackUnit and ComputeServerUnit. SYNTAXE Get-UcsServer [-Ucs ] [] DESCRIPTION Gets Managed Object of type ComputeBlade, ComputeRackUnit and ComputeServerUnit. LIENS CONNEXES REMARQUES Pour consulter les exemples, tapez : "get-help Get-UcsServer -examples". Pour plus d'informations, tapez : "get-help Get-UcsServer -detailed". Pour obtenir des informations techniques, tapez : "get-help Get-UcsServer -full".
Vlans
Get Vlans

PS C:\WINDOWS\system32> Get-UCsVlan | Select-Object Dn,Name,Id,SwitchId Dn Name Id SwitchId -- ---- -- -------- fabric/eth-estc/net-default default 1 dual fabric/lan/A/net-default default 1 A fabric/lan/A/net-finance finance 3 A fabric/lan/A/net-human-resource human-resource 5 A fabric/lan/B/net-default default 1 B fabric/lan/B/net-finance finance 3 B fabric/lan/B/net-human-resource human-resource 5 B fabric/lan/net-default default 1 dual
Add Vlans
PS C:\WINDOWS\system32> Get-help Add-UcsVlan
PS C:\WINDOWS\system32> Get-UcsLanCloud | Add-UcsVlan -Name NewVlan42 -Id 42
AssocPrimaryVlanState : ok
AssocPrimaryVlanSwitchId : NONE
Cloud : ethlan
CompressionType : included
ConfigIssues :
ConfigOverlap : ok
DefaultNet : no
EpDn :
Global : 0
Id : 42
IfRole : network
IfType : virtual
Local : 0
Locale : external
McastPolicyName :
Name : NewVlan42
OperMcastPolicyName :
OperState : ok
OverlapStateForA : active
OverlapStateForB : active
PeerDn :
PolicyOwner : local
PubNwDn :
PubNwId : 1
PubNwName :
Sacl :
Sharing : none
SwitchId : dual
Transport : ether
Type : lan
Ucs : UCSPE-10-0-100-162
Dn : fabric/lan/net-NewVlan42
Rn : net-NewVlan42
Status : created
XtraProperty : {}
Verify
PS C:\WINDOWS\system32> Get-UCsVlan | Select-Object Dn,Name,Id,SwitchId Dn Name Id SwitchId -- ---- -- -------- fabric/eth-estc/net-default default 1 dual fabric/lan/A/net-default default 1 A fabric/lan/A/net-finance finance 3 A fabric/lan/A/net-human-resource human-resource 5 A fabric/lan/B/net-default default 1 B fabric/lan/B/net-finance finance 3 B fabric/lan/B/net-human-resource human-resource 5 B fabric/lan/net-default default 1 dual fabric/lan/net-NewVlan42 NewVlan42 42 dual

In addition to Powershell, you can also use the python SDK (Docs).
Example to add a new vlan:
from ucsmsdk.ucshandle import UcsHandle
from ucsmsdk.mometa.fabric.FabricVlan import FabricVlan
Create a connection handle
handle = UcsHandle("10.0.100.162", "ucspe", "ucspe")
Login to the server
handle.login()
fabric_lan_dn = handle.query_dn("fabric/lan")
newvlan = FabricVlan(parent_mo_or_dn=fabric_lan_dn,
name = "vlan10",
id="10")
handle.add_mo(newvlan)
handle.commit()
Logout from the server
handle.logout()
Service Profile
PS C:\WINDOWS\system32> Get-UcsServiceProfile
AgentPolicyName :
AssignState : unassigned
AssocState : unassociated
BiosProfileName :
BootPolicyName :
ConfigQualifier : {}
ConfigState : not-applied
Descr :
DynamicConPolicyName :
ExtIPPoolName : ext-mgmt
ExtIPState : none
GraphicsCardPolicyName :
HostFwPolicyName :
IdentPoolName :
KvmMgmtPolicyName :
LocalDiskPolicyName :
MaintPolicyName :
MgmtAccessPolicyName :
MgmtFwPolicyName :
Name : ServiceProfile1
OperBiosProfileName :
OperBootPolicyName : org-root/boot-policy-default
OperDynamicConPolicyName :
OperExtIPPoolName :
OperGraphicsCardPolicyName : org-root/graphics-card-policy-default
OperHostFwPolicyName : org-root/fw-host-pack-default
OperIdentPoolName :
OperKvmMgmtPolicyName : org-root/kvm-mgmt-policy-default
OperLocalDiskPolicyName : org-root/local-disk-config-default
OperMaintPolicyName : org-root/maint-default
OperMgmtAccessPolicyName :
OperMgmtFwPolicyName :
OperPersistentMemoryPolicyName :
OperPowerPolicyName : org-root/power-policy-default
OperPowerSyncPolicyName : org-root/power-sync-default
OperScrubPolicyName : org-root/scrub-default
OperSolPolicyName :
OperSrcTemplName :
OperState : unassociated
OperStatsPolicyName : org-root/thr-policy-default
OperVconProfileName :
OperVmediaPolicyName :
Owner : management
PersistentMemoryPolicyName :
PnDn :
PolicyLevel : 0
PolicyOwner : local
PowerPolicyName : default
PowerSyncPolicyName :
PropAcl : 0
ResolveRemote : yes
Sacl :
ScrubPolicyName :
SolPolicyName :
SrcTemplName :
StatsPolicyName : default
SvnicConfig : yes
Type : instance
UsrLbl :
Uuid : derived
UuidSuffix : 0000-000000000000
VconProfileName :
VmediaPolicyName :
Ucs : UCSPE-10-0-100-162
Dn : org-root/ls-ServiceProfile1
Rn : ls-ServiceProfile1
Status :
XtraProperty : {}
A lot of examples can be found here : https://github.com/CiscoUcs
