Files
Backup/_NDGOV_WindowsTeam/ITD.Shared-ServiceNow/Scripts/Compare-ITDVMSharePointToCmdb.ps1
T
Zack Meier 1d304511b8 update
2026-04-15 15:45:50 -05:00

116 lines
3.8 KiB
PowerShell

#### report on the differences between the SharePoint list and the CMDB
function Compare-ITDVMSharePointToCmdb {
[CmdletBinding()]
param (
)
begin {
$SPList = Get-ITDVMwareSharePointVMGuestList | Where-Object { $_.Status -ne "Delete" -and $_.Status -ne "Deleted" -and $_.Status -ne "Declined"}
$ArrayList = [System.Collections.ArrayList]@()
ForEach ($SPItem in $SPList) {
Write-Verbose -message ($SPItem.Title) -Verbose
$Cmdb = $null
$Hostname = $null
$obj = $null
$Hostname = $SPItem.Title.split('.')[0]
$Cmdb = Get-ITDServiceNowRecord -Table cmdb_ci_server -Filter "name=$HostName"
$obj = [PSCustomObject]@{
SPTitle = $SPItem.Title;
CmdbHostName = $Cmdb.name.display_value;
Environment = $null;
AppName = $null;
LicensingRestrictions = $null;
DR_Protection = $null;
SRMRecoveryType = $null;
}
If ($SPItem.Environment -eq $Cmdb.Environment.display_value) {
$obj.Environment = $true
} Else {
$obj.Environment = $false
}
If ($SPItem.AppName -eq $Cmdb.u_nd_application_svc.display_value) {
$obj.AppName = $true
} Else {
$obj.AppName = $false
}
If ($SPItem.LicensingRestrictions -eq $Cmdb.u_nd_licensing_restrictions.display_value) {
$obj.LicensingRestrictions = $true
} Else {
$obj.LicensingRestrictions = $false
}
switch ($SPItem.DR_Protection) {
'None' {
If ($Cmdb.u_nd_dr_protection.display_value -eq 'No DR') {
$obj.DR_Protection = $true
}
Else {
$obj.DR_Protection = $false
}
}
'VMware: ABR' {
If ($Cmdb.u_nd_dr_protection.display_value -eq 'VMware: ABR') {
$obj.DR_Protection = $true
}
Else {
$obj.DR_Protection = $false
}
}
Default {
If ($Cmdb.u_nd_dr_protection.display_value -eq $SPItem.DR_Protection) {
$obj.DR_Protection = $true
}
Else {
$obj.DR_Protection = $false
}
}
}
switch ($SPItem.SRM_RecoveryVMtype) {
$null {
If ($null -eq $Cmdb.u_nd_srm_recovery_vm_type.display_value) {
$obj.SRMRecoveryType = $true
}
Else {
$obj.SRMRecoveryType = $false
}
}
'Reserved' {
If ($Cmdb.u_srm_recovery_type.display_value -eq 'Reserved') {
$obj.SRMRecoveryType = $true
}
Else {
$obj.SRMRecoveryType = $false
}
}
'Repurposed' {
If ($Cmdb.u_srm_recovery_type.display_value -eq 'Repurposed') {
$obj.SRMRecoveryType = $true
}
Else {
$obj.SRMRecoveryType = $false
}
}
}
$ArrayList.Add($obj) | Out-Null
}
}
process {
}
end {
Write-Output $ArrayList
}
}