Overblog Tous les blogs Top blogs Technologie & Science Tous les blogs Technologie & Science
Editer l'article Suivre ce blog Administration + Créer mon blog
MENU

[SCCM] 2016 Déploiement d'applications

Publié le par damcuvelier

Avec SCCM vous avez la possibilité d’installer une application (ou un package) en mode administrateur ou bien utilisateur. Le mode utilisateur installe l’application avec les permissions de l’utilisateur en cours, qui n’est généralement pas administrateur de sa machine. Pour cette raison, les déploiements d’applications se font en grande majorité en mode administrateur.

Cependant, il arrive parfois que l’on soit forcé d’installer une application en mode utilisateur, et ça complique un peu le déploiement. Si l’application est au format MSI, une solution simple consiste à utiliser une GPO qui active ces 2 paramètres :

Configuration Ordinateur \ Modèle d’administration \ Composants Windows \ Windows Installer \ Toujours installer avec des droits élevés
 
Configuration Utilisateur \ Modèle d’administration \ Composants Windows \ Windows Installer \ Toujours installer avec des droits élevés
 

app02


Ainsi, un utilisateur peut exécuter un fichier MSI qui va s’installer sans demander de droits administrateur. Vous pourrez ainsi déployer une application avec SCCM sans vous soucier des permissions. Mais ceci vous oblige à laisser la GPO active en permanence, ce qui n’est pas recommandé en terme de sécurité.

Il existe une autre solution qui consiste octroyer temporairement à l’utilisateur en cours des droits élevés, installer l’application souhaitée, puis les retirer ces droits quelques minutes après. Pour donner les droits élevés à un utilisateur, il faut configurer ces 2 clés de registre :

  • HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer
  • HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\Installer
  • Clé (DWORD) : AlwaysInstallElevated
  • valeur : 1

Si l’une des 2 clés est manquante, l’utilisateur n’aura pas de droits élevés.

La clé HKLM sera inscrite par un script PowerShell et la clé HKCU sera inscrite par GPO. La GPO configure la clé de registre au niveau utilisateur (et de façon permanente) tandis que le script PowerShell va inscrire la clé au niveau ordinateur et planifiera une tâche pour désactiver les droits élevés N minutes plus tard (en changeant la valeur de la clé de registre à 0). Ainsi, l’utilisateur aura des droits élevés juste pendant le temps de l’installation de l’application.

Côté SCCM, vous devrez créer une application qui contiendra le script PowerShell.

La GPO a créer est la suivante :

Configuration utilisateur / Préférence / Paramètres Windows / Registre

  • Ruche : HKEY_CURRENT_USER
  • Chemin de la clé : Software\Policies\Microsoft\Windows\Installer
  • Valeur : AlwaysInstallElevated
  • Type de valeur : REG_DWORD
  • Données de valeur : 00000001

app01

Puis un script PowerShell avec les 3 commandes suivantes :

%windir%\system32\reg.exe add HKEY_LOCAL_MACHINE\software\policies\microsoft\windows\installer /v AlwaysInstallElevated /t reg_dword /d 1

$heure = (get-date).AddMinutes(15).ToString(« HH:mm »)

schtasks /CREATE /SC ONCE /TN « InstallElevated » /TR « %systemroot%\system32\reg.exe add HKEY_LOCAL_MACHINE\software\policies\microsoft\windows\installer /v AlwaysInstallElevated /t reg_dword /d 0 » /ST $heure /F /RU « NT AUTHORITY\SYSTEM »

 
  • La 1ere commande écrit la clé de registre qui autorisera l’installation avec des droits élevés.
  • La seconde commande récupère l’heure courante dans une variable et ajoute 15 minutes.
  • La 3eme commande créé une tâche planifiée pour interdire l’installation avec des droits élevés et s’exécutera 15 minutes plus tard. Cette tâche s’exécute une seule fois et sous un compte SYSTEM.
 
En exécutant ce script avant l’installation de votre application, vous donnez à l’utilisateur en cours les droits nécessaires pour installer un MSI pendant quelques minutes.
 
Maintenant passons à la création de l’application :
 
  • Déposez le script PowerShell dans un emplacement source.
  • Créez une nouvelle application
  • Spécifiez les informations manuellement :
 app03
  • Nommez votre application :
app04
  • Renseignez les informations pour le catalogue des applications :
app05
  • Ajoutez un type de déploiement :
app06
  • Spécifiez les informations manuellement :
app07
  • Nommez le type de déploiement :
app08
  • Renseignez l’emplacement source
  • La commande d’installation est la suivante :
powershell.exe -executionpolicy unrestricted .\InstallElevated.ps1
app09
 
  • Ajoutez une clause de détection :
 
app10
 
  • La clause sera de type Registre
    • Ruche : HKEY_LOCAL_MACHINE
    • Clé : Software\policies\microsoft\windows\installer
    • Valeur : AlwaysInstallElevated
    • Data type : Integer
    • La valeur doit être égale à 1
 
app11
 
  • Sélectionnez Install for system
 
app12
 
La création de l’application est terminée. Vous pouvez la rendre disponible sur les points de distribution.

Editez maintenant votre application.

Allez sur l’onglet expérience utilisateur : sélectionnez Install for user
 
app13
Allez sur l’onglet Dépendances – cliquez sur Add
app14
Sélectionnez l’application que vous venez de créer afin que le script PowerShell s’exécute avant l’installation.
 
app15
 
Lorsque vous aurez installé l’application sur un poste, vérifiez que la clé HKEY_LOCAL_MACHINE\software\policies\microsoft\windows\installer\AlwaysInstallElevated a bien une valeur égale à 0.
 
app16

Commenter cet article