From 69f31460702714e3e81437027057b1f144be2b41 Mon Sep 17 00:00:00 2001 From: Zachary Gorman Date: Thu, 13 Feb 2025 15:21:11 -0800 Subject: [PATCH] Tidied up SHSPrinter in preparation for making it a job --- Get-PC/Private/SHSPrinter.ps1 | 55 ++++++++--------------------------- 1 file changed, 12 insertions(+), 43 deletions(-) diff --git a/Get-PC/Private/SHSPrinter.ps1 b/Get-PC/Private/SHSPrinter.ps1 index 80c1dcb..7111aef 100644 --- a/Get-PC/Private/SHSPrinter.ps1 +++ b/Get-PC/Private/SHSPrinter.ps1 @@ -13,15 +13,24 @@ function Get-SHSPrinter { [string]$printer ) - Write-Progress -Activity "Getting printer details for $name" -Status 'Getting IP Address' -PercentComplete 10 -ParentId 1 + Write-Progress -Activity "Getting printer details for $printer" -Status 'Getting IP Address' -PercentComplete 10 -ParentId 1 $snmp = New-Object -ComObject olePrn.OleSNMP #Gets the printer ip and full domain name - $result = Get-PrinterIP $printer + $domains = @('.gsrmc.int.samhealth.net','.avery.int.samhealth.net','.sagh.int.samhealth.net','.snlh.int.samhealth.net','.slch.int.samhealth.net','.spch.int.samhealth.net') + $result = Resolve-DnsName $printer -ErrorAction SilentlyContinue + + if($null -eq $result){ + foreach ($domain in $domains) { + $search = "$printer$domain" + $result = Resolve-DnsName $search -ErrorAction SilentlyContinue + if($null -ne $result){ break } + } + } #CMDB Data - Write-Progress -Activity "Getting printer details for $name" -Status 'Getting CMDB data' -PercentComplete 20 -ParentId 1 + Write-Progress -Activity "Getting printer details for $printer" -Status 'Getting CMDB data' -PercentComplete 20 -ParentId 1 # $cmdbRecord = Get-LANDeskCMDBItem -Name $printer $cmdbRecord = Search-ISMBO -BO cis -filter "Name eq '$Printer'" -RawFilter @@ -409,47 +418,7 @@ function Get-PrinterIP { [parameter(ValueFromPipeline)] [string]$printer ) - $hit = $false - $domains = @('.gsrmc.int.samhealth.net','.avery.int.samhealth.net','.sagh.int.samhealth.net','.snlh.int.samhealth.net','.slch.int.samhealth.net','.spch.int.samhealth.net') - $result = Resolve-DnsName $printer -ErrorAction SilentlyContinue - if($result -eq $null){ - $hit = $false - foreach ($domain in $domains) { - $search = "$printer$domain" - $result = Resolve-DnsName $search -ErrorAction SilentlyContinue - if($result -ne $null){ - $hit = $true - $name = $result.Name - $ip = $result.IPAddress - - - } - - } - - if($result -eq $null){ - if($hit -eq $false){ - $ip = $null - $name = $null - } - } - } - else{ - $name = $result.Name - $ip = $result.IPAddress - - } - - $props = [ordered]@{Hostname=$printer - IP=$ip - Path=$name - } - $obj = New-Object -TypeName PSObject -Property $props - - return $obj - - } function Start-SHSPrinterWeb {