{"id":14064460,"url":"https://github.com/dell/OpenManage-PowerShell-Modules","last_synced_at":"2025-07-29T18:32:28.434Z","repository":{"id":65366586,"uuid":"304055627","full_name":"dell/OpenManage-PowerShell-Modules","owner":"dell","description":null,"archived":false,"fork":false,"pushed_at":"2024-07-05T14:49:07.000Z","size":609,"stargazers_count":20,"open_issues_count":10,"forks_count":8,"subscribers_count":9,"default_branch":"main","last_synced_at":"2024-11-23T17:33:49.645Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dell.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-14T15:21:15.000Z","updated_at":"2024-10-07T22:34:28.000Z","dependencies_parsed_at":"2024-05-27T23:18:01.975Z","dependency_job_id":"590079f2-db8b-4f3e-8128-7a0e61284597","html_url":"https://github.com/dell/OpenManage-PowerShell-Modules","commit_stats":null,"previous_names":[],"tags_count":49,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dell%2FOpenManage-PowerShell-Modules","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dell%2FOpenManage-PowerShell-Modules/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dell%2FOpenManage-PowerShell-Modules/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dell%2FOpenManage-PowerShell-Modules/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dell","download_url":"https://codeload.github.com/dell/OpenManage-PowerShell-Modules/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228040630,"owners_count":17860211,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-13T07:03:52.692Z","updated_at":"2024-12-04T03:30:51.060Z","avatar_url":"https://github.com/dell.png","language":"PowerShell","funding_links":[],"categories":["PowerShell"],"sub_categories":[],"readme":"# DellOpenManage Powershell Module\n\n# Install Module\n\n## Requirements\n- PowerShell 5+\n- OpenManage Enterprise 3.4+\n- OpenManage Enterprise Modular 1.20.00+\n\n## PowerShell Gallery Installation\n`Install-Module -Name DellOpenManage -Scope CurrentUser`\n\n## Scripted Installation\n1. Open PowerShell Command Window\n2. Change your PowerShell Execution Policy `Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser`\n3. CD to the directory where you cloned the Github repo\n4. .\\Install-Module.ps1\n\n## Manual Installation\n1. Determine module path `$Env:PSModulePath`\n    * PowerShell 5: C:\\Users\\username\\Documents\\WindowsPowerShell\\Modules\n    * PowerShell 6+: C:\\Users\\username\\Documents\\PowerShell\\Modules\n2. Copy the DellOpenManage folder to a directory in your module path\n    * Example: C:\\Users\\username\\Documents\\WindowsPowerShell\\Modules\\DellOpenManage\n3. List available Modules `Get-Module Dell* -ListAvailable`\n4. Import module `Import-Module DellOpenManage`\n\n## Contributing\nSee [Contributing](CONTRIBUTE.md)\n\n# Command Reference\nSee [Command Reference](Documentation/CommandReference.md)\n\n## Getting Started\nSee if Module is available\n```\nGet-Module Dell* -ListAvailable\n```\nList available commandlets in Module\n```\nGet-Command -Module \"DellOpenManage\"\n```\nShow help for commandlet\n```\nGet-Help Connect-OMEServer -Detailed\n```\n### Basic Example\n* Copy and paste these commands into a Test.ps1 script or PowerShell ISE and execute the script.\n* This will Import the Module, connect to server prompting for credentials, list servers by model, then disconnect the current session.\n```\nImport-Module DellOpenManage\n\nConnect-OMEServer -Name \"ome.example.com\" -Credentials $(Get-Credential) -IgnoreCertificateWarning\n\n\"PowerEdge R640\" | Get-OMEDevice -FilterBy \"Model\" | Format-Table\n\nDisconnect-OMEServer\n```\n\n## Connect\nConnect\n```\n$credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList \"admin\", $(ConvertTo-SecureString -Force -AsPlainText \"password\")\nConnect-OMEServer -Name \"ome.example.com\" -Credentials $credentials -IgnoreCertificateWarning\n```\nConnect: Variables\n```\n. \"C:\\Path\\To\\Credentials.ps1\"\n$credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $OMEUsername, $(ConvertTo-SecureString -Force -AsPlainText $OMEPassword)\nConnect-OMEServer -Name $OMEServer -Credentials $credentials -IgnoreCertificateWarning\n```\nConnect: Prompt for Credentials\n```\n$credentials = Get-Credential\nConnect-OMEServer -Name \"ome.example.com\" -Credentials $credentials -IgnoreCertificateWarning\n```\n\n## Discovery\nDiscover servers by hostname\n```\nNew-OMEDiscovery -Name \"TestDiscovery01\" -Hosts @('server01-idrac.example.com') -DiscoveryUserName \"root\" -DiscoveryPassword $(ConvertTo-SecureString 'calvin' -AsPlainText -Force) -Wait\n```\nDiscover servers by IP Address\n```\nNew-OMEDiscovery -Name \"TestDiscovery01\" -Hosts @('10.35.0.0', '10.35.0.1') -DiscoveryUserName \"root\" -DiscoveryPassword $(ConvertTo-SecureString 'calvin' -AsPlainText -Force) -Wait\n```\nDiscover servers by Subnet\n```\nNew-OMEDiscovery -Name \"TestDiscovery01\" -Hosts @('10.37.0.0/24') -DiscoveryUserName \"root\" -DiscoveryPassword $(ConvertTo-SecureString 'calvin' -AsPlainText -Force) -Wait\n```\nDiscover servers by Subnet every Sunday at 12:00AM UTC\n```\nNew-OMEDiscovery -Name \"TestDiscovery01\" -Hosts @('10.37.0.0/24') -Schedule \"RunLater\" -ScheduleCron \"0 0 0 ? * sun *\" -DiscoveryUserName \"root\" -DiscoveryPassword $(ConvertTo-SecureString 'calvin' -AsPlainText -Force) -Wait -Verbose\n```\nReplace host list and run now\n```\n\"TestDiscovery01\" | Get-OMEDiscovery | Edit-OMEDiscovery -Hosts @('server01-idrac.example.com') -DiscoveryUserName \"root\" -DiscoveryPassword $(ConvertTo-SecureString 'calvin' -AsPlainText -Force) -Wait -Verbose\n```\nAppend host to host list and run now\n```\n\"TestDiscovery01\" | Get-OMEDiscovery | Edit-OMEDiscovery -Hosts @('server02-idrac.example.com') -Mode \"Append\" -DiscoveryUserName \"root\" -DiscoveryPassword $(ConvertTo-SecureString 'calvin' -AsPlainText -Force) -Wait -Verbose\n```\nRemove host from host list and run now\n```\n\"TestDiscovery01\" | Get-OMEDiscovery | Edit-OMEDiscovery -Hosts @('server02-idrac.example.com') -Mode \"Remove\" -DiscoveryUserName \"root\" -DiscoveryPassword $(ConvertTo-SecureString 'calvin' -AsPlainText -Force) -Wait -Verbose\n```\nRun discovery job now\n```\n\"TestDiscovery01\" | Get-OMEDiscovery | Edit-OMEDiscovery -Schedule \"RunNow\" -DiscoveryUserName \"root\" -DiscoveryPassword $(ConvertTo-SecureString 'calvin' -AsPlainText -Force) -Wait -Verbose\n```\nRun discovery job every Sunday at 12:00AM UTC\n```\n\"TestDiscovery01\" | Get-OMEDiscovery | Edit-OMEDiscovery -Schedule \"RunLater\" -ScheduleCron \"0 0 0 ? * sun *\" -DiscoveryUserName \"root\" -DiscoveryPassword $(ConvertTo-SecureString 'calvin' -AsPlainText -Force) -Wait -Verbose\n```\n\n## Devices\nGet device by id\n```\n10097, 10100 | Get-OMEDevice -FilterBy \"Id\" | Format-Table\n```\nGet device by service tag\n```\n\"C86F0ZZ\", \"3XMHHZZ\" | Get-OMEDevice -FilterBy \"ServiceTag\" | Format-Table\n```\nGet device by name\n```\n\"R620.example.com\" | Get-OMEDevice -FilterBy \"Name\" | Format-Table\n```\nGet device by model\n```\n\"PowerEdge R640\" | Get-OMEDevice -FilterBy \"Model\" | Format-Table\n```\nGet device by group\n```\nGet-OMEDevice -Group $(Get-OMEGroup \"Servers_Win\") | Format-Table\n\"Servers_ESXi\", \"Servers_Win\" | Get-OMEGroup | Get-OMEDevice | Format-Table\n```\nCreate separate inventory refresh job for each device in list\n```\n\"PowerEdge R640\" | Get-OMEDevice -FilterBy \"Model\" | Invoke-OMEInventoryRefresh -Verbose\n```\nCreate one inventory refresh job for all devices in list. Notice the preceeding comma before the device list.\n```\n,$(\"PowerEdge R640\" | Get-OMEDevice -FilterBy \"Model\") | Invoke-OMEInventoryRefresh -Verbose\n```\n\n## Device Details\nGet all inventory\n```\n10097, 10100 | Get-OMEDevice -FilterBy \"Id\" | Get-OMEDeviceDetail\n```\nGet network cards and mac addresses\n```\n\"C39P9ZZ\", \"C39N9ZZ\" | Get-OMEDevice | Get-OMEDeviceDetail -InventoryType \"serverNetworkInterfaces\" | Format-Table\n```\nGet firmware inventory\n```\n\"C39P9ZZ\", \"C39N9ZZ\" | Get-OMEDevice | Get-OMEDeviceDetail -InventoryType \"deviceSoftware\" | Format-Table\n```\nInventory Types\n\nThese are device specific. A full list can be found by querying the OME API at /api/DeviceService/Devices(DeviceId)/InventoryTypes\n```\ndeviceCapabilities\nserverDeviceCards\nchassisControllerList\nchassisFansList\nchassisPciDeviceList\nchassisPowerSupplies\nchassisSlotsList\nchassisStorageComputeAssociations\nchassisTemperatureList\nserverRaidControllers\nserverProcessors\nserverArrayDisks\nserverFcCards\nserverVirtualFlashes\ndeviceFru\ndeviceLicense\ndeviceLocation\ndeviceManagement\nserverMemoryDevices\nserverNetworkInterfaces\nserverOperatingSystems\nserverSupportedPowerStates\nserverPowerSupplies\ndeviceSoftware\nserverStorageEnclosures\nsubsystemRollupStatus\n```\n\n## Groups\nGet all groups\n```\nGet-OMEGroup | Format-Table\n```\nGet group by name\n```\nGet-OMEGroup \"R640Test\" | Format-Table\n```\nCreate a new static group\n```\nNew-OMEGroup -Name \"Test Group 01\"\n```\nEdit group name and description\n```\nGet-OMEGroup \"Test Group 01\" | Edit-OMEGroup -Name \"Test Group 001\" -Description \"This is a new group\"\n```\nAdd devices to group\n```\nGet-OMEGroup \"Test Group 01\" | Edit-OMEGroup -Devices $(\"PowerEdge R640\" | Get-OMEDevice -FilterBy \"Model\")\n```\nRemove devices from group\n```\nGet-OMEGroup \"Test Group 01\" | Edit-OMEGroup -Mode \"Remove\" -Devices $(\"PowerEdge R640\" | Get-OMEDevice -FilterBy \"Model\")\n```\nRemove group\n```\nGet-OMEGroup \"Test Group 01\" | Remove-OMEGroup\n```\n\n## Power\nPower on server\n```\nSet-OMEPowerState -State \"On\" -Devices $(\"37KP0ZZ\" | Get-OMEDevice -FilterBy \"ServiceTag\")\n```\n\n## Firmware\nCreate new firmware catalog that points to downloads.dell.com\n```\nNew-OMECatalog -Name \"Test01\"\n```\nCreate new firmware catalog to a CIFS share (Requires Dell Repository Manager)\n```\nNew-OMECatalog -Name \"CIFSTest\" -RepositoryType \"CIFS\" -Source \"windows01.example.com\" -SourcePath \"/Share01/DRM/AllDevices\" -CatalogFile \"AllDevices_1.01_Catalog.xml\" -DomainName \"example.com\" -Username \"Administrator\" -Password $(\"P@ssword1\" | ConvertTo-SecureString -AsPlainText -Force)\n```\nCreate new firmware catalog to a NFS share (Requires Dell Repository Manager)\n```\nNew-OMECatalog -Name \"NFSTest\" -RepositoryType \"NFS\" -Source \"nfs01.example.com\" -SourcePath \"/mnt/data/drm/AllDevices\" -CatalogFile \"AllDevices_1.01_Catalog.xml\"\n```\nGet firmware catalog\n```\nGet-OMECatalog | Format-Table\n\"DRM\" | Get-OMECatalog | Format-Table\n```\nGet firmware baseline\n```\nGet-OMEFirmwareBaseline | Format-Table\n\"AllLatest\" | Get-OMEFirmwareBaseline | Get-OMEFirmwareCompliance | Format-Table\n```\nGet device firmware compliance report\n```\n$devices = $(\"C86CZZZ\" | Get-OMEDevice -FilterBy \"ServiceTag\")\n\"AllLatest\" | Get-OMEFirmwareBaseline | Get-OMEFirmwareCompliance -DeviceFilter $devices |\n    Select-Object -Property ServiceTag,DeviceModel,DeviceName,CurrentVersion,Version,UpdateAction,ComplianceStatus,Name | Format-Table\n```\nGet device firmware compliance report. BIOS only.\n```\n\"AllLatest\" | Get-OMEFirmwareBaseline | Get-OMEFirmwareCompliance -ComponentFilter \"BIOS\" |\n    Select-Object -Property ServiceTag,DeviceModel,DeviceName,CurrentVersion,Version,UpdateAction,ComplianceStatus,Name |\n    Sort-Object CurrentVersion | Format-Table\n```\nGet device firmware compliance report. Multiple component filter\n```\n\"AllLatest\" | Get-OMEFirmwareBaseline | Get-OMEFirmwareCompliance -ComponentFilter \"BIOS\", \"iDRAC\" |\n    Select-Object -Property ServiceTag,DeviceModel,DeviceName,CurrentVersion,Version,UpdateAction,ComplianceStatus,Name |\n    Sort-Object CurrentVersion | Format-Table\n```\nCreate new firmware baseline\n```\n$catalog = $(\"Auto-Update-Online\" | Get-OMECatalog)\n$devices = $(\"C86CZZZ\" | Get-OMEDevice -FilterBy \"ServiceTag\")\nNew-OMEFirmwareBaseline -Name \"TestBaseline01\" -Catalog $catalog -Devices $devices\n```\nCreate new firmware baseline for downgrades\n```\n$catalog = $(\"Auto-Update-Online\" | Get-OMECatalog)\n$devices = $(\"C86CZZZ\" | Get-OMEDevice -FilterBy \"ServiceTag\")\nNew-OMEFirmwareBaseline -Name \"TestBaseline01\" -Catalog $catalog -Devices $devices -AllowDowngrade\n```\nDisplay device compliance report for all devices in baseline. No updates are installed by default.\n```\nUpdate-OMEFirmware -Baseline $(\"AllLatest\" | Get-OMEFirmwareBaseline) | Format-Table\n```\nUpdate firmware on all devices in baseline immediately ***Warning: This will force a reboot of all servers\n```\n$devices = $(\"CY85DZZ\" | Get-OMEDevice -FilterBy \"ServiceTag\")\n$baseline = $(\"AllLatest\" | Get-OMEFirmwareBaseline)\nUpdate-OMEFirmware -Baseline $baseline -UpdateSchedule \"RebootNow\" -Wait\n```\nUpdate firmware on all devices in baseline on next reboot\n```\nUpdate-OMEFirmware -Baseline $(\"AllLatest\" | Get-OMEFirmwareBaseline) -UpdateSchedule \"StageForNextReboot\"\n```\nUpdate firmware on specific devices in baseline immediately ***Warning: This will force a reboot of all servers\n```\nUpdate-OMEFirmware -Baseline $(\"AllLatest\" | Get-OMEFirmwareBaseline) -DeviceFilter $(\"C86CZZZ\" | Get-OMEDevice -FilterBy \"ServiceTag\") -UpdateSchedule \"RebootNow\" -Wait\n```\nDowngrade firmware on specific devices in baseline immediately ***Warning: This will force a reboot of all servers\n```\nUpdate-OMEFirmware -Baseline $(\"AllLatest\" | Get-OMEFirmwareBaseline) -DeviceFilter $(\"C86CZZZ\" | Get-OMEDevice -FilterBy \"ServiceTag\") -UpdateSchedule \"RebootNow\" -UpdateAction \"Downgrade\" -Wait\n```\nUpdate firmware on specific components in baseline on next reboot and clear job queue\n```\nUpdate-OMEFirmware -Baseline $(\"AllLatest\" | Get-OMEFirmwareBaseline) -ComponentFilter \"iDRAC\" -UpdateSchedule \"StageForNextReboot\" -ClearJobQueue\n```\nUpdate firmware later scheduled at 11/1/2020 12:00AM UTC\n```\nUpdate-OMEFirmware -Baseline $(\"AllLatest\" | Get-OMEFirmwareBaseline) -DeviceFilter $(\"C86CZZZ\" | Get-OMEDevice -FilterBy \"ServiceTag\") -UpdateSchedule \"ScheduleLater\" -UpdateScheduleCron \"0 0 0 1 11 ?\"\n```\n\n## Templates\nGet all templates\n```\nGet-OMETemplate | Format-Table\n```\nGet template by name\n```\n\"DRM\" | Get-OMETemplate | Format-Table\n```\nGet template by type\n```\n\"Deployment\" | Get-OMETemplate -FilterBy \"Type\" | Format-Table\n```\nGet template when templates with similar names exist\n```\nGet-OMETemplate | Where-Object -Property \"Name\" -EQ \"Test Template \"\n```\nCreate new deployment template from source device\n```\nNew-OMETemplateFromDevice -Name \"TestTemplate\" -Device $(\"37KP0ZZ\" | Get-OMEDevice -FilterBy \"ServiceTag\") -Wait\n```\nCreate new deployment template from source device and capture specific components\n```\nNew-OMETemplateFromDevice -Name \"TestTemplate\" -Component \"iDRAC\", \"BIOS\" -Device $(\"37KP0ZZ\" | Get-OMEDevice -FilterBy \"ServiceTag\") -Wait\n```\nCreate new deployment template from XML string\n```\n$xml = @'\n\u003cSystemConfiguration\u003e\n    \u003cComponent FQDD=\"iDRAC.Embedded.1\"\u003e\n        \u003cAttribute Name=\"Users.5#UserName\"\u003etestuser\u003c/Attribute\u003e\n    \u003c/Component\u003e\n\u003c/SystemConfiguration\u003e\n'@\nNew-OMETemplateFromFile -Name \"TestTemplate\" -Content $xml\n```\nCreate new deployment template from XML file\n```\nNew-OMETemplateFromFile -Name \"TestTemplate\" -Content $(Get-Content -Path .\\Data.xml | Out-String)\n```\nDeploy template to device\n```\n\"TestTemplate\" | Get-OMETemplate | Invoke-OMETemplateDeploy -Devices $(\"37KP0ZZ\" | Get-OMEDevice) -Wait\n```\nDeploy template and boot to network ISO over NFS\n```\n\"TestTemplate\" | Get-OMETemplate | Invoke-OMETemplateDeploy -Devices $(\"37KP0ZZ\" | Get-OMEDevice) -NetworkBootShareType \"NFS\" -NetworkBootShareIpAddress \"192.168.1.100\" -NetworkBootIsoPath \"/mnt/data/iso/CentOS7-Unattended.iso\" -Wait\n```\nDeploy template and boot to network ISO over CIFS\n```\n\"TestTemplate\" | Get-OMETemplate | Invoke-OMETemplateDeploy -Devices $(\"37KP0ZZ\" | Get-OMEDevice) -NetworkBootShareType \"CIFS\" -NetworkBootShareIpAddress \"192.168.1.101\" -NetworkBootIsoPath \"/Share/ISO/CentOS7-Unattended.iso\" -NetworkBootShareUser \"Administrator\" -NetworkBootSharePassword \"Password\" -NetworkBootShareName \"Share\" -Wait\n```\nClone template using default name \"TestTemplate01 - Clone\"\n```\n\"TestTemplate01\" | Get-OMETemplate | Copy-OMETemplate\n```\nClone template using default name \"TestTemplate01 - Clone\" when multiple templates with similar names exist\n```\n$(Get-OMETemplate | Where-Object -Property \"Name\" -EQ \"TestTemplate\") | Copy-OMETemplate\n```\nClone template and specify new name\n```\n\"TestTemplate01\" | Get-OMETemplate | Copy-OMETemplate -Name \"TestTemplate02\"\n```\nClone template including Identity Pool, VLANs and Teaming\n```\n\"TestTemplate01\" | Get-OMETemplate | Copy-OMETemplate -All\n``` \n\n## Configuration Compliance\nGet template by type\n```\n\"Configuration\" | Get-OMETemplate -FilterBy \"Type\" | Format-Table\n```\nCreate new configuration compliance template from source device\n```\nNew-OMETemplateFromDevice -Name \"TestTemplate\" -TemplateType \"Configuration\" -Device $(\"37KP0ZZ\" | Get-OMEDevice -FilterBy \"ServiceTag\") -Wait\n```\nCreate new configuration compliance template from XML file\n```\nNew-OMETemplateFromFile -Name \"TestTemplate\" -TemplateType \"Configuration\" -Content $(Get-Content -Path .\\Data.xml | Out-String)\n```\nCreate new configuration compliance baseline\n```\nNew-OMEConfigurationBaseline -Name \"TestBaseline01\" -Template $(\"Template01\" | Get-OMETemplate -FilterBy \"Name\") -Devices $(\"37KPZZZ\" | Get-OMEDevice -FilterBy \"ServiceTag\") -Wait -Verbose\n```\nUpdate configuration compliance on all devices in baseline ***This will force a reboot if necessary***\n```\nUpdate-OMEConfiguration -Name \"Make Compliant Test01\" -Baseline $(\"TestBaseline01\" | Get-OMEConfigurationBaseline) -Wait -Verbose\n```\nUpdate configuration compliance on filtered devices in baseline ***This will force a reboot if necessary***\n```\nUpdate-OMEConfiguration -Name \"Make Compliant Test01\" -Baseline $(\"TestBaseline01\" | Get-OMEConfigurationBaseline) -DeviceFilter $(\"C86CZZZ\" | Get-OMEDevice -FilterBy \"ServiceTag\") -Wait -Verbose\n```\nUpdate configuration compliance on filtered devices in baseline staging changes for next reboot\n```\nUpdate-OMEConfiguration -Name \"Make Compliant Test01\" -Baseline $(\"TestBaseline01\" | Get-OMEConfigurationBaseline) -DeviceFilter $(\"C86CZZZ\" | Get-OMEDevice -FilterBy \"ServiceTag\") -UpdateSchedule \"StageForNextReboot\" -Wait -Verbose\n```\nCheck configuration compliance for baseline\n```\n$(\"TestBaseline01\" | Get-OMEConfigurationBaseline -FilterBy \"Name\") | Invoke-OMEConfigurationBaselineRefresh -Wait -Verbose\n```\n\n## Profiles\nGet Profile by ProfileName\n```\n\"ProfileName\" | Get-OMEProfile\n```\nGet Profile by ProfileName where ProfileName includes single quotes. Use for Profiles deployed from Templates on the MX platform\n```\nGet-OMEProfile | Where-Object { $_.ProfileName -eq \"Profile from template 'Test Template 01' 00001\" }\n```\nGet Profile by TemplateName\n```\n\"TemplateName\" | Get-OMEProfile -FilterBy TemplateName\n```\nCreate a new Profile from a Template\n```\n\"Test Template 01\" | Get-OMETemplate | New-OMEProfile -NamePrefix \"Test Profile\" -NumberOfProfilesToCreate 3 \n``` \nCreate a new Profile from a Template and mount ISO from NFS share to Virtual Media\n```\n\"Test Template 01\" | Get-OMETemplate | New-OMEProfile -NamePrefix \"Test Profile\" -NumberOfProfilesToCreate 3 -NetworkBootShareType \"NFS\" -NetworkBootShareIpAddress \"192.168.1.100\" -NetworkBootIsoPath \"/mnt/data/iso/OS.iso\" -Verbose\n```  \nAssign Profile to Device\n```\n$Device = \"933NCZZ\" | Get-OMEDevice\n\"Test Profile 00001\" | Get-OMEProfile | Invoke-OMEProfileAssign -TargetId $Device.Id -Verbose\nInvoke-OMEProfileUnassign -ProfileName \"TSTest 00001\" -Wait -Verbose\n```\nAssign Profile to Chassis Slot 1 and Apply Immediately ***This will force a reseat of the sled***\n\n*See https://www.dell.com/support/kbdoc/en-us/000214041/mx7000-deploying-a-slot-based-template-shows-the-profile-as-assigned-and-virtual-identities-as-reserved\n```\n$Chassis = \"933MCZZ\" | Get-OMEDevice\n$ChassisSlots = $Chassis | Get-OMEDeviceDetail -InventoryType \"chassisSlotsList\" | Select-Object -ExpandProperty InventoryInfo\n$SlotId = $ChassisSlots | Where-Object { $_.Number -eq \"1\" -and $_.DeviceType -eq 1000 } | Select-Object -ExpandProperty Id\n\"Test Profile 00001\" | Get-OMEProfile | Invoke-OMEProfileAssign -TargetId $SlotId -AttachAndApply -Wait -Verbose\n```\nUnassign Profile by device\n```\nInvoke-OMEProfileUnassign -Device $(\"37KP0ZZ\" | Get-OMEDevice) -Wait -Verbose\n```\nUnassign Profile on multiple devices\n```\n$(\"37KP0ZZ\", \"37KT0ZZ\" | Get-OMEDevice) | Invoke-OMEProfileUnassign -Wait -Verbose\n```\nUnassign Profile by template\n```\nInvoke-OMEProfileUnassign -Template $(\"TestTemplate01\" | Get-OMETemplate) -Wait -Verbose\n```\nUnassign Profile by profile name and force reclaim identities\n```\nInvoke-OMEProfileUnassign -ProfileName \"Profile from template 'TestTemplate01' 00001\" -ForceReclaim -Wait -Verbose\n```\nRemove Profile\n```\n\"TestProfile01\" | Get-OMEProfile | Remove-OMEProfile\n```\nRename Profile\n```\n\"Profile 00005\" | Get-OMEProfile | Invoke-OMEProfileRename -Name \"Test Profile 00005\"\n```\nRename Profile deployed from Template on MX platform\n```\nGet-OMEProfile | Where-Object { $_.ProfileName -eq \"Profile from template 'Test Template 01' 00001\" } | Invoke-OMEProfileRename -Name \"Test Profile 01 - 00001\"\n```\n\n## Jobs\nList all jobs\n```\nGet-OMEJob | Format-Table\n```\nGet job details by Id\n```\n13852 | Get-OMEJob -Detail -Verbose\n```\nGet job by job type\n```\n5 | Get-OMEJob -FilterBy \"Type\" | Format-Table\n```\nGet job by last run status\n```\n2060 | Get-OMEJob -FilterBy \"LastRunStatus\" | Format-Table\n```\nGet job by state\n```\n\"Enabled\" | Get-OMEJob -FilterBy \"State\" | Format-Table\n```\nExport job details to CSV by Id\n```\n10085 | Get-OMEJob -FilterBy \"Id\" -Detail | Select-Object  @{Name='JobId'; Expression='Id'}, JobName, JobTypeId, JobType, JobDescription, LastRun -ExpandProperty JobDetail\n    | Export-Csv -Path \"C:\\Temp\\OMEJobDetail.csv\" -NoTypeInformation\n```\nGet jobs filter by multiple properties\n```\n2070 | Get-OMEJob -FilterBy \"LastRunStatus\" | Where-Object JobTypeId -EQ 101\n```\nRun job\n```\n28991 | Invoke-OMEJobRun -Wait -Verbose\n```\n\n## Reports\nRun report\n```\nInvoke-Report -ReportId 11709\n```\n\n## Alerts\nGet 50 most recent critical alerts\n```\nGet-OMEAlert -SeverityType CRITICAL -Top 50 -Pages 1\n```\n\nGet all alert policies\n```\nGet-OMEAlertPolicy\n```\n\nGet alert policy by ID\n```\n12016 | Get-OMEAlertPolicy\n```\n\nGet alert policy by Name (OME API does not currently support filtering by Name natively)\n```\nGet-OMEAlertPolicy | Where-Object { $_.Name -eq \"Group A Alert\" }\n```\n\nEnable Alert Policy\n```\n17758 | Get-OMEAlertPolicy | Enable-OMEAlertPolicy\n```\n\nDisable Alert Policy\n```\n17758 | Get-OMEAlertPolicy | Disable-OMEAlertPolicy\n```\n\nDisable Multiple Alert Policies\n```\n$AlertPolicies = Get-OMEAlertPolicy | Where-Object { $_.Name -match \"Group A Alert\" }\nDisable-OMEAlertPolicy -AlertPolicy $AlertPolicies\n```\n\nCreate alert policy\n\nUse `17758 | Get-OMEAlertPolicy | ConvertTo-Json -Depth 10` to show an existing policy as an example\n\n```\n$NewAlertPolicy = '{\n    \"Name\": \"Test Alert Policy\",\n    \"Description\": null,\n    \"Enabled\": true,\n    \"DefaultPolicy\": false,\n    \"PolicyData\": {\n        \"Catalogs\": [\n            {\n                \"CatalogName\": \"iDRAC\",\n                \"Categories\": [\n                    0\n                ],\n                \"SubCategories\": [\n                    0\n                ]\n            }\n        ],\n        \"Severities\": [\n            16\n        ],\n        \"MessageIds\": [],\n        \"Devices\": [],\n        \"DeviceTypes\": [],\n        \"Groups\": [\n            17745,\n            17743,\n            17746\n        ],\n        \"AllTargets\": false,\n        \"Schedule\": {\n            \"StartTime\": \"2023-03-21 04:00:00.017\",\n            \"EndTime\": \"\",\n            \"CronString\": \"* * * ? * * *\",\n            \"Interval\": false\n        },\n        \"Actions\": [\n            {\n                \"Id\": 36,\n                \"Name\": \"Email\",\n                \"ParameterDetails\": [\n                    {\n                        \"Id\": 1,\n                        \"Name\": \"subject\",\n                        \"Value\": \"Device Name: $name,  Device IP Address: $ip,  Severity: $severity\",\n                        \"Type\": \"string\",\n                        \"TypeParams\": [\n                            {\n                                \"Name\": \"maxLength\",\n                                \"Value\": \"255\"\n                            }\n                        ]\n                    },\n                    {\n                        \"Id\": 1,\n                        \"Name\": \"to\",\n                        \"Value\": \"support@example.com\",\n                        \"Type\": \"string\",\n                        \"TypeParams\": [\n                            {\n                                \"Name\": \"maxLength\",\n                                \"Value\": \"255\"\n                            }\n                        ]\n                    },\n                    {\n                        \"Id\": 1,\n                        \"Name\": \"from\",\n                        \"Value\": \"ome@example.com\",\n                        \"Type\": \"string\",\n                        \"TypeParams\": [\n                            {\n                                \"Name\": \"maxLength\",\n                                \"Value\": \"255\"\n                            }\n                        ]\n                    },\n                    {\n                        \"Id\": 1,\n                        \"Name\": \"message\",\n                        \"Value\": \"Event occurred for Device Name: $name, Device IP Address: $ip, Identifier: $identifier, UTC Time: $time, Severity: $severity, Message ID: $messageId, $message\",\n                        \"Type\": \"string\",\n                        \"TypeParams\": [\n                            {\n                                \"Name\": \"maxLength\",\n                                \"Value\": \"255\"\n                            }\n                        ]\n                    }\n                ],\n                \"TemplateId\": 50\n            }\n        ],\n        \"UndiscoveredTargets\": []\n    },\n    \"State\": true\n}'\n\nNew-OMEAlertPolicy -AlertPolicy $NewAlertPolicy\n```\n\n## Directory Services \n### Active Directory\n\nTest AD Directory Service using Global Catalog Lookup\n```\nNew-OMEDirectoryService -Name \"LAB.LOCAL\" -DirectoryType \"AD\" `\n    -DirectoryServerLookup \"DNS\" -DirectoryServers @(\"lab.local\") -ADGroupDomain \"lab.local\" `\n    -TestConnection -TestUserName \"Username@lab.local\" -TestPassword $(ConvertTo-SecureString 'calvin' -AsPlainText -Force) -Verbose\n```\nCreate AD Directory Service using Global Catalog Lookup\n```\nNew-OMEDirectoryService -Name \"LAB.LOCAL\" -DirectoryType \"AD\" `\n    -DirectoryServerLookup \"DNS\" -DirectoryServers @(\"lab.local\") -ADGroupDomain \"lab.local\"\n```\nCreate AD Directory Service using Global Catalog Lookup with Certificate Validation\n```\nNew-OMEDirectoryService -Name \"LAB.LOCAL\" -DirectoryType \"AD\" -DirectoryServerLookup \"DNS\" -DirectoryServers @(\"lab.local\") -ADGroupDomain \"lab.local\" -CertificateValidation -CertificateFile \"C:\\Temp\\CA.cer\"\n```\nCreate AD Directory Service manually specifing Domain Controllers\n```\nNew-OMEDirectoryService -Name \"LAB.LOCAL\" -DirectoryType \"AD\" `\n    -DirectoryServerLookup \"MANUAL\" -DirectoryServers @(\"ad1.lab.local\", \"ad2.lab.local\") -ADGroupDomain \"lab.local\"\n``` \nImport directory group\n```\n$AD = Get-OMEDirectoryService -DirectoryType \"AD\" -Name \"LAB.LOCAL\"\n$ADGroups = Get-OMEDirectoryServiceSearch -Name \"Admin\" -DirectoryService $AD\n$Role = Get-OMERole -Name \"chassis\"\nInvoke-OMEDirectoryServiceImportGroup -DirectoryService $AD -DirectoryGroups $ADGroups -DirectoryType \"AD\" -UserName \"Usename@lab.local\" -Password $(ConvertTo-SecureString 'calvin' -AsPlainText -Force)) -Role $Role -Verbose\n```\n\n### LDAP\nCreate LDAP Directory Service\n```\nNew-OMEDirectoryService -Name \"LAB.LOCAL\" -DirectoryType \"LDAP\" `\n    -DirectoryServerLookup \"MANUAL\" -DirectoryServers @(\"ldap1.lab.local\", \"ldap2.lab.local\") `\n    -LDAPBaseDistinguishedName \"dc=lab,dc=local\"\n```\n\n## Backup \n### *Restore must be performed in OME-M at this time*\n\nBackup chassis to CIFS share now\n```\n$MXChassis = @(\"LEAD\" | Get-OMEMXDomain | Select-Object -First 1)\n\nInvoke-OMEApplianceBackup -Chassis $MXChassis -Share \"192.168.1.100\" -SharePath \"/SHARE\" -ShareType \"CIFS\" `\n    -UserName \"Administrator\" -Password $(ConvertTo-SecureString 'calvin' -AsPlainText -Force) `\n    -BackupFile \"BACKUP_$((Get-Date).ToString('yyyyMMddHHmmss'))\" `\n    -IncludePw -IncludeCertificates -EncryptionPassword $(ConvertTo-SecureString 'nkQ*DTrNK7$b' -AsPlainText -Force) -Wait -Verbose\n```\n\nBackup chassis to NFS share now\n```\n$MXChassis = @(\"LEAD\" | Get-OMEMXDomain | Select-Object -First 1)\n\nInvoke-OMEApplianceBackup -Chassis $MXChassis -Share \"192.168.1.100\" -SharePath \"/mnt/data/backup\" -ShareType \"NFS\" `\n    -BackupFile \"BACKUP_$((Get-Date).ToString('yyyyMMddHHmmss'))\" `\n    -IncludePw -IncludeCertificates -EncryptionPassword $(ConvertTo-SecureString 'nkQ*DTrNK7$b' -AsPlainText -Force) -Wait -Verbose\n```\n\nBackup chassis to NFS share on schedule every Sunday at 12:00AM UTC\n```\n$MXChassis = @(\"LEAD\" | Get-OMEMXDomain | Select-Object -First 1)\n\nInvoke-OMEApplianceBackup -Chassis $MXChassis -Share \"192.168.1.100\" -SharePath \"/mnt/data/backup\" -ShareType \"NFS\" `\n    -BackupFile \"BACKUP_$((Get-Date).ToString('yyyyMMddHHmmss'))\" -ScheduleCron '0 0 0 ? * sun *' `\n    -IncludePw -IncludeCertificates -EncryptionPassword $(ConvertTo-SecureString 'nkQ*DTrNK7$b' -AsPlainText -Force) -Wait -Verbose\n```\n\n## Services Plugin\nGet Support cases for device by Service Tag\n```\n\"C38V9T2\" | Get-OMESupportAssistCase -Verbose\n```\nExport example json used to create new Support Assist group\n```\nNew-OMESupportAssistGroup -ExportExampleJson \n```\nCreate new Support Assist group from file\n```\nNew-OMESupportAssistGroup -AddGroup $(Get-Content \"C:\\Temp\\Group.json\" -Raw) -Verbose\n```\nEdit Support Assist group\n```\n$TestSupportAssistGroup = '{\n    \"MyAccountId\": \"\",\n    \"Name\": \"Support Assist Group 2\",\n    \"Description\": \"Support Assist Group\",\n    \"DispatchOptIn\": false,\n    \"CustomerDetails\": null,\n    \"ContactOptIn\":  false\n}' \n\"Support Assist Group 1\" | Get-OMEGroup | Edit-OMESupportAssistGroup -EditGroup $TestSupportAssistGroup -Verbose\n```\nAdd devices to Support Assist group\n```\n$devices = $(\"859N3L3\", \"759N3L3\" | Get-OMEDevice -FilterBy \"ServiceTag\")\n\"Support Assist Group 1\" | Get-OMEGroup | Edit-OMESupportAssistGroup -Devices $devices -Verbose\n```\nRemove devices from Support Assist group\n```\n$devices = $(\"859N3L3\", \"759N3L3\" | Get-OMEDevice -FilterBy \"ServiceTag\")\n\"Support Assist Group 1\"  | Get-OMEGroup | Edit-OMESupportAssistGroup -Mode \"Remove\" -Devices $devices -Verbose\n```\nRemove Support Assist group\n```\n\"Support Assist Group 1\" | Get-OMEGroup | Remove-OMESupportAssistGroup\n```\nOther Examples\nhttps://github.com/dell/OpenManage-PowerShell-Modules/blob/e8f150a122a16ab458d6cc18298ffe3ce94bf3b2/Examples/ServicesGroupCreateAddDevices.ps1\n\n## MX\n### Chassis\nCreate new Chassis Group\n```\nNew-OMEMcmGroup -Name \"TestLabMX\"\n```\nCreate new Chassis Group with VIP\n```\nNew-OMEMcmGroup -Name \"TestLabMX\" -VIPIPv4Address \"100.79.6.111\" -VIPSubnetMask \"255.255.254.0\" -VIPGateway \"100.79.7.254\" -Wait -Verbose \n```\n\n### SmartFabric\nCreate new Smart Fabric\n```\nNew-OMEFabric -Name \"SmartFabric01\" -DesignType \"2xMX9116n_Fabric_Switching_Engines_in_same_chassis\" `\n    -SwitchAServiceTag \"C38S9T2\" -SwitchBServiceTag \"CMWSV43\" -Verbose\n```\nConfigure Port Breakouts and Refresh Inventory\n```\n$SwitchA = $(\"C38S9T2\" | Get-OMEDevice)\n$SwitchB = $(\"CMWSV43\" | Get-OMEDevice)\n\nSet-OMEIOMPortBreakout -Device $SwitchA -BreakoutType \"4X10GE\" -PortGroups \"port-group1/1/13\" -Wait -Verbose\nSet-OMEIOMPortBreakout -Device $SwitchA -BreakoutType \"4X8GFC\" -PortGroups \"port-group1/1/15,port-group1/1/16\" -Wait -Verbose\nSet-OMEIOMPortBreakout -Device $SwitchB -BreakoutType \"4X10GE\" -PortGroups \"port-group1/1/13\" -Wait -Verbose\nSet-OMEIOMPortBreakout -Device $SwitchB -BreakoutType \"4X8GFC\" -PortGroups \"port-group1/1/15,port-group1/1/16\" -Wait -Verbose\nInvoke-OMEInventoryRefresh -Devices @($SwitchA, $SwitchB) -Wait\n```\nCreate new Uplink\n```\n$SwitchA = $(\"C38S9T2\" | Get-OMEDevice)\n$SwitchB = $(\"CMWSV43\" | Get-OMEDevice)\n$DefaultNetworks = $(\"VLAN 1001\", \"VLAN 1003\" | Get-OMENetwork)\n$StorageFabricANetwork = $(\"Storage Fabric A\" | Get-OMENetwork)\n$StorageFabricBNetwork = $(\"Storage Fabric B\" | Get-OMENetwork)\n$Fabric = $(\"SmartFabric01\" | Get-OMEFabric)\nNew-OMEFabricUplink -Name \"EthernetUplink01\" -Fabric $Fabric -UplinkType \"Ethernet - No Spanning Tree\" `\n    -TaggedNetworks $DefaultNetworks -Ports \"C38S9T2:ethernet1/1/41:1,CMWSV43:ethernet1/1/41:1\" -Verbose\nNew-OMEFabricUplink -Name \"StorageFabricAUplink\" -Fabric $Fabric -UplinkType \"FC Gateway\" `\n    -TaggedNetworks $StorageFabricANetwork -Ports \"C38S9T2:fibrechannel1/1/43:1\" -Verbose\nNew-OMEFabricUplink -Name \"StorageFabricBUplink\" -Fabric $Fabric -UplinkType \"FC Gateway\" `\n    -TaggedNetworks $StorageFabricBNetwork -Ports \"CMWSV43:fibrechannel1/1/43:1\" -Verbose\n\n```\nEdit Uplink\n```\n$Fabric = \"SmartFabric01\" | Get-OMEFabric\n$Uplink = \"EthernetUplink01\" | Get-OMEFabricUplink -Fabric $Fabric\n$AddNetwork = \"VLAN 1005\", \"VLAN 1006\" | Get-OMENetwork\n$UnTaggedNetwork = \"default\" | Get-OMENetwork\nEdit-OMEFabricUplink -Fabric $Fabric -Uplink $Uplink -Name \"NewUplinkName\"\nEdit-OMEFabricUplink -Fabric $Fabric -Uplink $Uplink -Mode \"Append\" -TaggedNetworks $AddNetwork -Verbose\nEdit-OMEFabricUplink -Fabric $Fabric -Uplink $Uplink -Mode \"Append\" -Ports \"C38S9T2:ethernet1/1/41:2,CMWSV43:ethernet1/1/41:2\" -Verbose\nEdit-OMEFabricUplink -Fabric $Fabric -Uplink $Uplink -Mode \"Remove\" -TaggedNetworks $AddNetwork -Ports \"C38S9T2:ethernet1/1/41:2\" -Verbose\nEdit-OMEFabricUplink -Fabric $Fabric -Uplink $Uplink -Mode \"Replace\" -TaggedNetworks $AddNetwork -Ports \"C38S9T2:ethernet1/1/41:1,CMWSV43:ethernet1/1/41:1\" -Verbose\nEdit-OMEFabricUplink -Fabric $Fabric -Uplink $Uplink -UnTaggedNetwork $UnTaggedNetwork -Verbose\n```\n\n### Templates\nConfigure Template with Storage Networks\n```\n$DefaultNetworks = $(\"VLAN 1001\", \"VLAN 1003\", \"VLAN 1004\", \"VLAN 1005\" | Get-OMENetwork)\n$StorageFabricANetwork = $(\"Storage Fabric A\" | Get-OMENetwork)\n$StorageFabricBNetwork = $(\"Storage Fabric B\" | Get-OMENetwork)\n$Template = \"MX740c 4 Port\" | Get-OMETemplate \n$Template | Set-OMETemplateNetwork -NICIdentifier \"NIC in Mezzanine 1A\" -Port 1 -TaggedNetworks $DefaultNetworks -Mode \"Append\" -Verbose\n$Template | Set-OMETemplateNetwork -NICIdentifier \"NIC in Mezzanine 1A\" -Port 2 -TaggedNetworks $DefaultNetworks -Mode \"Append\" -Verbose\n$Template | Set-OMETemplateNetwork -NICIdentifier \"NIC in Mezzanine 1A\" -Port 1 -TaggedNetworks $StorageFabricANetwork -Mode \"Append\" -Verbose\n$Template | Set-OMETemplateNetwork -NICIdentifier \"NIC in Mezzanine 1A\" -Port 2 -TaggedNetworks $StorageFabricBNetwork -Mode \"Append\" -Verbose\n```\nRemove Network from Template\n```\n$Template | Set-OMETemplateNetwork -NICIdentifier \"NIC in Mezzanine 1A\" -Port 1 -TaggedNetworks $StorageFabricANetwork -Mode \"Remove\" -Verbose\n$Template | Set-OMETemplateNetwork -NICIdentifier \"NIC in Mezzanine 1A\" -Port 2 -TaggedNetworks $StorageFabricBNetwork -Mode \"Remove\" -Verbose\n```\nConfigure Template Identity Pool\n```\n$IdentityPool = $(\"default\" | Get-OMEIdentityPool)\n\"MX740c 4 Port\"  | Get-OMETemplate | Set-OMETemplateIdentityPool -IdentityPool $IdentityPool -Verbose\n```\n\n## Set Chassis Name\n```\n$Chassis = \"C38V9ZZ\" | Get-OMEDevice\nSet-OMEChassisName -Name \"TESTMX7000-1\" -Chassis $Chassis -Wait -Verbose\n```\n\n## Set Chassis Slot Names\n```\n$Chassis = \"C38V9ZZ\" | Get-OMEDevice\nSet-OMEChassisSlotName -Chassis $Chassis -Slot 1 -Name \"MX840c-C39N9ZZ\" -Wait -Verbose\n\nSet-OMEChassisSlotName -Chassis $Chassis -Slot 1 -Name \"MX5108-C38T9ZZ\" -SlotType \"IOM\" -Wait -Verbose\n```\n\n## Virtual Reseat\nTrigger virtual system reseat\n```\n\"933NCZZ\" | Get-OMEDevice | Invoke-OMEDeviceReseat -Verbose -Wait\n```\n\n## Quick Deploy\n```\n$RootPassword = $(ConvertTo-SecureString 'calvin' -AsPlainText -Force)\n$Chassis = \"C38V9ZZ\" | Get-OMEDevice\n```\n\nSleds DHCP\n```\n$QuickDeployDHCP = @(\n    @{Slot=1;},\n    @{Slot=2;}\n)\n\nInvoke-OMEQuickDeploy -RootPassword $RootPassword -SlotType \"SLED\" -Chassis $Chassis `\n    -IPv4Enabled -IPv4NetworkType \"DHCP\" `\n    -Slots $QuickDeployDHCP -Wait -Verbose\n\nInvoke-OMEQuickDeploy -RootPassword $RootPassword -SlotType \"SLED\" -Chassis $Chassis `\n    -IPv4Enabled -IPv4NetworkType \"DHCP\" `\n    -IPv6Enabled -IPv6NetworkType \"DHCP\" `\n    -Slots $QuickDeployDHCP -Wait -Verbose\n```\n\nSleds IPv4 Only\n```\n$QuickDeployIPv4Static = @(\n    @{Slot=1; IPv4Address=\"192.168.1.100\"; VlanId=1}\n)\nInvoke-OMEQuickDeploy -RootPassword $RootPassword -SlotType \"SLED\" -Chassis $Chassis `\n    -IPv4Enabled -IPv4NetworkType \"STATIC\" -IPv4SubnetMask \"255.255.254.0\" -IPv4Gateway \"192.168.1.1\" `\n    -Slots $QuickDeployBothStatic -Verbose\n```\n\nSleds IPv6 Only\n```\n$QuickDeployIPv6Static = @(\n    @{Slot=1; IPv6Address=\"2001:0db8:85a3:0000:0000:8a2e:0370:7334\"; VlanId=1},\n    @{Slot=2; IPv6Address=\"2001:0db8:85a3:0000:0000:8a2e:0370:7335\"; VlanId=1}\n)\nInvoke-OMEQuickDeploy -RootPassword $RootPassword -SlotType \"SLED\" -Chassis $Chassis `\n    -IPv6Enabled -IPv6NetworkType \"STATIC\" -IPv6Gateway \"fe80::1\" -IPv6PrefixLength 4 `\n    -Slots $QuickDeployIPv6Static -Verbose\n```\n\nSleds IPv4 and IPv6\n```\n$QuickDeployBothStatic = @(\n    @{Slot=1; IPv4Address=\"192.168.1.100\"; IPv6Address=\"2001:0db8:85a3:0000:0000:8a2e:0370:7334\"; VlanId=1}\n)\nInvoke-OMEQuickDeploy -RootPassword $RootPassword -SlotType \"SLED\" -Chassis $Chassis `\n    -IPv4Enabled -IPv4NetworkType \"STATIC\" -IPv4SubnetMask \"255.255.254.0\" -IPv4Gateway \"192.168.1.1\" `\n    -IPv6Enabled -IPv6NetworkType \"STATIC\" -IPv6Gateway \"fe80::1\" -IPv6PrefixLength 4 `\n    -Slots $QuickDeployBothStatic -Verbose\n```\n\nIOM IPv4\n```\n$QuickDeployIPv4Static = @(\n    @{Slot=1; IPv4Address=\"192.168.1.100\"; VlanId=1}\n)\nInvoke-OMEQuickDeploy -RootPassword $RootPassword -SlotType \"IOM\" -Chassis $Chassis `\n    -IPv4Enabled -IPv4NetworkType \"STATIC\" -IPv4SubnetMask \"255.255.255.0\" -IPv4Gateway \"192.168.1.1\" `\n    -Slots $QuickDeployIPv4Static -Verbose\n```\n## Application Settings\nSet Application Settings\n```\n$Settings = @(\n    @{Name=\"EmailAlertsConf.1#DestinationEmailAddress\"; Value=\"mail.example.net\"},\n    @{Name=\"EmailAlertsConf.1#portNumber\"; Value=25},\n    @{Name=\"EmailAlertsConf.1#useSSL\"; Value=$false},\n    @{Name=\"ChassisLocation.1#DataCenterName\"; Value=\"DC1\"},\n    @{Name=\"ChassisLocation.1#RoomName\"; Value=\"\"},\n    @{Name=\"ChassisLocation.1#AisleName\"; Value=\"\"},\n    @{Name=\"TimeConfig.1#NTPEnable\"; Value=$true},\n    @{Name=\"TimeConfig.1#TimeZone\"; Value=\"TZ_ID_9\"},\n    @{Name=\"TimeConfig.1#NTPServer1\"; Value=\"0.centos.pool.ntp.org\"},\n    @{Name=\"ChassisPower.1#RedundancyPolicy\"; Value=\"GRID_REDUNDANCY\"},\n    @{Name=\"ChassisPower.1#EnableHotSpare\"; Value=$true},\n    @{Name=\"ChassisPower.1#PrimaryGrid\"; Value=\"GRID_1\"},\n    @{Name=\"SessionConfiguration.1#maxSessions\"; Value=100},\n    @{Name=\"SSH.1#Enable\"; Value=$true},\n    @{Name=\"Preference.1#DeviceName\"; Value=\"HOST_NAME\"}\n)\n\nSet-OMEApplicationSettings -Settings $Settings -Wait -Verbose\n```\n\nGet Application Settings\n```\n$CurrentSettings = Get-OMEApplicationSettings\n$CurrentSettings.SystemConfiguration.Components[0].Attributes | Format-Table\n```\n\n## Error Handling and Control Flow\nhttps://devblogs.microsoft.com/scripting/handling-errors-the-powershell-way\n```\nThe -ErrorAction common parameter allows you to specify which action to take if a command fails. The available options are: Stop, Continue, SilentlyContinue, Ignore, or Inquire. By default, Windows PowerShell uses an error action preference of Continue, which means that errors will be written out to the host, but the script will continue to execute.\n```\n\n## Troubleshooting\nVerbose Output\n- Append `-Verbose` to any command\n\nRedirect ALL output to file\n```\nUpdate-OMEFirmware -Baseline $(\"AllLatest\" | Get-OMEFirmwareBaseline) -UpdateSchedule \"StageForNextReboot\" *\u003e firmware.txt\n```\n\nGet PowerShell Version\n\n`$PSVersionTable`\n\nGet PowerShell Module Path\n\n`$env:PSModulePath`\n\n## Support\nThis code is provided as-is and currently not officially supported by Dell EMC.\n\nTo report problems or provide feedback https://github.com/dell/OpenManage-PowerShell-Modules/issues\n\n## License\n\nCopyright Dell EMC","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdell%2FOpenManage-PowerShell-Modules","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdell%2FOpenManage-PowerShell-Modules","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdell%2FOpenManage-PowerShell-Modules/lists"}