App-V on työasemasovellusten virtuaalisointi työkalu ja jakelujärjestelmä. Käytännössä tämä tarkoittaa sovelluksen irrottamista omaksi ”kuplakseen” jolloin sovellus on erotettu erilleen käyttöjärjestelmästä ja muista työasemassa ajettavista sovelluksista. Teknisesti tämä tarkoittaa sitä että sovellusta ei tarvitse perinteisessä mielessä asentaa työasemaan. Vaan ohjelman "asentaminen" on verrattavissa word dokumentin avaamiseen verkosta. Tosin järjestelmä toteuttaa tämän kaiken loppukäyttäjän puolesta. Jolloin oikein toteutettuna loppukäyttäjä ei erota käyttääkö hän ”perinteistä” sovellusta vai virtuaalista sovellusta.
Kun sovellus on omassa ”kuplassaan” tuo se mahdollisuuksia myös ohjelmistojakeluun. Koska käyttöjärjestelmän merkitys vähenee voidaan sovellukset kohdistaa käyttäjiin työasemien sijasta.
Managment serverin asennus
Ennen varsinaisen palvelimen asennusta tarvitset SQL palvelimen. Palvelimeksi käy express versio mutta se ei ole virallisesti tuettu. Esimerkiksi tietokannan siivous toiminto ei toimi expressissä. Oikeassa SQL serverissäkin pitää sql server agent service olla päällä jotta siivous toimisi. APP-Veen asennus ajattelee lähtökohtaisesti että palvelun asennukseen käytettävällä käyttäjällä on ylläpitäjäoikeudet SQL palvelimeen. Jos syystä tai toisesta et voi/saa näitä oikeuksia käyttää, voi tietokannan luoda valmiiksi asennusta varten. Tämän ohjeen mukaisen tietokannan luonnin jälkeen et tarvitse ylläpito oikeuksia SQL palvelimeen.
Luo AD:hen kaksi security grouppia (global). Toinen ryhmä on app-v:een ylläpitoryhmä (esim appv admins). Ja toinen app-v:een oletus ohjelmistojakeluryhmä (esim app-v users).
Managment server vaatii IIS roolin. IISin oletus featureiden lisäksi asenna seuraavat osat: ASP.NET, Windows Authentication ja management tools kaikkine lisäosineen (windows 2008 server). Asennus onnistuu samalla tavalla myös 2008 R2 serveriin, mutta managementin asennus paketti pitää olla tasoa SP1.
Aloita serverin asennus.



Määrittele sql palvelin. Kuvassa valitaan svr2 kone sql serveriksi.

Luo uusi tietokanta. Jos olet pystyttämässä uutta palvelinta olemassa olevaan ympäristöön valitse käytössä oleva tietokanta.
Huom! Uutta tietokantaa luotaessa pitää asennukseen käytettävällä käyttäjällä olla ylläpitäjänoikeudet SQL palvelimeen.

Jos haluat salata liikenteen käytä sertifikaattia.

Määrittele liikennöinti portti, valitse oletus.

Valitse ylläpitoryhmä.

Valitse käyttäjäryhmä.

Määrittele Content kansion sijainti (oletus: C:\Program Files\Microsoft System Center App Virt Management Server\App Virt Management Server\content) Täältä jaellaan virtuaalisoidut ohjelmistot.
HUOM! Asennuksen jälkeen jaa content kansio verkkoon (read oikeudet riittävät).

Suorita asennus loppuun ja uudelleen käynnistä palvelin.

Avaa application virtualization managment console. Valitse connect to application virtualization system.

Määrittele managment palvelin johon haluat ottaa yhteyttä. Jotta yhteydenotto onnistuu pitää käytössä oleva käyttäjätunnuksen kuulua app-v:een admin ryhmään.

Kun yhteys on avattu valitse system options.
Määrittele content kansion UNC polku.
Miksi näin? Kun app-v:eelle paketoidaan ohjelma määritellään sille oletus content unc polku. Tämä toiminto osaa korvata paketin määrityksen. Näin ollen samoja app-v:ee pakettaja voi käyttää monessa eri ympäristössä. Ilman ylimääristä pakettien muokkausta.

Palvelimen palomuuriin pitää kahdelle ohjelmalle tehdä aukot. Ne ovat sghwdsptr.exe ja sghwsvr.exe (C:\Program Files\Microsoft System Center App Virt Management Server\App Virt Management Server\bin).
Managment palvelimen päivitys SP1 versioon
Yllä asennettiin 4.5 versio. Joten asennetaan toiminnassa olevaan järjestelmään SP1 päivitys. SP1 version uusista ominaisuuksista voi lukea vaikka täältä.
Aloita päivitys käynnistämällä uuden version asennuspaketti.

