BrownField/Auto-assessment/scripts/Get-Recommendation.ps1 (71 lines of code) (raw):

. .\All-Recommendations.ps1 function Get-Recommendation { param ( [string]$type, [string]$sddcName, [string]$externalIdentitySource = "", [string]$ldapServer = "" ) switch ($type) { "NSXTPasswordRotation" { return New-NSXT-Password-Rotation-Recommendation -sddcName $sddcName } "vCenterPasswordRotation" { return New-vCenter-Password-Rotation-Recommendation -sddcName $sddcName } "NoPIMLicense" { return New-NoPIMLicense-Recommendation } "NoActivePIMRequests" { return New-No-ActivePIMAccess-Recommendation -sddcName $sddcName } "NoExternalIdentitySource" { return New-NoExternalIdentitySource-Recommendation -sddcName $sddcName } "ExternalIdentitySource" { return New-ExternalIdentitySource-Recommendation -sddcName $sddcName -externalIdentitySource $externalIdentitySource } "LDAPIdentitySource" { return New-LDAPIdentitySource-Recommendation -sddcName $sddcName -ldapServer $ldapServer } "LDAPSIdentitySource" { return New-LDAPSIdentitySource-Recommendation -sddcName $sddcName -ldapServer $ldapServer } "NoGlobalReachConnections" { return New-NoGlobalReach-Recommendation -sddcName $sddcName } "SingleGlobalReachConnection" { return New-SingleGlobalReach-Recommendation -sddcName $sddcName } "MultipleGlobalReachConnections" { return New-MultipleGlobalReach-Recommendation -sddcName $sddcName } "NoERAuthKeyRedemption" { return New-NoAuthKeyRedemption-Recommendation -sddcName $sddcName } "MultipleERAuthKeyRedemptions" { return New-MultipleAuthKeyRedemption-Recommendation -sddcName $sddcName } "NoManagedSNAT" { return New-NoManagedSNAT-Recommendation -sddcName $sddcName } "ManagedSNAT" { return New-ManagedSNAT-Recommendation -sddcName $sddcName } "NSXTPIP" { return New-NSXTPIP-Recommendation -sddcName $sddcName } "NonZoneRedundantGateway" { return New-NonZoneRedundantGateway-Recommendation -sddcName $sddcName } "NonFastPathGateway" { return New-NonFastPathGateway-Recommendation -sddcName $sddcName } "FastPathGateway" { return New-FastPathGateway-Recommendation -sddcName $sddcName } "ZoneRedundantGateway" { return New-ZoneRedundantGateway-Recommendation -sddcName $sddcName } "NonFastPathvWANGateway" { return New-NonFastPathvWANGateway-Recommendation -sddcName $sddcName } "ZoneRedundantvWANGateway" { return New-ZoneRedundantvWANGateway-Recommendation -sddcName $sddcName } "DefaultDNSZone" { return New-DefaultDNSZone-Recommendation -sddcName $sddcName } "CustomDNSZone" { return New-CustomDNSZone-Recommendation -sddcName $sddcName } "NoDHCP" { return New-NoDHCP-Recommendation -sddcName $sddcName } "CustomDHCP" { return New-CustomDHCP-Recommendation -sddcName $sddcName } "NoPIMLogs" { return New-NoPIMLogs-Recommendation -sddcName $sddcName } "NoEntraIDDiagnostics" { return New-NoEntraIDDiagnostics-Recommendation -sddcName $sddcName } "NoCustomUsers" { return New-NoCustomUsers-Recommendation -sddcName $sddcName } "NoCustomGroups" { return New-NoCustomGroups-Recommendation -sddcName $sddcName } "NoDomainJoin" { return New-NoDomainJoin-Recommendation -sddcName $sddcName } "NoUserDefinedDistributedFirewall" { return New-NoUserDefinedDistributedFirewall-Recommendation -sddcName $sddcName } "DisabledGatewayFirewall" { return New-DisabledGatewayFirewall-Recommendation -sddcName $sddcName } "NoDDoSProtectionPlan" { return New-NoDDoSProtectionPlan-Recommendation -sddcName $sddcName } "NovSANEncryption" { return New-NovSANEncryption-Recommendation -sddcName $sddcName } "NoVMEncryption" { return New-NoVMEncryption-Recommendation -sddcName $sddcName } "AccessControl" { return New-AccessControl-Recommendation -sddcName $sddcName } "DisabledAlert" { return New-DisabledAlert-Recommendation -sddcName $sddcName } "NoRecipientForAlert" { return New-NoRecipientForAlert-Recommendation -sddcName $sddcName } "MissingAlerts" { return New-MissingAlerts-Recommendation -sddcName $sddcName } "NoAlerts" { return New-NoAlerts-Recommendation -sddcName $sddcName } "ArcNotProvisioned" { return New-ArcNotProvisioned-Recommendation -sddcName $sddcName } "vSANForContentLibrary" { return New-vSANForContentLibrary-Recommendation -sddcName $sddcName } "NoAVSDiagnostics" { return New-NoAVSDiagnostics-Recommendation -sddcName $sddcName } "NoAVSSysLogDiagnostic" { return New-NoAVSSysLogDiagnostic-Recommendation -sddcName $sddcName } "vSANPolicyNotFTT2" { return New-vSANPolicyNotFTT2-Recommendation -sddcName $sddcName } "SRMNotProvisioned" { return New-SRMNotProvisioned-Recommendation -sddcName $sddcName } "LowUtilizationforERGateway" { return New-LowUtilizationforERGateway-Recommendation -sddcName $sddcName } "LowUtilizationforvWANERGateway" { return New-LowUtilizationforvWANERGateway-Recommendation -sddcName $sddcName } "NoResourceLock" { return New-NoResourceLock-Recommendation -sddcName $sddcName } "NoAutomatedDeployment" { return New-NoAutomatedDeployment-Recommendation -sddcName $sddcName } "NoServiveHealthAlert" { return New-NoServiveHealthAlert-Recommendation -sddcName $sddcName } "DisabledServiveHealthAlert" { return New-DisabledServiveHealthAlert-Recommendation -sddcName $sddcName } "NoRecipientForServiveHealthAlert" { return New-NoRecipientForServiveHealthAlert-Recommendation -sddcName $sddcName } "ClusterCountNearLimit" { return New-ClusterCountNearLimit-Recommendation -sddcName $sddcName } "NodeCountNearLimit" { return New-NodeCountNearLimit-Recommendation -sddcName $sddcName } "HCXNotProvisioned" { return New-HCXNotProvisioned-Recommendation -sddcName $sddcName } "NoHCXNEHA" { return New-NoHCXNEHA-Recommendation -sddcName $sddcName } "VLANStretchedForMoreThan30Days" { return New-VLANStretchedForMoreThan30Days-Recommendation -sddcName $sddcName } default { throw "Unknown recommendation type: $type" } } }