PowerShell & Task Scheduler: Schemaläggning av inventering

Tillbaka 2014 publicerade jag ett blogginlägg som heter, Hur man undviker att ta emot förfrågningar om synkronisering av lager för virtuella ögonblicksbilder. Det jag älskade med det inlägget var hur uppgiftsschemaläggare användes för att schemalägga ConfigMgr-inventering och därmed undvika ConfigMgr-synkroniseringsfel. Vad jag ogillade med det där blogginlägget 2014 var hur varje TriggerSchedule -uppgift behövde skapas för hand. Fram till 2020 vände jag mig till PowerShell för att lösa detta problem och automatisera processen. Varför? Jag testade Power BI Report Server med Enhansoft -rapportering och en del av denna testning innebar att skapa nya Windows 10 -servrar tillsammans med flera nya virtuella datorer. Jag ville inte skapa varje uppgift manuellt varje gång, så PowerShell gör allt för mig och nu delar jag med dig hur jag gjorde det, tillsammans med manuset, i det här inlägget.

Bakgrund

I mitt ursprungliga inlägg länkade jag till några blogginlägg om hur man tvingar lager till en samling och dator med hjälp av Recast mjukvara för hantering av ändpunkter verktyg. Det här är bra, även idag, MEN det hjälper inte med virtuella datorer där en ögonblicksbild tas.

Här på Enhansoft, Hyper-V används för att göra ögonblicksbilder av de virtuella datorerna i vårt testlabb. Vi gör detta om vi snabbt behöver återställa en virtuell dator till ett känt tillstånd. När detta händer kan VM-inventeringen bli synkroniserad med ConfigMgr. I teorin tvingar ConfigMgr ur synkroniseringsdatorer att synkronisera och uppdatera sig själva, men den här uppgiften kan ta ett tag. Den fördröjningen är inte till hjälp för att se till att ditt lager alltid är uppdaterat i ConfigMgr.

Vår lösning på detta problem, varje gång en virtuell dator startas om (omstartas), är att tvinga ConfigMgr -klienten att utföra följande åtgärder i denna ordning:

  1. Utför en hjärtslagsupptäckt (dataupptäcktscykel).
  2. Ta bort den sista hela hårdvaran för att tvinga nästa maskinvarulagercykel att utföra en fullständig inventering.
  3. Radera programvaruinventeringsdata för att tvinga nästa programvarulagercykel att utföra en fullständig inventering.
  4. Utför en hårdvaruinventering.
  5. Utför en programvaruinventering.

Eftersom jag inte vill utföra den här uppgiften manuellt varje gång, har jag skriptat alla åtgärder som anges ovan med WMIC. Sedan ställer jag in en schemalagd uppgift för att köra varje gång en virtuell dator startar om med en fördröjning på 5 minuter. Fördröjningen på 5 minuter gör att ConfigMgr-klienten kan starta innan den tvingas utföra inventeringsåtgärden.

I det ursprungliga blogginlägget skapade jag en schemalagd uppgift för alla åtgärder. När jag gick till att automatisera denna process med PowerShell, var det mer meningsfullt att skapa en schemalagd uppgift för varje åtgärdselement som anges ovan. Förutom dessa åtgärder ville jag också tvinga fram en fullständig inventering klockan 9 varje dag på varje virtuell dator. För att hålla ordning och reda lade jag alla schemalagda uppgifter i en mapp.

Schema ConfigMgr -inventering - Aktivitetsschemaläggare

Schema ConfigMgr -inventering

Jag lägger inte ut hela manuset här eftersom du kan ladda ner hela skriptet från Enhansoft: s webbplats och granska det sedan. Istället visar jag dig de tre viktigaste raderna nedan.

$action = New-ScheduledTaskAction -Execute 'WMIC.exe' -Argument ' /namespace: \\ root \ ccm path sms_client CALL TriggerSchedule "{00000000-0000-0000-0000-000000000001}" /NOINTERACTIVE'
$trigger = New -ScheduledTaskTrigger -Daily -At 9:01:01 am
Register -ScheduledTask -Action $action -Trigger $trigger -TaskName $FolderName \ ”HW Inv” -User “System”

Den första raden skapar den schemalagda uppgiften. Den andra raden skapar den schemalagda uppgiftsutlösaren; i detta exempel förekommer det klockan 9:01:01. Den tredje raden sammanfogar både den första och andra raden och kör den schemalagda uppgiften med hjälp av systemkontot.

Håll utkik efter ordinpackning av varje rad. Om du klipper och klistrar in detta i ditt eget manus, se upp för stiliserade (lockiga) citat. Citattecken bör alltid vara de raka, enda.

Om du tittar på skärmdumpen ovan kan du se att när PowerShell -skriptet har körts skapas alla planerade uppgifter och placeras snyggt i mappen.

Djupfryst

Att använda detta PowerShell -skript för att schemalägga ConfigMgr -inventering är också viktigt om du har några datorer som använder Faronics Deep Freeze. Jag skulle dock göra några justeringar av manuset. Ta först bort "ta bort" schemalagda uppgifter för hårdvara och programvara vid systemstart, men behåll de schemalagda uppgifterna för att utlösa inventeringar vid systemstart. Jag skulle också justera tidsramen klockan 9 på morgonen så att den inträffade några minuter efter att din frysningscykel inträffade.

Sammanfattning

I slutet av dagen sparade dessa schemalagda ConfigMgr inventeringsuppgifter och detta PowerShell -skript mitt team mycket tid och ansträngning. Om du har ett testlabb rekommenderar jag att du tittar på att använda denna process också eftersom det säkerställer att ditt lager uppdateras regelbundet. Om du har några frågor om hur du schemalägger ConfigMgr -lager, är du välkommen att 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:

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.

Genom att skicka in detta formulär förstår du att Recast Software kan behandla dina uppgifter enligt beskrivningen i Recast Software Integritetspolicy.

sv_SESwedish