Esiasenna XFA Microsoft Configuration Managerilla (SCCM)
Luo Application, jolla on Windows Installer -jakelutyyppi, ja välitä liittämistunnuksesi MSI-ominaisuutena. Esiasennus on Enterprise-ominaisuus.
XFA on tehty niin, että suojattava tiimi asentaa sen itse. He asentavat sen itse Awareness-kutsun jälkeen tai kirjautuessaan sovellukseen, jota Enforcement suojaa. Useimmille organisaatioille se on koko käyttöönotto.
1. Lataa asennusohjelma
Lataa XFA.msi ja vie se sisältöjakoosi.
Yksi asennusohjelma kattaa x64:n ja ARM64:n. ARM64:llä se toimii emuloituna, ja XFA korvaa itsensä natiivikoosteella automaattisesti.
2. Luo sovellus
Siirry Configuration Manager -konsolissa kohtaan Software Library > Application Management > Applications ja luo sovellus XFA.msi-tiedostosta. Configuration Manager lukee tuotekoodin ja luo tunnistusmenetelmän puolestasi.
Asettamasi sääntö kertoo, onko XFA asennettu, ei sitä, onko tämä käyttäjä liitetty organisaatioosi. Jos haluat vahvistaa organisaatioliitoksen, esimerkiksi kun laitteella voi jo olla XFA toista organisaatiota varten, käytä vaatimustenmukaisuussääntöä, joka suoritetaan käyttäjän kontekstissa. Tunnistusmenetelmä suoritetaan järjestelmätilinä, joka ei ylety käyttäjän käyttäjäkohtaiseen asennukseen, joten alla oleva %LOCALAPPDATA% osoittaa oikeaan profiiliin vain silloin, kun sääntö suoritetaan käyttäjänä.
xfa ei ole PATH-polulla ja se on ikkunallinen sovellus, joten sääntö, joka suorittaa sen suoraan, ei odota sitä eikä saa sen paluukoodia. Käynnistä taustaosa, odota sitä ja raportoi liitos vain paluukoodilla 0 (10 tarkoittaa, ettei liitosta ole):
$run = Start-Process "$env:LOCALAPPDATA\XFA\xfa-backend.exe" -Wait -PassThru `
-ArgumentList 'enrollment-status', '--organization-id', '<id>'
if ($run.ExitCode -eq 0) { Write-Output 'Affiliated' }
Tämä on se yksi asetus, joka pitää saada oikein. Configuration Managerin luoma sääntö tarkistaa MSI-tuotekoodin. XFA luo tuotekoodinsa uudelleen aina päivittäessään itseään, joten ensimmäisen itsepäivityksen jälkeen tallennettu koodi ei enää täsmää. Configuration Manager raportoi silloin XFA:n asentamattomana ja asentaa paketoidun koosteen uudemman päälle joka arviointikierroksella. Paikalleen jätettynä se työntää vanhemman koosteen koko laitekantaasi.
Korvaa se PowerShell-tunnistusskriptillä. Configuration Manager tulkitsee XFA:n asennetuksi, kun skripti kirjoittaa vakiotulosteeseen, ja puuttuvaksi, kun se ei kirjoita mitään.
Skriptin on otettava huomioon kaksi asiaa. Configuration Manager suorittaa tunnistuksen järjestelmätilinä, vaikka sovellus asentuu käyttäjälle, joten sääntö, joka katsoo HKEY_CURRENT_USER-avainta tai %LOCALAPPDATA%-polkua, lukee järjestelmätilin omaa profiilia eikä koskaan näe käyttäjän asennusta. Ja XFA on käyttäjäkohtainen asennus, joten "asennettu" on kysymys kirjautuneesta käyttäjästä eikä koneesta: jaetulla tietokoneella jokainen käyttäjä tarvitsee oman kopionsa.
Tunnista siis kirjautuneen käyttäjän asennus. XFA kirjoittaa käyttäjäkohtaisen merkinnän polkuun HKCU\Software\XFA\DesktopApp, jonka järjestelmätili voi lukea kyseisen käyttäjän rekisteripesästä HKEY_USERS-avaimen alta. Vielä yksi mutka: XFA.msi on 32-bittinen asennusohjelma, joten 64-bittisellä koneella merkintä laskeutuu 32-bittiseen rekisterinäkymään, ja ARM64-itsepäivityksen jälkeen se siirtyy 64-bittiseen näkymään. Tunnistusskriptit suoritetaan oletuksena 64-bittisinä, joten tarkista molemmat näkymät ja hyväksy merkintä kummasta tahansa:
$console = (Get-CimInstance Win32_ComputerSystem).UserName
if ($console) {
try {
$sid = ([System.Security.Principal.NTAccount]$console).Translate(
[System.Security.Principal.SecurityIdentifier]).Value
$installed = $false
foreach ($view in @([Microsoft.Win32.RegistryView]::Registry32,
[Microsoft.Win32.RegistryView]::Registry64)) {
$base = [Microsoft.Win32.RegistryKey]::OpenBaseKey(
[Microsoft.Win32.RegistryHive]::Users, $view)
try {
$key = $base.OpenSubKey("$sid\Software\XFA\DesktopApp")
if ($key) { $installed = $true; $key.Close() }
} finally { $base.Close() }
}
if ($installed) { Write-Output 'Installed' }
} catch { }
}
Tämä tunnistaa olemassaolon, ei versiota, joten XFA:n itsepäivitykset eivät koskaan laukaise sitä. Se on rajattu kirjautuneeseen käyttäjään, joten jaetulla koneella Configuration Manager asentaa XFA:n jokaiselle henkilölle tämän kirjautuessa sen sijaan, että ohittaisi kaikki ensimmäisen jälkeen. Merkintä kirjoitetaan asennuksen yhteydessä ja se pysyy paikallaan itsepäivitysten yli, joten sääntö pätee mille tahansa versiolle. try/catch on tärkeä: jos tiliä ei saada selvitettyä SID-tunnukseksi (esimerkiksi kun toimialueen ohjauskone on hetken tavoittamattomissa), skripti ei kirjoita mitään ja Configuration Manager lukee "ei asennettu", mikä on turvallinen suunta, ei koskaan väärä osuma.
Tämä olettaa yhden interaktiivisen käyttäjän kerrallaan, mikä on kannettavan tai pöytäkoneen tavallinen tilanne. Monen istunnon isäntäkoneella (Remote Desktop Session Host) Win32_ComputerSystem.UserName raportoi vain fyysisen konsolikäyttäjän, joten tunnistus kattaa siellä sen yhden käyttäjän eikä jokaista istuntoa.
3. Määritä asennusohjelma
Ota komento XFA:n hallintapaneelin kohdasta Integraatiot > Esiasenna XFA MDM:n kautta > Microsoft Configuration Manager (SCCM), jossa tunnuksesi on jo mukana:
msiexec /i "XFA.msi" /qn ENROLLMENT_TOKEN=<token-from-xfa-dashboard>
EMAIL asettaa yhden osoitteen. Applicationilla on yksi asennusohjelma koko kokoelmalle, joten osoitteen laittaminen siihen liittää kokoelman jokaisen laitteen kyseisenä henkilönä.
Toimialueeseen liitetyssä laitekannassa XFA lukee osoitteen Active Directoryn mail-attribuutista laitekohtaisesti, mikä on juuri se, mitä haluat. Se turvautuu user principal nameen, kun mail on tyhjä tai kun yhtään toimialueen ohjauskonetta ei tavoiteta.
Jos laitteet epäonnistuvat osoitevirheeseen, korjaus on Active Directoryssä (täytä mail näille tileille), ei asennuskomennossa. EMAIL on tarkoitettu asennukseen yhdelle laitteelle, jonka omistajan tiedät.
mail ei ole se identiteetti, jolla liitätOletuksena XFA lukee ensin Active Directoryn mail-attribuutin ja sitten user principal namen. Entra- tai Microsoft 365 -laitekannassa UPN on yleensä henkilön todellinen osoite, ja mail voi olla vanhentunut tai asettamatta. Lisää asennuskomentoon PREFER_UPN=1, jos haluat kokeilla ensin user principal namea:
msiexec /i "XFA.msi" /qn ENROLLMENT_TOKEN=<token> PREFER_UPN=1
Jätä se pois perinteisessä toimialueeseen liitetyssä laitekannassa: corp.local-tyyppinen hakemistopääte on kelvolliselta näyttävä UPN, joka ei ole osoite, ja siksi mail tulee oletuksena ensin.
Poisto-ohjelma:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File uninstall-xfa.ps1
Tuotekoodi muuttuu jokaisen itsepäivityksen myötä, joten poisto ei voi nimetä alkuperäistä XFA.msi-tiedostoa: päivityksen jälkeen sen tuotekoodi ei enää vastaa asennettua. Toimita uninstall-xfa.ps1 sisältölähteessä XFA.msi-tiedoston rinnalla. Se selvittää nykyisen tuotteen Windows Installerin kautta XFA:n pysyvän UpgradeCoden perusteella, joka on sama jokaisessa versiossa ja riippumaton 32- tai 64-bittisestä rekisterinäkymästä, ja poistaa sen sitten:
$ErrorActionPreference = 'Stop'
$upgradeCode = '{FE5FD0A4-8D39-42FD-B0DE-18EB89B7CAC4}'
try {
$installer = New-Object -ComObject WindowsInstaller.Installer
$products = @($installer.RelatedProducts($upgradeCode))
if ($products.Count -ne 1) { exit 1 }
$p = Start-Process 'msiexec.exe' -ArgumentList "/x $($products[0]) /qn" -Wait -PassThru
if (-not $p) { exit 1 }
exit $p.ExitCode
} catch {
exit 1
}
Poisto-ohjelma poistaa paketin mutta ei suorita xfa unenroll -komentoa, joten se jättää organisaatioliitoksen palvelimelle, ja laitteella, joka kuuluu useampaan kuin yhteen organisaatioon, se riisuu XFA:n myös muilta.
Suorita ensin kirjautuneena käyttäjänä xfa unenroll --organization-id <id>, jolloin poistat vain tämän organisaation ja XFA jää asennetuksi. Poista sovellus vasta sitten, kun yhtään organisaatioliitosta ei ole jäljellä: xfa enrollment-status palauttaa paluukoodin 0 niin kauan kuin laite on liitettynä johonkin organisaatioon, ja 10, kun poistaminen on turvallista.
4. Määritä jakelutyypin asetukset
XFA on käyttäjäkohtainen sovellus, joten sen on asennuttava käyttäjän ollessa kirjautuneena.
| Asetus | Arvo |
|---|---|
| Installation behavior | Install for user |
| Logon requirement | Only when a user is logged on |
| Installation program visibility | Hidden |
| Deployment target | User collection |
Configuration Managerin asiakasohjelma toimii SYSTEM-tilinä. Jos asetus jää arvoon Install for system, käyttäjäkohtainen sovellus asentuu SYSTEM-profiiliin: Configuration Manager raportoi onnistumisen, eikä kirjautuneella käyttäjällä ole XFA:ta, eikä hän koskaan ilmesty Laitteet-sivullesi.
XFA kieltäytyy liittämästä silloin kun se toimii järjestelmätilinä, joten tämä raportoi virheen ja nimeää asetuksen sen sijaan, että viimeistelisi asennuksen profiiliin, jota kukaan ei käytä. Silti juuri asetus on se, mikä estää tilanteen.
5. Jaa ja tarkista
Jaa sovellus käyttäjäkokoelmalle, jolloin se asentuu kirjautuneelle käyttäjälle.
XFA liittää laitteen palveluun asennuksen aikana, joten se ilmestyy Laitteet-sivullesi heti. Sen jälkeen se tallentaa laitteen tunnistetiedot kirjautuneen käyttäjän profiiliin.
Hallittu asennus voi tapahtua istunnossa, joka ei vielä voi kirjoittaa tuohon profiiliin. Configuration Manager asentaa palvelupuolen kirjautumisella, jolla ei ole omaa tunnistetietovarastoa. Kun niin käy, XFA kirjaa liittämisen ja viimeistelee tunnistetietojen tallennuksen seuraavalla kerralla, kun käyttäjä kirjautuu istunnosta, joka siihen pystyy, ja raportoi tietoturvatilan sieltä. Vasta jaettu laite voi siis ilmestyä ennen kuin se raportoi täysin, ja asettuu paikalleen, kun käyttäjä on kirjautunut. Tämä tapahtuu automaattisesti, eikä siinä ole mitään määritettävää.
Varmista sitten, että:
- XFA:n kuvake näkyy kirjautuneen käyttäjän ilmaisinalueella, ja
- laite näkyy kyseiselle käyttäjälle XFA:n Laitteet-sivulla.
Hylätty tunnus kaataa asennuksen, joten Configuration Manager näyttää jakelun epäonnistuneena sen sijaan, että päästäisi läpi laitteen, joka asentui liittymättä organisaatioosi. Se raportoi yleisen asennusvirheen eikä XFA:n omaa syykoodia, joten lue syy laitteen tiedostosta %TEMP%\xfa\xfa-enrollment.log: hylätty tunnus näkyy siellä koodina 2 ja tavoittamaton palvelu koodina 3 (uudelleenyrittäminen kannattaa). XFA jää joka tapauksessa asennetuksi.