none
Anwendungen deinstallieren RRS feed

  • Frage

  • Hallo Technet,

    was ist der einfachste / simpelste Weg, Anwendungen auf Clients zu deinstallieren.

    Aktuell habe ich es so.

    Jede Anwendung wird der passenden Gerätesammlung (z.B. Gerätesammlung Mozilla) zugewiesen. Nun soll irgendwann Mozilla deinstalliert werden.

    Erstelle ich also eine weiter Gerätesammlung "Deinstallation Mozilla" oder soll ich eine einzige Sammlung erstellen, in der alle Anwendungen auf Deinstallation bereitgestellt werden, oder , oder oder? Wie wird das idR gehandhabt?

    Alle Gerätesammlungen sind mit der AD verknüpft - sprich, die Mitglieder der Sammlung werden aus der AD Gruppe herausgelesen.

    Gruß,

    excQ

    Dienstag, 12. Januar 2016 16:06

Antworten

  • select *  from  SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceId = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "%Mozilla Firefox%" AND SMS_R_System.Name not in (select SMS_R_System.Name from SMS_R_System where SMS_R_System.SystemGroupName = "Domain\\Mozilla")

    Als AppName habe ich den genommen, der mir in der direkten Übersicht als Name angezeigt wird. Oder muss ich dort den Namen auswählen, welcher unter Eigenschaften der Anwendung als Name angezeigt wird?

    Dort brauchst Du den Namen der Applikation wie er in Add/Remove Programs auftaucht. Ich würde zusätzlich aber noch die Version mit hinzunehmen.

    Es ist ok, dass der "Code" (=die WQL Query) abgeändert wird und * entsprechend ersetzt wird.

    "..."Planus x64" AND SMS_R_System.Name not in (select SMS_R_System.Name from SMS_R_System where SMS_R_System.SystemGroupName = "Domain\\Mozilla")" passt übrigens nicht ganz zusammen.


    Torsten Meringer | http://www.mssccmfaq.de

    Mittwoch, 13. Januar 2016 20:06
    Beantworter

