From f02ec5d11d5149f6b2b4b6fe0b2a4d1e5f2d3bb7 Mon Sep 17 00:00:00 2001 From: Zachary Gorman Date: Fri, 13 Dec 2024 14:45:17 -0800 Subject: [PATCH] Fixed PrinterPurge --- Get-PC/Get-PC.psd1 | 2 +- Get-PC/Private/PrinterPurge.ps1 | 8 ++++++-- Get-PC/Private/SHSUser.ps1 | 2 +- Get-PC/patchnotes.txt | 4 +++- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Get-PC/Get-PC.psd1 b/Get-PC/Get-PC.psd1 index 944845c..2f112c2 100644 --- a/Get-PC/Get-PC.psd1 +++ b/Get-PC/Get-PC.psd1 @@ -12,7 +12,7 @@ RootModule = 'Get-PC.psm1' # Version number of this module. -ModuleVersion = '0.4.12' +ModuleVersion = '0.4.13' # Supported PSEditions # CompatiblePSEditions = @() diff --git a/Get-PC/Private/PrinterPurge.ps1 b/Get-PC/Private/PrinterPurge.ps1 index eba5a19..e562aff 100644 --- a/Get-PC/Private/PrinterPurge.ps1 +++ b/Get-PC/Private/PrinterPurge.ps1 @@ -9,6 +9,7 @@ function Invoke-PrinterPurge ($printer) { $res = Read-Host "$($comps.Length) computers found, remove $printer from all of them? (y/N)" if (-not ($res -match "^[yY]")) { return } + $jobs = @() for ($i = 0; $i -lt $comps.Length; $i += 1) { $comp = $comps[$i] Write-Progress -Activity "Dispatching Remove-Printer Jobs for $printer" -PercentComplete (100*$i / $comps.Length) -CurrentOperation "$comp $i/$($comps.Length)" -ParentId 1 @@ -20,9 +21,12 @@ function Invoke-PrinterPurge ($printer) { continue } - Remove-Printer $printer -ComputerName $comp -AsJob + $jobs += Invoke-Command -ScriptBlock { Remove-Printer ${using:printer} } -ComputerName $comp -SessionOption (New-PSSessionOption -NoMachineProfile -OpenTimeout 60) -AsJob + # Remove-Printer $printer -ComputerName $comp -AsJob - Write-Output "$printer | $comp Job Sent" + # Write-Output "$printer | $comp Job Sent" } + Write-Progress -Activity "Dispatching Remove-Printer Jobs for $printer" -PercentComplete (100*$i / $comps.Length) -CurrentOperation "Awaiting results..." -ParentId 1 + $jobs | Wait-Job | Select-Object Location,State Write-Progress -Activity "Dispatching Remove-Printer Jobs for $printer" -Completed } \ No newline at end of file diff --git a/Get-PC/Private/SHSUser.ps1 b/Get-PC/Private/SHSUser.ps1 index 9d9877e..422caf4 100644 --- a/Get-PC/Private/SHSUser.ps1 +++ b/Get-PC/Private/SHSUser.ps1 @@ -52,7 +52,7 @@ Manager=$manager Phone=$UserInfo.telephoneNumber Email=$UserInfo.EmailAddress - Computers=$computerList + Computers=$computerSCCM # User $computerList for more readable, $computerSCCM for more scriptable LastLogon=$UserInfo.LastLogonDate } diff --git a/Get-PC/patchnotes.txt b/Get-PC/patchnotes.txt index c2e4607..24312c2 100644 --- a/Get-PC/patchnotes.txt +++ b/Get-PC/patchnotes.txt @@ -1,7 +1,9 @@ -Patch: +Patch: 2024-12-13 -Add Powershell input pipeline support, unoptimized -Add CMDB fields now hold Spark warnings rather than printing to console in SCCM and normal queries -Add ports for DELL P2417H in Devices query +-Fix shsuser Computers field now uses raw data for scriptability rather than readability +-Fix PrinterPurge less finnicky, no longer dependent on printer spooler being accessible Patch: 2024-10-24 -Fix Enable flag also removes workstation from Disabled Computers group