Le blog technique

Toutes les astuces #tech des collaborateurs de PI Services.

#openblogPI

Retrouvez les articles à la une

Application Compatibility Toolkit 6.1 – Partie 3

Ce troisième article sur Application Compatibility Toolkit traite la phase d’analyse de données récoltées.

Avec ACT il est possible de faire une synchronisation de la liste de vos applications sur une plateforme Microsoft. Celle-ci permet d’obtenir les informations officielles publiées par les éditeurs de logiciel. L’accès à ces informations permet de gagner du temps pour la validation de vos applications. De plus, la plateforme héberge les résultats de compatibilité d’une communauté d’utilisateur d’ACT. Celle-ci s’avère utile pour faire le point sur une application dont l’éditeur n’a pas communiqué d’information officielle. Dans les options, il est possible de choisir si l’on souhaite ou non envoyer les résultats de compatibilité sur la plateforme Microsoft

Le menu analyse vous permet de visualiser le résultat de la collecte. Les rapports sont regroupés par système d’exploitation : Windows 7, Windows 8 et Windows 8.1.

Information : Vous pouvez choisir d’afficher uniquement les rapports qui correspondent au système d’exploitation cible. Pour ce faire, cliquez sur « Customize this view » et décochez les systèmes inutiles.

Tips - Custom View 2 Tips - Custom View

 

Rapport général

Pour chaque système d’exploitation, ACT fournit un rapport général.

Rapport - General

Informations sur l’inventaire

Les premières informations portent sur le processus d’inventaire lui-même :

  • Le nombre de postes de travail analysé
  • Le nombre d’applications recensé
  • Le nombre de périphériques détecté

Informations sur les applications

Ensuite, vous trouvez un tableau de synthèse concernant la compatibilité des applications. Vous pourrez ainsi identifier le nombre d’applications:

  • Incompatibles
  • Compatibles
  • Compatibles, mais qui risque de présenter quelques problèmes mineurs à l’utilisation
  • Sans informations sur la compatibilité

Dans la page sont ensuite présentées les informations sur la compatibilité des applications par rapport :

  • Aux informations concernant le support officiel de l’éditeur « Vendor Assessment »
  • À votre résultat sur la compatibilité « My Assessment »

Notez que pour chaque application ACT distingue les architectures 32 et 64 bits.

Informations sur les périphériques

Le tableau dédié aux résultats sur la compatibilité des périphériques est similaire à celui des applications. On retrouve le nombre de périphériques :

  • Incompatibles
  • Compatibles
  • Compatibles, mais qui risque de présenter des problèmes mineurs
  • Sans informations sur la compatibilité

Rapport détaillé

Pour chaque système d’exploitation, ACT fournit des rapports détaillés pour:

  • Les applications
  • Les postes de travail
  • Les périphériques
  • Les Add-On Internet Explorer
  • Un Feedback global

Notez que tous les rapports sont exportables dans les formats suivants : Excel, CSV et XLM.

Rapport sur les applications

L’onglet application recense l’ensemble des informations sur la compatibilité des applications.

Rapport - Application

Vous trouverez les trois premières colonnes qui identifient l’application :

  • Le nom de l’application
  • La version
  • L’éditeur

Évaluation de la compatibilité

  • Votre évaluation sur la compatibilité « My Assessment »
  • L’état de la synchronisation avec la communauté « Send and Receive Status »
  • Les informations sur la compatibilité officielle « Vendor Assessment »
  • Les retours sur la compatibilité de la communauté « Community Assessment »

Autres colonnes

  • La colonne « Versions » affiche le nombre de versions mineur de l’application détectée sur les postes.
  • Le nombre de postes sur lesquels l’application a été détectée est inscrit dans la colonne « Computer ».
  • Vous avez la possibilité de choisir une priorité pour chaque application. Celle-ci est affichée dans l’onglet « Priority ». 4 Niveaux de priorité sont disponibles :
    o Priorité 1 – Business Critical
    o Priorité 2 – Important
    o Priorité 3 – Nice to Have
    o Priorité 4 – Unimportant
    o Unspecified
  • La dernière colonne est intitulée « Deployment Status ». Comme pour la colonne précédente, ACT vous propose de choisir le statut du déploiement de l’application :
    o Not Reviewed
    o Testing
    o Mitigating
    o Ready to Deploy
    o Will not Deploy
  • La colonne « Active Issues » est intéressante dans le cas où une application est incompatible.

Via la plateforme Microsoft, l’éditeur du logiciel peut publier des informations pour résoudre les problèmes de compatibilité (MAJ de l’application de la plupart des cas).

Exemple d’une solution proposée pour l’application Adobe Flash Player 10 Plugin :

Issue - Issue DetailIssue - Solutions

De plus, sachez qu’il existe une autre information (non visible dans le tableau) pour vous aider à organiser votre parc applicatif : les catégories.
La liste de catégories est personnalisable et vous permet d’assigner à une application une ou plusieurs catégories. L’utilisation de celle-ci vous sera fort utile si vous souhaitez utiliser des filtres dans vos rapports.