Alle Antworten

  • Auf jeden Fall muss das Install-Deployment entfernt werden. Danach gibt es viele Möglichkeiten, je nachdem was am besten in den Betriebsablauf passt.

    Torsten Meringer | http://www.mssccmfaq.de

    Dienstag, 12. Januar 2016 20:14
    Beantworter
  • Na der Betriebsverlauf ist folgender. Für jede Anwendung gibt es in der AD eine Sicherheitsgruppe in der die Clients hinterlegt sind. In SCCM wird eine Gerätesammlung erstellt, welche entsprechend die AD-Sicherheitsgruppe ausliest. Dieser Sammlung wird die Software zugewiesen. Nun soll vll PC XY diese Software nicht mehr erhalten, also lösche ich ihn aus der AD-Sicherheitsgruppe. Nun die Frage. Sollte ich in SCCM dann eine einzige Sammlung erstellen, der ich alle Anwendungen mit der Deinstallation zuweise? Dann habe ich dauerhaft die Anwendung auf Installieren und Deinstallieren - und die Installation gewinnt auf dem Client und es kommt zu keiner deinstallation. Sobald ich ja den Client aus der AD Gruppe entferne, ist er ja auch theoretisch nicht mehr in der DeInstallations-Sammlung gelistet. Ach, irgendwie verhasple ich mich da.
    Dienstag, 12. Januar 2016 21:21
  • Erstelle doch beispielsweise eine Sammlung: Anwendung xyz vorhanden (Add/Remove Programs), aber Rechner nicht mehr in AD-Gruppe für xyz. Darauf dann die Deinstallation ankündigen.

    Torsten Meringer | http://www.mssccmfaq.de

    Mittwoch, 13. Januar 2016 07:18
    Beantworter
  • Das hab ich jetzt leider nicht verstanden mit dem Add/Remove Programs.

    Ich erstelle eine Sammlung "Mozilla", welcher ich die Installation und Deinstallation von "Mozilla" zuweise? - das geht ja nicht.

    Mittwoch, 13. Januar 2016 07:25
  • Install-Sammlung: alle Rechner in der AD-Gruppe 'Mozilla'
    Uninstall-Sammlung: alle Rechner, die Mozilla per Hardware-Inventur geliefert haben, aber nicht (mehr) in der AD-Gruppe 'Mozilla' sind.

    Torsten Meringer | http://www.mssccmfaq.de

    Mittwoch, 13. Januar 2016 08:13
    Beantworter
  • Wie stelle ich das mit der Uninstall-Sammlung an? Definiere ich da eine Mitgliedschaftsregel?
    Mittwoch, 13. Januar 2016 08:17
  • Ja, query-based.

    Torsten Meringer | http://www.mssccmfaq.de

    Mittwoch, 13. Januar 2016 10:12
    Beantworter
  • Wie würde das ganze dann jeweils für beide Gruppen aussehen?

    Install ist ja klar z.B. Abfrageregel. So ist es aktuell:

    select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System where SMS_R_System.SystemGroupName = "Doamin\Mozilla"

    Nun erstelle ich eine oder merhere Sammlungen für die Deinstallation?! Mach ich in der dann ebenfall eine direkte oder Abfrageregel? Und dort dann wie entsprechend?

    Mittwoch, 13. Januar 2016 11:14
  • Nun erstelle ich eine oder merhere Sammlungen für die Deinstallation?! Mach ich in der dann ebenfall eine direkte oder Abfrageregel? Und dort dann wie entsprechend?

    Ebenfalls über ein Query.

    Sowas in der Art, (ungetestet!)

    select *  from  SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceId = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "%Mozilla Firefox%" AND SMS_R_System.Name not in (select SMS_R_System.Name from SMS_R_System where SMS_R_System.SystemGroupName = "Domain\\Mozilla")


    Simon Dettling | msitproblog.com | @SimonDettling

    Mittwoch, 13. Januar 2016 13:10
  • Ich glaube dieser Beitrag gibt meine Situation ganz gut wieder:

    https://social.technet.microsoft.com/Forums/systemcenter/en-US/88002b1a-ff00-44be-bf0c-bdc6e3bdc19d/remove-sccm-deployed-applications?forum=configmgrswdist

    RCCMG schreibt:

    Adding computers to collection depending on AD Security group :

    select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System where SMS_R_System.SystemGroupName = "<DOMAIN>\\<Security Group>"

    Removing software from computers because they arent in the AD Security group for it :

    select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_R_System.NetbiosName not in (Select SMS_R_System.NetBiosName from SMS_R_System where SMS_R_System.SystemGroupName = "<Domain>\\<Security Group>") and SMS_R_System.Client = 1 and SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName = "<NAME OF APPLICATION>"

    Just some notes..

    Change <DOMAIN> with your Domain Name

    Change <Security Group> to your AD Security Group

    Change <Name of Application> to EXACTLY what it is named in Add Remove Programs.

    Heißt, beide Sammlungen fragen die AD ab. Wenn in der Install-Sammlung der Client aus der AD entfernt wird, greift Sammlung B und die Anwendung wird vom Client deinstalliert?

    Ich habe die Install-Sammlung der ich die Anwendung auf "installieren" zur verfügung stelle.

    Und dann eine De-Install Sammlung, in der ich die zweite Abfrage definiere, richtig?

    Kann ich auch eine einzige De-Install Sammlung für alle Anwendunge erstellen und entsprechend für jede einzelne Sammlung den Code entprechend anpassen?

    Mittwoch, 13. Januar 2016 13:53
  • Ich habe die Install-Sammlung der ich die Anwendung auf "installieren" zur verfügung stelle.

    Und dann eine De-Install Sammlung, in der ich die zweite Abfrage definiere, richtig?

    Ja

    Kann ich auch eine einzige De-Install Sammlung für alle Anwendunge erstellen und entsprechend für jede einzelne Sammlung den Code entprechend anpassen?

    Nein, ein Query für ein bestimmtes Produkt (z.B Mozilla Firefox) pro Collection / Sammlung. Die Collection enthält dann genau die Devices, für welche der Uninstall Aufruf zutrifft.


    Simon Dettling | msitproblog.com | @SimonDettling

    Mittwoch, 13. Januar 2016 14:57
  • Die DeInstall-Sammlung erhält ja dann keine sichtbaren Mitglieder - als Abfrageregel habe ich ja die AD angegeben. Dort habe ich den Client gelöscht, defacto wird in der DeInstall-Sammlung niemals ein Client angezeigt, richtig?

    Mittwoch, 13. Januar 2016 15:10
  • Dort habe ich den Client gelöscht

    Hast du den Client aus dem AD komplett gelöscht oder nur aus der Security Gruppe entfernt?

    Wenn du ihn "nur" aus der Gruppe entfernt, ist das Query das ich oben gepostet habe genau dazu da, dass er in die Deinstall-Collection aufgenommen wird ;-)


    Simon Dettling | msitproblog.com | @SimonDettling


    Mittwoch, 13. Januar 2016 15:27
  • Natürlich nur aus der Sicherheitsgruppe :)

    Ich habe nun 2 Collections, eine Install, in der die AD-Sicherheitsgruppe hinterlegt ist und eine DeInstall, mit der von dir geschriebenen Abfrageregel.

    select *  from  SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceId = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "%Mozilla Firefox%" AND SMS_R_System.Name not in (select SMS_R_System.Name from SMS_R_System where SMS_R_System.SystemGroupName = "Domain\\Mozilla")

    Als AppName habe ich den genommen, der mir in der direkten Übersicht als Name angezeigt wird. Oder muss ich dort den Namen auswählen, welcher unter Eigenschaften der Anwendung als Name angezeigt wird?

    Kann man den Intervall irgendwie beschleunigen, dass der Vorgang startet? Den Test-Client habe ich bereits aus der AD gelöscht und in SCCM wird dieser entsprechend nicht mehr in der Install-Collection angezeigt.

    In der DeInstall-Gruppe wird ja niemals ein Client angezeigt werden.

    Mittwoch, 13. Januar 2016 15:47
  • Ich geben deinen Code ein, aber nachdem ich mir die Einstellung noch einmal anschaue, macht er automatisch folgendes daraus. Auch wenn ich die Collection einmal komplett neu anlege.

    select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceId = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "Planus x64" AND SMS_R_System.Name not in (select SMS_R_System.Name from SMS_R_System where SMS_R_System.SystemGroupName = "Domain\\Mozilla")

    Dein Code wird einfach nicht übernommen.

    select * from SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceId = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "%Mozilla Firefox%" AND SMS_R_System.Name not in (select SMS_R_System.Name from SMS_R_System where SMS_R_System.SystemGroupName = "Domain\\Mozilla

    Mittwoch, 13. Januar 2016 17:03
  • select *  from  SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceId = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "%Mozilla Firefox%" AND SMS_R_System.Name not in (select SMS_R_System.Name from SMS_R_System where SMS_R_System.SystemGroupName = "Domain\\Mozilla")

    Als AppName habe ich den genommen, der mir in der direkten Übersicht als Name angezeigt wird. Oder muss ich dort den Namen auswählen, welcher unter Eigenschaften der Anwendung als Name angezeigt wird?

    Dort brauchst Du den Namen der Applikation wie er in Add/Remove Programs auftaucht. Ich würde zusätzlich aber noch die Version mit hinzunehmen.

    Es ist ok, dass der "Code" (=die WQL Query) abgeändert wird und * entsprechend ersetzt wird.

    "..."Planus x64" AND SMS_R_System.Name not in (select SMS_R_System.Name from SMS_R_System where SMS_R_System.SystemGroupName = "Domain\\Mozilla")" passt übrigens nicht ganz zusammen.


    Torsten Meringer | http://www.mssccmfaq.de

    Mittwoch, 13. Januar 2016 20:06
    Beantworter