Sovellusten poistaminen PowerShellin avulla

Viime vuonna kerroin sinulle, kuinka tarvitsin komentosarjan, joka havaitsisi kaikki sovelluksen versiot tietokoneelta ja poistaisi kunkin version yksi kerrallaan. Lyhyesti sanottuna, en löytänyt sellaista, joten päädyin laittamaan sen yhteen! Alkuperäisen viestin julkaisemisen jälkeen sain useita kysymyksiä siitä, miten pakottaa delta tai täydellinen SCCM -laitteistovarasto sovellusten asennuksen poistamisen jälkeen. Lopulta päätin päivittää alkuperäisen käsikirjoitukseni ja viestin käytöstä PowerShell sovellusten poistamiseen.

Uusi skripti sisältää delta -inventaarin, ja nyt on mahdollisuus pakottaa koko SCCM -laitteistovarasto. Jos aiemmin poistettu sovellus oli EXE -tiedosto (eikä MSI -tiedosto), PowerShell skripti epäonnistuu, koska kovakoodi sallii vain MSI -tiedostojen poistamisen. Korjasin tämän ongelman, joten nyt sekä EXE- että MSI -tiedostot on poistettu.

Sovellusten asennuksen poistaminen - Juhli

Ennen kuin pääsen siihen, minun pitäisi kuitenkin kertoa teille, että ystäväni Jason Sandys oli jo a VBScript tehdä juuri sitä mitä etsin viime vuonna. Välillämme on pitkä sisäinen vitsi VBScript vs PowerShellmutta en kyllästytä sinua sen kanssa täällä. Kun alun perin etsin käsikirjoituksia, sen piti olla PowerShell tai ei mitään. Siihen aikaan syy oli yksinkertainen. Minun piti oppia lisää PowerShell, joten en ole koskaan etsinyt a VBScript enkä nähnyt Jasonin viestiä. Hauska osa on, että Jason lopulta kertoi minulle käsikirjoituksestaan ja näytti minulle yhden erittäin hienon ominaisuuden. Voit pakottaa laitteiston varastosyklin tapahtumaan jälkikäteen! Sinun täytyy tarkistaa Jasonin käsikirjoitus blogisivusto.

Kuulen joidenkin teistä sanovan: "Mikä käsikirjoitus on parempi?" Vastaus riippuu mielestäni ymmärryksestäsi VBScript ja PowerShell. Tämän lisäksi valitse se, josta pidät eniten, ja käytä sitä!

Tausta

Olin tuotetestauksessa Seuraa tietojen raportointia (MIR), joka on nyt osa Enhansoft -raportointi. Tämä testaus sisälsi useita päivityksiä laboratorioni asiakkaille. Oma laboratorio on sekoitus sekä x86- että x64 -käyttöjärjestelmiä (OS). Kun olin ottanut käyttöön kaikki nämä MIR-versiot, jäin etsimään ratkaisua, jonka avulla voin puhdistaa asiakkaan asennukset nopeasti. Lopulta halusin vain MIR: n lopullisen version asennettavan jokaiseen asiakkaaseen.

Sovellusten asennuksen poistaminen - Testaa

Valitettavasti ei ollut mitään keinoa tietää, mitkä MIR -versiot on otettu käyttöön mitkä testitietokoneet. On myös mahdollista, että useisiin testitietokoneisiin voi olla asennettu useampi kuin yksi MIR -versio. Tarvitsin helpon tavan tunnistaa automaattisesti kaikki MIR -versiot tietokoneelta ja poistaa kaikki, yksi kerrallaan, ilman, että joudun poistamaan sen manuaalisesti jokaisesta tietokoneesta. Tästä lähtien olen iloinen voidessani sanoa, että MIR: n asetukset on päivitetty, joten vain yksi versio siitä voidaan asentaa tietokoneeseen kerrallaan.

Takaisin viime vuoden ongelmaan. Luulisi, että voisin löytää PowerShell ratkaisu. Oletko koskaan ottanut käyttöön Adobe Reader? Silloin tiedät, että niistä voi olla useita eri versioita Adobe Reader lueteltu sisällä Lisää/poista ohjelma (ARP) tietokoneessa. Miksei vanhoja versioita voi poistaa helposti?

Löysin paljon PowerShell skriptejä, joiden avulla voin poistaa vain yhden sovelluksen kerrallaan. Niitä oli jopa muutama PowerShell skriptejä, jotka kyselevät Win32_Product ja poista sitten vähintään kaksi sovellusta. Jos kuitenkin luet Greg Ramseyn blogikirjoituksen Win32_Product Is Evil tietäisit, että tämä on huono idea. Sinun ei pitäisi koskaan tehdä niin! Siksi en voinut koskaan käyttää Win32_Product -ohjelmaa komentosarjassani sen aiheuttamien ongelmien vuoksi.