L’interface est personnalisable et vous pouvez choisir les colonnes à afficher et celle à masquer (via un clic droit sur la ligne d’en tête du tableau)

Rapport sur les postes de travail

Dans cet onglet dédié au poste de travail, on retrouve les colonnes suivantes :

  • Le nom du poste
  • Le nombre d’applications ayant un problème de compatibilité
  • Le nombre de périphériques ayant un problème de compatibilité
  • Le système d’exploitation
  • Le domaine Active Directory
  • Le nombre d’applications
  • Le nombre de périphériques

Information : Les postes de travail équipés de Windows XP SP3 sont identifiés en SP2. En réalité, le SP3 est bien détecté, mais ACT le répertorie comme une application nommée « Windows XP Service Pack 3 ».

Rapport - Ordinateur

Rapport personnalisé : Filtrage

ACT intègre une fonction de filtrage sur les différents rapports (applications, poste de travail, etc.). Le filtre est accessible depuis la barre d’outils principale.

Filtre-barre

Via cette fonctionnalité de filtrage, vous pourrez construire un rapport personnalisé basé sur des conditions.

Filtre-UI

Par exemple, vous pourrez générer un rapport contenant :

  • Les applications de priorité 1 Business Critical
  • Les applications détectées sur les postes de travail nommées avec une syntaxe précise (ex. : INFO, ACHAT…)
  • Les applications qui font partie de la catégorie nommée « Drivers »

Vous trouverez ci-dessous une capture d’écran des différents champs disponibles :

Filtre

Sachez qu’il est possible de créer des requêtes avancées en ajoutant plusieurs conditions. Notez également que l’outil permet de sauvegarder vos requêtes personnalisées pour une utilisation ultérieure de celle-ci.

Autoriser l’exécution d’un script Powershell uniquement si RunAsAdministrator a été effectué et / ou si le compte utilisateur dispose du droit Domain Admin

Dans certains contexte, nous avons besoin qu’un script Powershell ne soit exécuté que si la fenêtre Powershell n’a été lancée qu’en tant qu’administrateur.

image

Pour effectuer ce contrôle et lancer l’exécution du script :

 

$currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
if (($currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)) -eq $false)
{
    write-host "Merci de relancer le script avec élévation de privilèges" -f red -b yellow
}

else
{
    ###############################################

    Saisissez votre code

    ###############################################
}

Maintenant si vous lancez votre script Powershell sans exécuter d’élévation, voici le résultat :

image 

Imaginons maintenant que nous voulons exécuter un script uniquement si le compte utilisé dispose du droit domain admin :

Tout d’abord vous devez identifier le SID du groupe domain admin.

 

Une fois identifié voici un exemple d’intégration pour appliquer cette condition:

    $currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
    $DroitDomainAdmin=0;$currentUser.Identities.groups | %{if($_.value -eq "S-1-5-21-XXXXXXXXXXXXXXXXXXXX"){$DroitDomainAdmin=1}}

     ### S-1-5-21-XXXXXXXXXXXXXXXXXXXX correspond à votre SID du groupe domain admin

    if ($DroitDomainAdmin -eq "0")
    {
        write-host "Vous ne disposez pas du jeton Domain\Domain Admins" -f red -b yellow
        write-host "Merci de vous l’attribuer et de relancer le script" -f red -b yellow
    }
    else

        {
        ###############################################

        Saisissez votre code

        ###############################################
    }

Détection des cartes réseaux en powershell en fonction de leurs propriétés de localisation

(Ce script est exécuté sous Powershell en version 3)

Vous disposez d’un plan de câblage identique pour plusieurs serveurs sur un même modèle. Chaque cartes réseaux sur les différents serveurs doivent être configurés de façon identique : même nom d’interfaces, mêmes protocoles, etc..

Afin d’identifier de manière automatiser les interfaces, vous pouvez vous baser sur le paramètre de localisation des interfaces (sur un même modèle de serveur).

Exemple :

image

 

Nous allons ici chercher à récupérer le nom de l’interface (pouvant varier d’une installation à l’autre en fonction de l’ordre de détection des interfaces réseaux)

Ici, nous allons identifier les différentes cartes réseaux et leurs emplacement :

Get-WMIObject Win32_PnPSignedDriver | ? {$_.deviceclass -match "NET"} |select description, location

image

 

Nous avons pu identifier la valeur correspondante à notre carte réseau.

Nous allons maintenant récupérer son nom d’interface présent dans le gestionnaire des connexions réseaux (ncpa.cpl)

$location=”PCI bus 3, device 0, function 0”

#### deviceclass retourne les résultats des périphériques PnP de type réseaux

Get-WMIObject Win32_PnPSignedDriver |? {$_.location -match $location -and $_.deviceclass -match "NET"} |%{$_.friendlyname} | %{Get-NetAdapter -InterfaceDescription $_} | %{$_.name}

 

image

 

Exemple pour l’inteface Wifi :

image