Päivitys estää clienttien yhteydenotot palveluun. Lisäksi aktiivisena olevat sessiot saattavat katketa.
Seuraavaksi ilmoitus käytettävästä sql palvelimesta ja tietokannasta (varmista että tiedot ovat oikeat). Päivitys muuttaa tietokannan asetuksia jos sille on tarvetta. Tästä voidaan päätellä että päivityksen suorittavalla tunnuksella pitää olla riittävät oikeudet tietokantaan (esim app-v ylläpitoryhmän jäsen).


Jos ennen asennuksen aloittamista olisi manuaalisesti pysäyttänyt app-veen servicen olisi mahdollisesti tältä uudelleen käynnistykseltä vältytty.

Valmista, ei muuta kuin uudelleen käynnistystä.

4.5 version clientit ymmärtävät SP1 tason palvelinta, lisäksi myös vanhat paketit toimivat. Hirveätä päivitys painetta ei heti tule muille osa-alueille.
Päivitys SP2 versioon.
Päivitys on saatavilla windows updatesta ja ladattavissa erillisenä pakettina. Tietoja uudistuksista löytyy täältä.
Tätä kirjoittaessa ainakin omissa testeissä windows updaten kautta asennus pysähtyy virheeseen 80070643. Erikseen ladattava paketti asentuu kunhan sammuttaa manuaalisesti ensin The Application Virtualization Management Server palvelun. Päivityksen asennusksen jälkeen palvelin pitää uudelleen käynnistää.
Vikasietoisempi ympäristö
App-v ympäristö on hyvin riippuvainen palvelimesta. Joten sen vikasietoiseksi tekeminen ei ole pöllömpi idea.
Ensimmäinen toimenpide voisi olla toisen palvelimen perustaminen. Toisen palvelimen pystyttäminen seurailee samaa kaavaa kuin ensimmäisen. SQL kantaa valittaessa valitse olemassa oleva tietokanta. Tällöin kaikki asetukset tulevat voimaan myös uudessa palvelimessa ja jatkossa ei ole väliä kumpaan palvelimeen muutokset tekee koska kumpikin palvelin lukee samaa tietokantaa (SQL kanta kannattaa siis todellakin varmuuskopioida).
Kummallakin palvelimella on kuitenkin oma content hakemisto (tai voit tietysti käyttää erillistä levypalvelua jota kumpikin palvelin käyttää content hakemistonaan). Content kansioiden päivittämiseen keskenään voi käyttää esimerkiksi DFS Tiedosto replikointia. Kunhan system optionsissa on määritelty contentin sijainti ei paketteja tarvitse erikseen muokkailla.
Nyt clientit pitää määritellä käyttämään jompaa kumpaa palvelinta. Eli jos palvelin hajoaa pitää niiden clienttien asetuksia muokata jotka ovat yhteydessä hajonneeseen palvelimeen. Ja minkäänlaista automaattista kuorman tasausta ei ole.
Näihin ongelmiin ratkaisuna voi käyttää load balanceria, esimerkiksi microsoftin NLB. NLB:ssä clientit ottavat yhteyttä yhteen osoitteeseen ja NLB jakaa liikenteen tasaisesti toiminnassa olevien palvelinten kesken. Pitää myös muistaa että contentin sijainti yms pitää esittää clienteille NLB:n osoitteeseen (esimerkiksi osd tiedostossa pitää olla määritelty NLB:n osoite palvelimen sijaan). Lisäksi Vistaa vanhemmat käyttöjärjestelmät eivät ymmärrä UNC poluissa NLB:n DNS nimeä. Näissä tilanteissa on siis polku esitettävä IP-osoitteella.
Seuraavaksi ongelmaksi muodostuu hitaan wan yhteyden takana olevat palvelun käyttäjät. Tällöin kannattaa etätoimipisteeseen perustaa oma management palvelin. Joka lisätään saman NLB:n alle ja contentin replikointi hoidetaan DFS replikoinnilla. Lisäksi replikointi ryhmä julkaistaan domain based DFS namespacena. Namespace osaa tarjoilla palvelimen AD:n sitejen mukaan, jolloin client ottaa yhteyttä oman sitensä palvelimen content jakoon. Tässä tilanteessa client ottaa yhteyttä NLB osoitteeseen ja managementissä OSD:n ja iconien polku on namespacella julkaistu content. Luonnollisesti tämä vaatii että AD:eeseen on luotu Site rakenne tietoliikenne rajoituksien mukaan.
Sequencer
Seqenceriä käytetään virtuaaliohjelmien luomiseen. Työasema johon sequencer asennetaan tulisi olla mahdollisimman puhdas (pelkkä käyttöjärjestelmä ilman yhtään mitään ohjelmia asennettuna). Pakettia luotaessa järjestelmä olettaa mallikoneelta löytyvien tiedostojen yms löytyvän myös ympäristöstä johon se levitetään. Jos mallikoneessa on jokin dll tiedosto jota ohjelma tarvitsee ei sitä sisällytetä virtuaalipakettiin jolloin tämä dll pitää löytyä jokaiselta työasemalta jossa ohjelmaa käytetään. Jos taas dll tulee koneelle paketointi vaiheessa otetaan se mukaan virtuaalipakettiin ja näin ollen kohde koneilla sitä ei tarvitse olla.
Lisäksi mallikoneessa pitää olla toinen levyosio asema kirjaimella Q (asema kirjain voi olla mikä vain, Q on oletus valinta). Työasemissa virtuaaliohjelmat ajetaan Q asemalta jolloin pakettia luodessa pitää ne asentaa Q asemalle.
Virtuaalikone on oiva valinta sequenceriksi.
Paketin luonti
Ennen paketoinnin aloittamista kopioi mallikoneelle tarvittavat asennustiedostot ja mahdollisesti pakatut asennus paketit kannattaa purkaa.
Luo Q asemalle kansio johon ohjelma asennetaan. Koska virtuaalisia ohjelmia voi olla kymmeniä tai satoja kannattaa nimetä asennus kansio säännöllä 8+3 (kahdeksa.001) tällöin vältetään mahdollisimman pitkään ettei vahingossa kahdelle ohjelmalle tule samaa kansio nimeä.
Käynnistä application virtualization sequencer. Valitse tools -> sequencing wizard.
Anna paketille kuvaava nimi.
Paina begin monitorin

