Mina två favorit ConfigMgr -körskript

Jag gör mycket arbete i ConfigMgr -inventeringen och rapporteringsutrymmet, och jag hjälper också många människor att felsöka problem som rör lager och rapportering. I det här blogginlägget delar jag med dig två av mina favorit ConfigMgr -körskript som är mycket användbara när det gäller felsökning av den här typen av problem. Den ena hjälper när du behöver tvinga fram en fullständig maskinvaruinventering och den andra är bra när du behöver tvinga fram en ny skanning av programuppdateringar.

Tidigare denna månad, kanske du kommer ihåg, publicerade jag ett blogginlägg som heter Run Scripts är den bästa funktionen i SCCM. Inom den visade jag dig hur jag använde funktionen Kör skript i ConfigMgr/SCCM för att stänga av en brandvägg på distans. I dagens inlägg visar jag dig än en gång varför jag tycker att Run Scripts -funktionen är den bästa!

ConfigMgr Run Scripts - The Best

Tvinga fram ett fullständigt lager - ConfigMgr Run Script

Det händer hela tiden. ConfigMgr visar föråldrade detaljer för maskinvaruinventering. Varför? Den största boven är inte att korrekt konfigurera ConfigMgr för att utnyttja maskinvarulager genom att öka den maximala MIF-storleken till 50 MB. Det finns en enkel lösning för det här problemet och jag täcker det i mitt inlägg, Hur man ökar den maximala filstorleken för hanteringsinformationsfiler (MIF). När du har ökat den maximala filstorleken måste du dock tvinga en fullständig maskinvaruinventering på vissa (eller kanske alla) av dina ConfigMgr -klienter. Tyvärr är detta en bieffekt av att inte öka MIF-storleken när ConfigMgr först byggdes.

Innan funktionen Kör skript kan du tvinga fram en fullständig inventering genom att skapa ett paket och ett program, distribuera det till en samling och sedan slutligen lägga till datorn (erna) i samlingen. Detta fungerade, men det tog tid. När du felsöker ett problem vill du inte vänta, vad som kan verka för evigt, på att saker ska hända.

Jag gillar inte att vänta, så jag skapade en lösning för paketet och programlösningen. För en tid sedan visade jag dig, i ett annat av mina blogginlägg, hur du återställer alla lagerartiklar med en schemalagd uppgift, Hur man undviker att ta emot förfrågningar om synkronisering av lager för virtuella ögonblicksbilder. Nyligen uppdaterade jag de listade WMIC -kommandona i det blogginlägget till PowerShell och lade till det nya skriptet i min ConfigMgr -konsol. Nedan finns manuset.

$comp = ”localhost”

$HardwareInventoryID = '{00000000-0000-0000-0000-000000000001}'

$SoftwareInventoryID = '{00000000-0000-0000-0000-000000000002}'

$HeartbeatID = '{00000000-0000-0000-0000-0000-000000000003}'

$FileCollectionInventoryID = '{00000000-0000-0000-0000-000000000010}'

Get -WmiObject -ComputerName $comp -Namespace 'Root \ CCM \ INVAGT' -Class 'InventoryActionStatus' -Filter "InventoryActionID = '$HardwareInventoryID'" | Ta bort-WmiObject

Get -WmiObject -ComputerName $comp -Namespace 'Root \ CCM \ INVAGT' -Class 'InventoryActionStatus' -Filter "InventoryActionID = '$SoftwareInventoryID'" | Ta bort-WmiObject

Get -WmiObject -ComputerName $comp -Namespace 'Root \ CCM \ INVAGT' -Class 'InventoryActionStatus' -Filter "InventoryActionID = '$HeartbeatID'" | Ta bort-WmiObject

Get -WmiObject -ComputerName $comp -Namespace 'Root \ CCM \ INVAGT' -Class 'InventoryActionStatus' -Filter "InventoryActionID = '$FileCollectionInventoryID'" | Ta bort-WmiObject

Start -Sleep -s 5