Sovellusten poistaminen PowerShellin avulla

Korkealla tasolla tätä päivitin PowerShell skripti tekee:
-Havaitsee, onko komentosarja käynnissä x84-, x64- tai WoW32 -tilassa.
-Lukee sekä x86- että x64 -rekisteriavaimet.
-Paikantaa kaikki sovelluksen versiot.
-Selaa ARP -merkintöjen luetteloa ja kerää:
-MSI -nimi/GUID/Poista merkkijono.
-Havaitsee, onko sovellus EXE tai MSI, ja poistaa sovelluksen sen mukaisesti.
-Kirjaa jokaisen vaiheen lokitiedostoon.
-Suorittaa delta -laitteistovaraston tai, jos lippu on asetettu, täydellisen SCCM -laitteistoluettelon.

Alla on, miltä lopullinen käsikirjoitus näyttää, mutta voit myös ladata se osoitteesta Enhansoft verkkosivusto.

Poista sovellukset - Script

Pakota täydellinen SCCM -laitteistovarasto

Oletuksena delta -laitteistovarasto alkaa skriptin viimeisinä vaiheina. Sinun ei tarvitse tehdä muuta. Haluan kuitenkin pakottaa täydellisen luettelon, kun poistan sovelluksia. Jos olet kuin minä, sinun tarvitsee vain muuttaa $fullinventory = $false arvo $true. Tämä pakottaa täydellisen SCCM -laitteistovaraston.

Uninstall Application Scriptin käyttöönotto SCCM: n avulla

Aloita ensin käsikirjoituksen muokkaamisesta. Korvaa sovelluksen nimi sillä, jonka haluat poistaa. Latausversiossa sen asetuksena on tällä hetkellä: Monitor* Information* Reporting* Muista, että* on jokerimerkki, jota käytetään ARP -merkintöjen etsimiseen.

Toiseksi päätä, haluatko pakottaa koko SCCM -laitteistovaraston, joten aseta lippu vastaavasti.

Kolmanneksi, luo paketti ja ohjelma komentorivillesi. Sen pitäisi näyttää samalta kuin seuraava:
powershell.exe -ExecutionPolicy bypass -file Uninstallv10.ps1

Neljänneksi ja lopuksi, ota paketti ja ohjelma käyttöön kuten mikä tahansa muu ohjelma.

Uninstall Application Script -ohjelman käyttäminen

Näet alla olevasta kuvakaappauksesta, että minulla oli useita MIR -kopioita asennettu tähän testitietokoneeseen viime vuonna.

Poista sovellukset - MIR -sovellukset

Asetan ohjelmani hiljaa käyttöön taustalla. Ei mitään nähtävää loppukäyttäjän näkökulmasta!

Jos haluat varmistaa, että PowerShell skripti on käynnissä, katso Tehtävienhallinta. Sinun on oltava nopea! Skriptin suorittaminen kestää vain muutaman sekunnin - muutaman minuutin riippuen poistettavan ARP: n määrästä. Sivun lisäksi voit myös nähdä, että komentosarja suoritettiin Execmgr.log koetietokoneellasi.

Poista sovellukset - Poistetut MIR -sovellukset

Yllä olevasta kuvakaappauksesta näet, että muutaman minuutin kuluttua kaikki Seuraa tietojen raportointia ARP -merkinnät poistettiin.

Muista, että laitteiston varastosykli (delta tai täysi) alkaa pian kaikkien sovellusten asennuksen poistamisen jälkeen. Se kestää vain muutaman sekunnin (~ 60 sekuntia).

Käynnistä tietokoneet uudelleen

Joissakin tapauksissa saatat haluta käynnistää tietokoneet uudelleen sen jälkeen, kun laitteistoluettelo on lähetetty SCCM: lle. Omalla kohdalla lisäsin a Nukkua komento PowerShell komentosarjaa 75 sekunnin ajan ennen uudelleenkäynnistystä. Jos laitteistovarastosi kestää kauemmin, säädä aikaa vastaavasti.

Tässä ovat käyttämäni komennot:
Sivu 75
Käynnistä tietokone uudelleen -voima

Jos sinulla on kysyttävää käytöstä PowerShell Jos haluat poistaa sovelluksia, ota yhteyttä minuun @GarthMJ.

Katso, miten Right Click Tools muuttaa järjestelmien hallintatapaa.

Paranna tuottavuutta välittömästi rajoitetulla, ilmaisella Community Editionilla.

Aloita Right Click Tools: n käyttö tänään:

Jaa tämä:

Tuki

  • Kenttä on validointitarkoituksiin ja tulee jättää koskemattomaksi.

Ota yhteyttä

  • Kenttä on validointitarkoituksiin ja tulee jättää koskemattomaksi.
fiFinnish