Määrittele kansio johon ohjelma tullaan asentamaan.

Odota hetki että sequencer häviää ruudulta. Aloita ohjelman asennus normaalisti. MUISTA määritellä asennus kansioksi Q asemalla oleva kansio. Jos asennusohjelma haluaa käynnistää koneen uudestaan tee se (kone ei oikeasti buuttaa tällöin mutta sequencer osaa käsitellä sen silloin oikein). Lopuksi määrittele ohjelmalle haluamasi asetukset. Kun kaikki on kunnossa paina stop monitoring.
Jos haluat lisätä pakettiin tiedostoja.
Muokkaa tarvittaessa tiedosto assosioita ja pikakuvakkeita.
Seuraavssa vaiheessa käynnistä ohjelma painamalla launch. Tämän perusteella virtuaalipaketti jaetaan kahteen osaan. Ensimmäinen osa sisältää tiedostot jotka tarvitaan ohjelman käynnistymiseen. Ja loput jälkimmäiseen osaan. Tällöin kun ohjelma avataan työasemassa streamaa se ensimmäisen osan ja käynnistää ohjelman, loppu osan streamautuessa taustalla ja ohjelmaa voi jo käyttää.
Lopulta paketointi on valmis,
Määrittele deployment välilehdellä protocol, hostname ja path sekä käyttöjärjestelmät jolle ohjelmaa tarjoillaan. Jos haluat luoda SCCM:llä levitettävän MSI paketin laita täppä kohtaan generate microsoft windows installer packege.
Lopuksi tallenna ja paketti on valmis levitettäväksi.
Paketin päivittäminen
Kopioi käytössä oleva app-v paketti sequencer koneelle. Avaa sequencer ja valitse open for upgrade.
Valitse päivitettävän paketin sprj tiedosto.
Määritä mihin paketti puretaan. Valitse Q asema
Tee halutut muutokset ja paina save.
Kun tallennus on valmis kopioi tidostot content jakoon (ja korvaa vanhat tiedostot).
Paketin julkaisu
Kopioi paketti content kansioon.
Muista että kansiorakenne pitää olla paketoidessa määritellyn path arvon mukainen. Jos et muista polkua voit tarkistaa sen avaamalla notepadilla osd tiedoston ja katsomalla codebase rivin href arvon.
Managment consolessa valitse application ja import applications.
Valitse paketin sprj tiedosto.
Tarkista että asetukset ovat oikein.
Määrittele miten ohjelman pikakuvakkeet näkyvät käyttäjälle.
Määrittele tiedosto assosisaatiot.
Määrittele ryhmä jolle ohjelma julkaistaan.
Tee viimeiset varmistukset ja paina finish.
Päivityksen julkaisu
Packages haarassa valitse päivitettävä paketti ja valitse add version.
valitse content jaossa oleva päivitetty paketin sft tiedosto (oletuksena perässä _2 jne).
Määrittele relatiivinen polku pakettiin "kansio/paketti.sft" (Relatiivinen polku merkitsee rakennetta content kansion jälkeen).
Huom! SP2 päivityksen jälkeen osaa järjestelmä paketin näyttämisen perusteella ehdottaa tätä, lisäksi muoto "kansio\paketti.sft" on toimiva.
Paina Finish ja päivitys on tarjolla. Seuraavan kerran kun käyttäjä käynnistää päivitetyn ohjelman päivittyy se automaattisesti (Vain muuttuneet osat ladataan työasemalle).
Provider policies
Provider policiesin avulla voit ohjailla clienttien käyttäytymistä, kohdentamalla ne AD:n security grouppeihin. Oletuksena App-veen asennus luo default provider nimisen policyn, joka kohdistuu ryhmään joka asennuksen yhteydessä valittiin provider ryhmäksi. Huom! Jos käyttäjään ei kohdistu provider policyä hän ei saa mitään app-veen palveluja.
Tarkastellaan default provider policya. Mene provider policies ja avaa default providerin properties.
General välilehdellä hallitaan kuinka käyttäjän ohjelmistoja päivitetään. Oletuksena tieto päivittyy jokaisen sisäänkirjautumisen yhteydessä. Lisäksi voit määritellä aikavälejä päivän, tunnin ja minuutin tarkkuudella.