Anropa -WmiMethod -datornamn $comp -Namespace root \ CCM -Class SMS_Client -Name TriggerSchedule -ArgumentList $HeartbeatID

Invoke -WmiMethod -datornamn $comp -Namespace root \ CCM -Class SMS_Client -Name TriggerSchedule -ArgumentList $HardwareInventoryID

Invoke -WmiMethod -datornamn $comp -Namespace root \ CCM -Class SMS_Client -Name TriggerSchedule -ArgumentList $SoftwareInventoryID

Invoke -WmiMethod -datornamn $comp -Namespace root \ CCM -Class SMS_Client -Name TriggerSchedule -ArgumentList $FileCollectionInventoryID

Förresten, längre fram i det här inlägget berättar jag för dig var du snabbt kan få det här skriptet och programvaruuppdateringen omskanna skript. Jag visar dig också var du kan hitta stegen för hur du lägger till dem i din ConfigMgr -konsol via funktionen Kör skript.

Vad gör detta ConfigMgr Run Script?

Först rensar det ut alla tidigare inventarier, så det tvingar ConfigMgr -klienten att utföra en fullständig inventering. Därefter utlöser det var och en av lagerartiklarna från snabbast till långsammast. Detta innebär att Heartbeat Discovery (aka Discovery Data Collection -cykeln på ConfigMgr -klientdatorn) och maskinvaruinventering återlämnas inom några minuter, och de återstående programvarulageret tar timmar, om inte dagar, att återvända.

Tvinga programvaruuppdateringar till att genomsöka ConfigMgr-körskript

Programuppdaterings (SU) skanningsresultat är tillståndsbaserade meddelanden och ibland försvinner dessa tillståndsbaserade meddelanden. Om meddelandet försvinner, när ConfigMgr -klienten söker efter SU vid nästa schemalagda tidpunkt, returnerar klienten INTE det aktuella tillståndet - någonsin! Det enda undantaget är om staten ändras (vilket nästan aldrig händer) annars skickas ingenting någonsin igen.

Du kanske aldrig behöver tvinga fram en ny skanning av programvaruuppdateringar om du inte behöver gräva djupt när du bestämmer varför SU-statusen som visas i ConfigMgr inte stämmer överens med vad som är listat på själva datorn. Den goda nyheten är att de flesta felsökningssteg (ibland utan att du ens vet det) löser detta problem. Om de inte gör det är det här skriptet för dig!

Här är min lösning på det här problemet:

$SCCMUpdatesStore = New -Object -ComObject Microsoft.CCM.UpdatesStore

$SCCMUpdatesStore.RefreshServerComplianceState ()

Vad gör detta ConfigMgr Run Script?

Detta mycket korta PowerShell-skript uppdaterar de tillståndsbaserade meddelandena för alla programuppdateringar och returnerar resultaten till ConfigMgr.

Hur lägger du till dessa två skript i ConfigMgr -konsolen?

Först, här är en Zip -fil med båda skripten nedan.

ConfigMgr Kör skript

För det andra omfattas steg-för-steg-instruktionerna för hur du använder funktionen Kör skript i mitt inlägg, Run Scripts är den bästa funktionen i SCCM.

ConfigMgr Kör skript - Kör skript

Enligt min mening är dessa två skript två av de viktigaste som du måste ha i ditt ConfigMgr -skriptbibliotek. Tro mig när jag säger att de hjälper mycket med felsökning! Om du har några frågor om dessa PowerShell -skript, konfigurera som ConfigMgr -körskript, var god kontakta mig @GarthMJ.

Se hur Right Click Tools förändrar hur system hanteras.

Öka produktiviteten direkt med vår begränsade, kostnadsfria Community Edition.

Kom igång med Right Click Tools idag:

Dela detta:

Support

  • Detta fält används för valideringsändamål och ska lämnas oförändrat.

Kontakt

  • Detta fält används för valideringsändamål och ska lämnas oförändrat.
sv_SESwedish