Cloud-Drucker anhand URL via PowerShell löschen?

Lauch86

Lt. Junior Grade
Registriert
Mai 2013
Beiträge
358
Hallo zusammen,

ich habe über eine Intune Policy einen Cloud Drucker auf einigen Clients hinzugefügt. Diesen möchte ich jetzt wieder löschen. Die Policy gibt leider nur ein 'Install' und kein 'Uninstall' vor. Außerdem ist der Drucker Cloud-seitig auch nicht mehr existent.

Da Windows die Drucker nicht wie normale Windows-Drucker behandelt reicht das normale Entfernen aus der Druckerverwaltung nicht. Der Drucker verschwindet zwar aus der Übersicht wird aber immernoch als Installiert markiert. Erst das Löschen des dazugehörigen IPP Port löscht ihn dann komplett.

Meine Frage ist nun wie kann ich den Drucker samt IPP Port anhand seiner Drucker URL per PowerShell löschen? Die ID des IPP Ports ist leider nicht konsistent. Die URL aber schon. Bspw. sowas wie https://print.print.microsoft.com/printers/XXX

Die klassischen Get-Printer cmdlets ziehen wie gesagt nicht bei Cloud Druckern. Stehe da gerade etwas auf dem Schlauch.

Danke vorab.
 
Code:
$PrinterName = "NAME-DES-CLOUDDRUCKERS"

$printer = Get-Printer -Name $PrinterName -ErrorAction SilentlyContinue
if ($printer) {
    Remove-Printer -Name $PrinterName -ErrorAction SilentlyContinue
}

Du hast aber schon bereits die Benutzer/Geräte aus der Assinment-Gruppe genommen?
 
Wenn das manuelle Löschen des IPP-Ports reicht, solltest du doch mit Remove-PrinterPort weiterkommen.
 
tRITON schrieb:
Code:
$PrinterName = "NAME-DES-CLOUDDRUCKERS"

$printer = Get-Printer -Name $PrinterName -ErrorAction SilentlyContinue
if ($printer) {
    Remove-Printer -Name $PrinterName -ErrorAction SilentlyContinue
}

Du hast aber schon bereits die Benutzer/Geräte aus der Assinment-Gruppe genommen?
Funktioniert leider bei mir nicht. Die Security Gruppe gibt es nicht mehr. Hatte alles zurück gebaut.

kartoffelpü schrieb:
Wenn das manuelle Löschen des IPP-Ports reicht, solltest du doch mit Remove-PrinterPort weiterkommen.
Wie gesagt ist die IPP Port ID bei jedem Client eine andere. Das funktioniert bei einem Einzelgerät, ich brauche aber ein Script, welches ich auf 100+ Geräte abfeuern kann.
 
Code:
$PrinterName = "NAME-DES-CLOUDDRUCKERS"


$printer = Get-Printer -Name $PrinterName -ErrorAction SilentlyContinue


if ($null -ne $printer) {

    Write-Output "Printer found: $PrinterName"

    exit 1

}

else {

    Write-Output "Printer not found: $PrinterName"

    exit 0

}

als DETECTION Script in Intune laden.

dann dieses als REMEDIATION Script laden
Code:
$PrinterName = "NAME-DES-CLOUDDRUCKERS"

$printer = Get-Printer -Name $PrinterName -ErrorAction SilentlyContinue

if ($null -ne $printer) {
    Remove-Printer -Name $PrinterName -ErrorAction SilentlyContinue
    Write-Output "Printer removed: $PrinterName"
}
else {
    Write-Output "Printer already absent: $PrinterName"
}

für beides eine neues Paket in Intune unter Devices -> Script and remediations für die Gruppe hinterlegen in der Du den Drucker ausgerollt hast.

Du sagst ja der Name ist überall identisch, falls NICHT, muss du den vorher inventarisieren.

Dann kannst du in etwa so was machen
Code:
$PrinterNames = @(
    "NAME-DES-CLOUDDRUCKERS",
    "Mein alter Cloud-Drucker",
    "Cloud Printer Vertrieb",
    "Universal Print - Vertrieb"
)

foreach ($name in $PrinterNames) {
    $printer = Get-Printer -Name $name -ErrorAction SilentlyContinue
    if ($null -ne $printer) {
        Remove-Printer -Name $name -ErrorAction SilentlyContinue
        Write-Output "Removed: $name"
    }
}

analog dann das Detection Script anpassen.
 
Zuletzt bearbeitet:
Danke, ich schau es mir an.

Edit:
Habe es jetzt implementiert und mal meinen PC als Testobjekt hinzugefügt. Bin gespannt.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: tRITON
Lauch86 schrieb:
Wie gesagt ist die IPP Port ID bei jedem Client eine andere.
Dann halt erst den Portnamen per Powershell herausfinden, Drucker löschen und danach den Port.

Ohne Funktionsprüfung, ich habe das Remediationscript erweitert:
Code:
$PrinterName = "NAME-DES-CLOUDDRUCKERS"

$printer = Get-Printer -Name $PrinterName -ErrorAction SilentlyContinue

if ($null -ne $printer) {
    Remove-Printer -Name $PrinterName -ErrorAction SilentlyContinue
    Write-Output "Printer removed: $PrinterName"
    Remove-PrinterPort $printer.PortName
    Write-Output "Port removed: $printer.PortName"
}
else {
    Write-Output "Printer already absent: $PrinterName"
}
 
  • Gefällt mir
Reaktionen: tRITON
Drucker ist noch vorhanden.

2026-04-15 07_43_56-Greenshot.png

Ich denke nicht, dass hier Get-Printer funktioniert. Über das cmdlet werden bei mir lokal nur die nicht-Cloud Drucker ausgegeben.
 
Lauch86 schrieb:
Dann nicht nur denken, sondern einfach mal manuell in einer Powershell testen :)

Nur um sicherzugehen, dass wir vom selben reden: Mit Cloud-Drucker meinst du einen Drucker, welcher über Universal Print angesteuert wird?
Die zeigt Get-Printer auch an:
1776236085960.png

Wobei mir dabei einfällt: Diese Drucker sind nur für den Benutzer sichtbar (oder gibt's ne Möglichkeit, die auch Geräteweit einzurichten?), also müsste die Remediation auch im Benutzerkontext laufen.
 
Oh mein Gott, bin ich dumm. Hatte die PS als Admin gestartet, da habe ich natürlich keine eigenen Drucker. Im User-Kontext sehe ich auch die Cloud Drucker. Aber funktioniert das auch über die Remediation? Diese wird ja als SYSTEM ausgeführt.

Hab die beiden Scripte mal abgeändert. Er schaut jetzt nach Port und der Printer URL. Schauen, ob das funktioniert.
 
Ja, kann man in den Einstellungen ändern:
1776254726455.png
 
Zurück
Oben