Group assigmentissä voit lisätä ja poistaa ryhmiä joihin sääntö kohdistuu.
Provider pipelinessä käsitellään kuinka käyttäjän pitää autentikoitua jotta hän saa resurssit käyttöön. Lisäksi login keräämisen voi poistaa. Sekä mahdollisia lisenssi sääntöjä voi ohittaa tai pakottaa.
Ohjelmistolisenssit
Kaikkiin ohjelmiin ei ole saatavilla lisenssien hallinnointi työkalua ja app-v ympäristössä se on lähes pakollinen kun perinteisillä tavoilla ei voida hallita ohjelman käyttöä.
Lisenssejä on kolme erillaista unlimited (tarkoitettu ohjelman käytön seurantaan), concurrent (rajoittaa yhtäaikaisten käyttäjien määrää) ja named (käyttäjäkohtainen).
Tehdään yksi concurrent lisenssi. Valitse application licenses ja new concurrent license.
Nimeä lisenssi ja määrittele koska käyttäjille ilmoitetaan lisenssin loppumisesta.
Määrittele yhtäaikaisten käyttäjien määrä ja lisenssin päättymisajankohta.
Ota lisenssi käyttöön ohjelman propertiesin general välilehdellä.
Jotta lisenssit olisivat voimassa pitää ne aktivoida provider policyssä. Suositus on että default policyssä ei tätä tehtäisi vaan sitä varten luodaan erillinen policy. Aloita luomalla new provider policy.
Nimeä policy kuvaavasti.
Määrittele keihin vaikuttaa.
Lisää täppä kohtaan licensing ja valitse enforce license policies. Jotta policy tulee voimaan pitää managment service käynnistää uudestaan.
Ainakun haluat jossakin ohjelmassa käyttää lisenssejä pitää sen .OSD tiedostoon lisätä allaoleva teksti kuvan mukaiseen paikkaan.
?Customer=policynnimi
App-V clientin asennus työasemaan
Jotta virtuaalisia ohjelmia voi käyttää työasemilla pitää niihin asentaa app-v:ee client.
Client vaatii toimiakseen Microsoft Visual C++ 2005 SP1 Redistributable Package ja microsoft application error reporting ohjelmat. Voit asentaa keskitetysti clientin msi pakettina (tällöin visual c++ ja error reporting pitää levittää erikseen). Toisena tapana on asentaa vaikka startup scriptissä setup.exe silenttinä (tällöin asentuvat tarpeen mukaan myös visual c++ ja error reporting).
Clienttien asetuksia pitää pystyä myös hallitsemaan keskitetysti. Microsoft on tehnyt tätä varten ADM templaten, mutta siitä puuttuu oleellisia asetuksia. Login consultant on tehnyt parannellun version app-v:een ADM templatesta, templaten voi ladata ilmaiseksi login consultantin sivuilta http://www.loginconsultants.com. Käytä tarpeen mukaan XP:n ja Vistan templateja ja lisää ne computer configurationin administrative templates haaraan. Clientin toimivuuden kannalta oleellisin asetus on server settings policy jolla määritellään miten ja mihin managment palvelimeen client on yhteydessä.
App-V palvelimen käyttö useammassa eri AD domainissa
Kun App-V palvelua halutaan käyttää useammassa domainissa pitää seuraavat asiat olla kunnossa:
1. Domain jossa managment palvelu on ja domain jossa palvelua halutaan käyttää. Näiden välillä pitää olla kaksi suuntaiset luottosuhteet.
2. Lisää käytettäviin provider policyihin käyttöönotettavasta domainista ryhmä jolle haluat antaa oikeuden käyttää palvelua. Toista sama toimenpide ohjelmien suhteen joita haluat tarjota.
SQL tietokanta ja APP-V
Tässä hieman huomioitavia asioita SQL:n suhteen, lisäksi hallintaa ja nippeli tietoa.
1. Jotta APP-V managment palvelimen asennus onnistuu. Pitää asennukseen käytettävällä tunnuksella olla ylläpitäjän oikeudet SQL palvelimeen. Kanta voidaan myös luoda valmiiksi jolloin managementin asennuksessa ei tarvita ylläpito oikeuksia SQL palvelimeen (ohje).
2. Kun uusi tietokanta syntyy asennuksen yhteydessä saa administrator groupiksi määritelty ryhmä user oikeudet tietokantaan.
3. APP-V osaa siivota automaattisesti määritysten mukaan vanhoja tietoja tietokannasta. SQL palvelimessa pitää kuitenkin olla SQL server agent päällä.
4. Tietokannan kokoa ja käyttöhistorian siivousväliä voi hallinnoida APP-V Managment consolista. Asetuksiin pääsee system options -> database.
sft-server.log
App-V management palvelin tekee lokia toimistaan. Esimerkiksi vian selvityksessä tämä on hyvin hyödyllinen. Loki sijaitsee palvelimella C:\Program Files\Microsoft System Center App Virt Management Server\App Virt Management Server\logs\sft-server.log
Oletus asetuksilla lokiin ei kirjoiteta kaikkea. Vikatilanteissa saatetaan tarvita hyvinkin tarkkaa tietoa. Lokitettavan tiedon tasoa voi säätää muokkaamalla rekisteriä.
Avaa regedit ja mene HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SoftGrid\4.5\Server
Muokkaa SOFTGRID_LOG_LEVEL avaimen arvo haluamaksesi (oletusarvo 3).

