Kör ni Adobe Reader, Flash Player och Java på era datorer? Grattis, då gör ni likadant som precis varenda företag i världen då detta kanske är de absolut vanligaste applikationerna, som inte kommer från Microsoft, som installeras som standard på en typisk företagsdator (och privata datorer också för den delen). Kanske kör ni också en uppsjö andra väldigt vanliga gratisapplikationer som finns där ute? Någon webbläsare som inte börjar på ”Internet” och slutar på ”Explorer” kanske, såsom Chrome, Firefox eller Opera? Eller Skype? CutePDF? Hör ni kanske till ett av de där snälla företagen som har paketerat Spotify (och upptäckt hur jäkla omständigt det är)?
Säkerligen har ni ett tiotal, eller fler av den här typen av vanliga programvaror. Och som alla andra IT-tekniker runt om i världen så spenderar ni en avsevärd mängd tid att paketera dessa applikationer för installation, för att sen göra om jobbet igen nästa vecka då det har släppts en uppdatering. Och plötsligt känns ”gratis” inte så billigt längre, då din tid, eller den där dyra paketeringskonsultens tid, är allt annat än gratis…
Till poängen. Det finns ett antal verktyg ute i världen som försöker underlätta det här jobbet, och installera och uppdatera programvaror på ett automatiserat sätt, så att vi kan göra bättre saker med vår tid. Jag har tittat lite på ett mycket enkelt och billigt sådant alternativ som heter Ninite Pro (ninite.com/pro).
Sammanfattning
Min bedömning av Ninite är att det har följande styrkor och fördelar:
- Billigt, snudd på gratis. Priset kommer aldrig vara en avgörande fråga om huruvida man vill använda det här verktyget eller inte.
- Oerhört enkelt att använda och att lära sig. Man är igång i princip direkt.
- Inga installationer behövs, det är bara en exe-fil som körs. Kan därför användas tillsammans med vilket annat verktyg som helst (SCCM, MDT, osv).
- Stabilt och väl fungerande enligt vad jag sett än så länge. Inga konstigheter.
Finns det då några nackdelar? Tja, inte många ärligt talat vad jag har hittat än så länge. Men det blir naturligtvis en aning begränsat då det är Ninite som ”paketerar” installationerna åt oss. Så hade man själv velat installera en applikation på ett annorlunda sätt, säg exempelvis installera applikationen i en icke standardkatalog, så går inte det. Vad gäller övrig anpassning för applikationen så går nog det mesta att lösa genom att i efterhand skicka ut en registerinställning eller konfigfil eller vad det nu kan vara. Men installationspaketet som kommer från Ninite är vad det är och det är bara att gilla läget.
Överhuvudtaget är det ett oerhört simpelt verktyg med ytterst få möjligheter till några avancerade inställningar eller anpassningar, men det är liksom hela poängen med Ninite. Keep it simple. Passar inte detta för era behov så ska ni använda något annat. Punkt. Men chansen är stor att det faktiskt passar alldeles utmärkt för säkert 95% av er där ute.
Sen ringde 90-talet och ville ha tillbaka designen på Ninites webbsida, och för övrigt det lilla grafiska gränssnitt som finns i verktyget också… Att säga att det ser amatörmässigt ut är en underdrift. Men det kan jag bortse från så länge det funkar och gör mitt liv lättare.
Rent generellt skulle jag säga att det här först och främst är ett utmärkt verktyg för små och mellanstora företag, som inte har anställda eller konsulter som bara sitter och paketerar på löpande band. Men egentligen kan nog även ganska stora företag ha nytta av detta.
Hur funkar det?
Så hur funkar då Ninite. Kort och gott stöder man en hyfsat lång lista på många av de vanligaste gratisapplikationerna. Ninite kan helt automatiskt ladda ned och installera var och en av dessa applikationer, och i priset prenumererar man även på alla uppdateringar. Så när en uppdatering kommer till applikationen så kan alltså Ninite automatiskt installera denna, utan att vi behöver göra någonting. Låter det bra? Här är en kort sammanfattning på funktionaliteten vi får:
- Både ett grafiskt gränssnitt och kommandoverktyg.
- Kan installera, uppdatera och avinstallera alla applikationer som stöds både lokalt på datorn och över nätverket på andra datorer. Kan även övervaka status på installerade applikationer. Ofantligt enkelt, bara att markera en eller flera datorer, markera en eller flera applikationer i listan och sen välja installation/uppdatering/avinstallation/övervaka och trycka på en knapp. Klart. Alternativt skriva ett motsvarande mycket enkelt kommando.
- Väljer automatiskt samma språk, om det finns tillgängligt, som operativsystemet för varje applikation. Väljer även rätt plattform (x86 eller x64).
- Kan stänga av automatiska uppdateringsfunktioner för många applikationer, såsom Java och Adobe Reader och liknande, så att användarna inte störs av sådana notifieringar.
- Kan lagra alla nedladdade paket på en mapp på nätverket så att nedladdning endast behöver göras en gång för varje applikation. Alla installations görs sedan från den mappen.
- Möjlighet att frysa en viss version av en applikation om man inte automatiskt vill ha den senaste.
- Möjlighet att lägga till egna applikationer som inte redan stöds av Ninite. Du måste då själv ladda ned applikationen och skriva ditt egna installationsscript.
- Lite annat smått och gott som möjlighet att ta bort genvägar till applikationer, stöd för proxy, loggning, osv.
Det grafiska gränssnittet. Markera datorer och applikationer och tryck på en knapp. Kan inte bli enklare.
Låt oss titta på några scenarion hur vi skulle kunna använda detta i verkligheten.
I en Task Sequence
Så ni använder MDT och/eller SCCM för att installera datorer? Grattis, då gör ni rätt. Förmodligen lägger ni då också med ett antal vanliga applikationer i task sequencen, antingen den som bygger referensimagen eller den som installerar datorerna, eller både och.
Då Ninite bara består av en liten .exe-fil så är det enda du behöver göra att lägga in den i ett Package i SCCM, eller som en Application i MDT eller helt enkelt kopiera in filen direkt i t.ex. Scripts-katalogen i ditt Deploymentshare. Oavsett vilket alternativ du väljer så är det bara ett enda kommando som behöver köras och därmed bara ett enkelt steg som du behöver lägga till i din task sequence:
Niniteinstaller.exe /select Flash ”Flash (IE)” Java ”Java x64” ”Reader 11” /silent /cachepath \\MyServer\Ninite /disableautoupdate
Ovanstående exempel kommer ladda den senaste versionen av Flash Player (både ActiveX-komponenten för IE och plugin för övriga webbläsare), Java (32- och 64-bit) och Adobe Reader 11. Paketen kommer lagras på \\MyServer\Ninite, om inte senaste versionen redan finns där då görs ingen ny nedladdning, och sen installeras helt automatiskt från den sökvägen.
Applikationerna jag valde här var alltså bara ett exempel, vilka du vill ha väljer du själv och skriver in direkt efter ”/select” på kommandoraden. Varje gång det här kommandot körs kommer alltså den senaste versionen av dessa applikationer installeras. Du behöver inte göra någonting alls, ingen ny paketering, ingen uppdatering av några paket, ingen förändring i task sequencen. Ganska trevligt va?
I en Group Policy
Om ni inte kör SCCM eller liknande verktyg för att hantera applikationer så är Group Policies utmärkt för mindre och mellanstora företag. Här kan vi tänka oss två scenarion. Antingen finns applikationerna redan installerade på datorerna, genom att ni t.ex. kör MDT och installerar allt i task sequencen, enligt exemplet ovan. I så fall så vill vi bara hålla dem uppdaterade i framtiden. Eller så vill ni skicka ut en applikation som inte redan finns på datorerna. Eller en kombination av båda.
Hur vi gör det här med group policies är helt enkelt att vi skapar en GPO som innehåller ett Startup-script. Där i lägger vi Niniteinstaller.exe och en simpel liten bat-fil som innehåller kommandoraden och som körs av GPOn.
Om jag nu vill installera nya applikationer den här vägen så kan jag använda exakt samma kommandorad som i task sequence-exemplet ovan, och bara specificera de applikationer jag vill ha i kommandoraden. Här kanske vi dock också vill ha loggningsmöjligheter för att kunna se om installationerna lyckats som de ska. Lägg då till en sökväg efter /silent-flaggan så att kommandoraden ser ut t.ex. så här:
Niniteinstaller.exe /select Flash ”Flash (IE)” Java ”Java x64” ”Reader 11” /silent \\MyServer\NiniteLogs\%ComputerName%.log /cachepath \\MyServer\Ninite /disableautoupdate
Ska olika datorer ha olika applikationer? Bara VD’n och den snygga tjejen i receptionen som ska få Spotify? Inga problem, gör flera GPO’er och i varje script specificerar du just bara den eller de appar som hör till den GPOn, sen filtrerar du bara förslagsvis på AD-grupper.
Oavsett om du har installerat några applikationer med en GPO på det här sättet, eller om samtliga har installerats redan i imagen eller task sequencen, så vill du sannolikt skapa en egen GPO som bara ser till att uppdatera allting till senaste versionen. Då behöver du bara ange följande kommandorad i ditt startup-script:
Niniteinstaller.exe /updateonly /silent /cachepath \\MyServer\Ninite
Vóila! Varje gång datorn startas kommer nu automatiskt den senaste versionen av alla applikationer som Ninite hanterar att uppdateras till senaste version.
Då det alltid är den första datorn som kör GPOn som kommer ladda ned installationspaketet från Internet och lagra det på den nätverkssökväg du anger så måste du alltså se till att ”Domain Computers” har skrivrättigheter på denna mapp.
Tillsammans med SCCM
Så ni använder SCCM för all hantering av datorer och applikationer? Då är det bara att gratulera till ett bra beslut. Paketering av applikationerna blir man ju dock tyvärr ändå inte av med, men Ninite går utmärkt att köra tillsammans med SCCM. I SCCM kan vi som bekant antingen använda oss av gamla klassiska Packages and Programs, eller den nya Application-modellen.
Packages and Programs
Skapa ett Package som innehåller Ninites .exe-fil och lägg sen till så många Programs som du behöver. Du kommer vilja ha minst ett, nämligen det som håller dina datorer uppdaterade. Så skapa ett Program som heter exempelvis ”Update Core Applications” med följande kommandorad:
Niniteinstaller.exe /updateonly /silent /cachepath \\MyServer\Ninite
Gör sedan en Deployment av detta Package/Program till alla dina datorer och gör ett återkommande schema som körs förslagsvis en gång om dagen.
Lägg sedan till Programs för var och en av de applikationer som du vill köra. Så för till exempel Java, kör följande kommando:
Niniteinstaller.exe /select Java ”Java x64” /silent /cachepath \\MyServer\Ninite /disableautoupdate
Eller kanske ett Program som heter bara ”Core Applications” som innehåller alla dina standardapplikationer som samtliga datorer ska ha, och sen ytterligare Programs för övriga applikationer?
Dessa Programs är sen bara att skicka ut med Deployments precis som vanligt eller lägga med i din task sequence.
Applications
Ninite lämpar sig inte så jättebra för att köras som en Application, då vi faktiskt inte har ett installationspaket att arbeta med utan bara en .exe-fil som gör allt jobbet åt oss. Så t.ex. Detection Rules blir ett litet aber då versionen av applikationen vi installerar ständigt kommer förändras (det är ju liksom poängen).
Men vi kanske ändå vill ha en Application för vissa programvaror, för att t.ex. kunna publicera dem snyggt i vår Application Catalog, så då måste vi hantera detta.
Jag roade mig med att publicera Spotify, som är en underbar programvara men jobbig liten j*vel att paketera.
Jag använde följande inställningar:
Installation Program: Niniteinstaller.exe /select Spotify /silent /cachepath \\MyServer\Ninite
Uninstall program: Niniteinstaller.exe /select Spotify /uninstall /silent
Detection method: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\Spotify\DisplayName
Installation behaviour: Install for User
Det hela tog bara någon minut vilket inte direkt är konsultvänligt men bra mycket roligare än att spendera ett par timmar på att skapa ett eget MSI-paket.
Spotify publicerad i Application Catalog
På det här viset kan alltså enkelt publicera en massa trevliga gratisprogramvaror till våra användare som de kan välja att installera från portalen. Och varje gång någon väljer att installera en applikation kan vi vara säkra på att det är den senaste versionen som installeras, utan att vi behöver lyfta ett finger. Och genom att kombinera detta med att köra ett återkommande paket dagligen med /updateonly-flaggan så blir också alla befintliga installationer hela tiden uppdaterade.
Slutsats
Jag gillar vad jag ser. Jag har tidigare testat gratisversionen av Ninite som är tillgänglig för privatpersoner, men har inte förrän nyligen när jag träffade en kund som körde Pro-versionen i sitt företag tänkt tanken på att använda det professionellt. Det är ingen tvekan om att det här kan spara ganska mycket tid och att man därmed får igen det löjligt låga inköpspriset många gånger om. Jag kommer fortsätta testa och utvärdera Ninite och förmodligen rekommendera det till en hel del av mina kunder.