Numero arvot merkitsevät seuraavaa:
0: Transactions
1: Fatal Errors
2: Errors
3: Warnings
4: Informational
5: Debug (Verbose)
Jotta muutos tulee voimaan pitää uudelleen käynnistää Application Virtualization Management Server palvelu.

Ongelmia
Application virtualization managment server service ei käynnisty
Testi ympäristössä sql serveri ja managment serveri oli asennettu samaan koneeseen. Ongelmaksi muotoutui se että koneen käynnistyksen jälkeen piti managment service käydä käynnistämässä manuaalisesti, vaikka määrityksenä servicellä oli automatic.
Pienen tutkinnan jälkeen löytyi eventeistä kaksi virhettä. Event 41494 ja 44901. Ongelman syynä on siis se että app-v ei saanut yhteyttä tietokantaansa. Lisätutkimuksessa havaitsin sql:n servicien käynnistyvän vasta app-v:een servicen käynnistys yrityksen jälkeen.
Ratkaisuna muutin servicen startup typen "automatic (delayed start)" tilaan. Tällöin Service odottaa että kaikki muut automatic tilassa olevat servicet käynnistyvät ja aloittaa vasta sitten itsensä käynnistämisen.
Jatkuvasti kaatuileva management console
Ylläpitämääni ympäristöön ilmestyi yhtäkkiä omituinen ongelma. App-V:n management console kaatuili tuhottoman usein. Aluksi syytin yhteyttä sql tietokantaan. Mutta lopulta havaitsin että kaatuminen tapahtui yleensä vaiheessa kun sovellusten pikakuvakkeita avautui consolessa. Niinpä löysin seuraavan artikkelin. Console siis saattaa kaatua jos järjestelmässä on yli tuhat ikonia ja palvelimessa yli 2gb muistia. Korjasin ongelman muokkaamalla rekkaria lisäämällä seuraavan dword arvon palvelimeen. Tämän jälkeen hienot ikonit eivät lataudu consoleen, mutta ehkäpä työskentelyä helpottaa enemmän consolin pystyssä pysyminen:)
HKLM\Software\Microsoft\SoftGrid\4.5\Management Console\LoadConsoleIcons=0






