PI Services

Le blog des collaborateurs de PI Services

Réaliser un package MSI multi-langues à partir de plusieurs MSI

 

L’objectif de ce tutoriel est de réaliser un package MSI multi-langues à partir de plusieurs MSI de différentes langues. InstallSite et Microsoft fournisse leur propre méthode à base de vbscript. Ici nous utiliserons InstEd.

Dans notre cas présent, nous avons 4 MSI de 4 langues. Nous en garderons un qui servira de référence. Ensuite, nous modifions le MSI de référence pour le rendre multi-langues. Nous générons les MST de chacune des langues. Finalement, nous les stockons dans le MSI de référence.

1. Rendre un MSI multi-langues

  • Ouvrir le MSI de référence avec InstEd
  • Parcourir le menu Tables/Summary info
  • Ajouter au champ « Languages » les langues à venir, par leur LangID et séparer par des virgules.

2. Générer les MST

  • Ouvrir le MSI d’une langue
  • Parcourir le menu Transform/Generate Against…
  • Sélectionner le MSI de référence
  • Enregistrer le différentiel dans un MST. Garder le nom de la langue dans le nom de fichier peut aider à s’organiser.

Répéter ces actions autant de fois que vous avez de langues différentes.

3. Stocker les MST dans le MSI de référence

  • Ouvrir le MSI de référence
  • Ajouter un enregistrement à la table _Storage en choisissant le MST d’une langue en guise de donnée et le LangID du MST pour le nom.

Il est important de respecter cette convention de nommage car c’est une clé du mécanisme Windows Installer permettant de charger le MST correspondant à la langue de l’utilisateur (UserLanguageID ) à l’exécution du MSI.

Répéter ces actions autant de fois qu’il y a de langues. En n’oubliant pas que chaque MST ajouté doit avoir sa LangID associée ajouté au champ « Languages » dans « Summary Info ».

Voilà, c’est fini.

Récupérer les informations de l'utilisateur connecté et réévaluer le chemin d'installation des composants

L’objectif est de récupérer les variables d’environnement de l’utilisateur en cours d’installation d’un package MSI. La difficulté est que l’installation par certain outil de télédistribution installent les packages avec le compte système.

Ci-joint vous trouverez un script vbs permettant de récupérer ces informations. Nous allons décrire les actions suivantes :

  • Ajout du vbscript dans une « custom action »
  • Séquencer cette « custom action »
  • Modifier l’installation d’un composant en fonction d’une variable utilisateur
  • Séquencer cette « custom action »
  • Utilisation de cette nouvelle valeur dans le chemin d’installation du composant

1. Créer une nouvelle « custom action » pour exécuter le vbscript

  • Ouvrir le MSI avec InstEd
  • Ajouter un nouvel enregistrement dans la table CustomAction, de type 38 (0x26 - VBScript - Source: Null - Target: script text | Scheduling: Always).
  • Recopier le contenu du script ci-joint dans le champ Target.

Par exemple :

clip_image003

Voici les variables d’environnement récupérées et les variables « windows installer » affectées :

clip_image005

 

2. Séquencer la « custom action »

Par exemple :

clip_image007

 

3. Créer une nouvelle « custom action » pour modifier les composants à partir des nouvelles informations

  • Ajouter un nouvel enregistrement dans la table CustomAction, de type 35 (0x23 - Directory - Source: Directory to be set - Target: formatted text | Scheduling: Always).

clip_image009

Cette « custom action » va donc affecter au répertoire « LogonUserProfile » la variable windows installer « LogonUserProfile »

 

4. Séquencer la « custom action »

Pas de condition à ajouter, car elle doit être exécutée dans tous les cas, installation, rollback, désinstallation et auto-réparation.

Par exemple :

clip_image011

Par exemple, ici nous avons positionné un fichier dans le profil de l’utilisateur. Ce fichier est contenu dans un composant :

clip_image013

Le chemin d’installation du composant sera donc automatique réévalué à l’installation, rollback, désinstallation et auto-réparation.

Ce principe pourra également être utilisé pour des package MSI x86/x64 pour des composants nécessitant un chemin différent suivant l’architecture du poste de travail.

***************************************

Get_LogonUsersVars.vbs

Option Explicit

Const HKEY_USERS = &H80000003

Dim strKeyPath, subKey, arrKeys

Dim oReg
Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")

Dim oShell
Set oShell = CreateObject("Wscript.Shell")

strKeyPath = "Volatile Environment"

'*** DEBUT DU MAIN ***

oReg.EnumKey HKEY_USERS, "", arrKeys
  
For Each subkey In arrKeys    
    
     If RegExists("HKEY_USERS\" & subkey & "\" & strKeyPath & "\") Then

    Session.Property("LogonUserSID") = subkey

    'Msgbox "User's SID : " & Session.Property("LogonUserSID")

    Session.Property("LogonUserName") = oShell.RegRead("HKEY_USERS\" & subkey & "\" & strKeyPath & "\USERNAME")

    'Msgbox "LogonUserName : " & Session.Property("LogonUserName")

    Session.Property("LogonUserAppData") = oShell.RegRead("HKEY_USERS\" & subkey & "\" & strKeyPath & "\APPDATA")

    'Msgbox "LogonUserAppData : " & Session.Property("LogonUserAppData")

    Session.Property("LogonUserProfile") = oShell.RegRead("HKEY_USERS\" & subkey & "\" & strKeyPath & "\USERPROFILE")

    'Msgbox "LogonUserProfile : " & Session.Property("LogonUserProfile")

                
     End If
 
Next     

'*** FIN DU MAIN ***

' Test d'existence d'une clé de registre
Function RegExists(value)

    On Error Resume Next

    Dim Val
            val = oShell.RegRead(value)

    If (Err.number = -2147024893) or (Err.number = -2147024894) Then
        RegExists = False
    Else
        RegExists = True
    End If

End Function

Windows échoue à se connecter à l’imprimante

Symptômes :

Lors du rapatriement des pilotes un bug se produit et l’assistant s’interrompt (imprimante réseau couleur).

« Windows cannot connect to the printer. Operation failed with error 0x0000007e ».

imageimage

                            image

Ce problème survient lorsque qu’on tente d’ajouter une imprimante couleur sur un poste client Windows 7 rattaché à un serveur d’impression Windows 2003 ou Windows 2008.

Deux solutions de contournements fonctionnent car le problème est connu par Microsoft mais sans correctif pour le moment.

· Le premier s’opère sur le poste client, et consiste à installer l’imprimante en utilisant le port LPT2, puis d’utiliser une commande de redirection

                             clip_image002

· Le deuxième consiste à modifier une clé de registre sur le serveur d’impression. Puis de se connecter à l’imprimante.

Regedit> HKLM\System\CurrentControlSet\Control\Print\Printers\printername\CopyFiles en renommant le répertoire CopyFiles par xCopyFiles. Ce répertoire n’existe que pour une imprimante couleur.

clip_image003

Les deux solutions fonctionnent instantanément. Mais il est beaucoup plus rapide de modifier le répertoire défaillant directement dans la base de registre pour toutes les imprimantes concernées.

Problème de pilote x86 sur une architecture x64

Problématique rencontrée :

Lorsque l’on veut ajouter un pilote supplémentaire x86 de type NT/2K/XP à une imprimante sous 2008R2, un message vous avertit que « Windows ne trouve pas de pilotes pour l’imprimante dans le répertoire sélectionné pour l’architecture demandé ».

Les pilotes x64 existent déjà dans Windows, mais celui-ci refuse d’y ajouter les homologues x32.

image

Le problème est dû au nommage des imprimantes qui peut être différent  dans server 2008R2 par rapport au package de pilotes d’origine sur 2K/XP.

Ce problème toucherait les imprimantes dont les pilotes ne sont plus mis à jour pour les OS postérieurs à XP ou Vista, par les constructeurs.

Solution testée : Une HP LaserJet 1320 est nommées HP LaserJet 1320 series  sur NT/2K/XP alors que Server 2008 R2 reconnait les pilotes si le mot « series » disparait.

Pour que le pilote x86 d’une HP Laserjet 2200 series PCL 5e soit accepté sur Serveur 2008 R2 il faut que celui-ci désignent une HP Laserjet 2200 series PCL 5 simplement.

Capture0

Pour cela il faut récupérer les pilotes authentiques NT/2K/XP x86, dé zipper, modifier le fichier .inf en renommant l’ancienne appellation de l’imprimante par celle attendu par Windows.

Capture2

Après un petit message d’avertissement le pilote est installé, ce qu’on peut vérifier dans le gestionnaire d’impression.

image

Cette astuce permet d’utiliser le pilote d’origine si de plus récent de type PCL 6 ou HP Universelle existe et ne donne pas satisfaction.

Symantec Enterprise Vault V9 – Outlook 2010 et le message caché (Outlook 2010 Hidden Message)

Les stratégies d’archivage ou Policies, quand elles sont appliquées à une boite aux lettres, arrivent sous la forme d’un message caché. Pour rappel, ces stratégies contiennent tous les paramètres relatifs à l’archivage de la dite boite aux lettres. Ne pas oublier non plus d’installer les composants Enterprise Vault pour le client Outlook.

Dans les anciennes versions d’Outlook, il suffisait de cliquer sur Point_D_Interrogation_thumb4 et “A propos d’Enterprise Vault” pour obtenir un certain nombre d’informations, y compris pour visualiser ces fameux paramètres. De plus, il était possible de vérifier la date de dernière synchronisation.

Depuis l’arrivée d’Outlook 2010 et son nouveau bandeau, le fameux Point_D_Interrogation_thumb5 a tout simplement disparu !!…ou plutôt….à pris une autre apparence !…

3d-point-d-39-interrogation_thumb1

La preuve en image…

image_thumb3

Désormais, il faut aller le chercher dans un tout autre endroit… en cliquant sur “Fichier”… “Enterprise Vault”… “Additional Support Information”…

image_thumb5

Et voilà…

image

image

Simple non ?…

N'hésitez pas à laisser un commentaire si ce tips vous a été utile ou bien si vous avez des éléments à ajouter !…

Faille de sécurité Microsoft exploitant les raccourcis

 

Cette grosse faille de sécurité a été publiée par Microsoft le 16 juillet dernier ( CVE-2010-2568 ). Elle exploite le mode de fonctionnement des raccourcis ( ".LNK" ) sur tous les OS Windows. Bien sûr la mise à disposition du patch correspondant sera annoncée dans le bulletin de sécurité :http://www.microsoft.com/technet/security/advisory/2286198.mspx.

L’exploitation de cette faille se traduit par le fait, qu’un malware puisse s’exécuter par le biais du détournement du mécanisme d’affichage d’icône.

Cette vulnérabilité est exploitable localement par disque amovible ou via des partages réseaux et WebDAV

Il n'existe pas de correctif à ce jour. Mais en attendant des solutions de contournement recommandées par Microsoft peuvent-être mises en place.

La désactivation de l'affichage d'icône pour les raccourcis peu ainsi limiter les risques d’exploitation de cette faille. Cette solution affiche les icônes en blanc par défaut. Pour se faire il est nécessaire depuis l’éditeur de registre, de rechercher dans la ruche HKEY_CLASS_ROOT, IconHandler afin de modifier sa valeur par défaut par 0 après l’avoir exporté pour revenir à la valeur précédente dès la sortie d’une mise à jour.

Autre solution de contournement la désactivation du service WebClient se fait en passant par le gestionnaire de l’ordinateur ou en exécutant services.msc

Enfin troisième solution le blocage du téléchargement des fichiers LNK et PIF depuis Internet est recommandé. 

La liste des systèmes Windows concernés et supportés s'étend de Windows XP SP3 à Windows Serveur 2008R2.

Notez que des éditeurs d’antivirus (Sophos, Eset) ont déjà répertorié Stuxnet depuis mi-juillet exploitant cette vulnérabilité.

MAJ: Le 3 Aout Microsoft apporte une réponse par la mise en ligne de l'update KB2286198 annoncé dans le bulletin de sécurité suivant http://www.microsoft.com/technet/security/bulletin/MS10-046.mspx

Windows7 - Windows Seven devant Windows Vista

Windows Seven plus populaire que Windows Vista ? C’est ce qu’affirme une étude menée par Janco Partners. Selon elle, Windows Seven serait désormais le système d’exploitation le plus utilisé au monde après Windows XP.

Neufs mois après leur sortie , le constat est sans appel : 6% de parts de marché pour Vista contre 14% pour Seven. A noter que les calculs de Jenco Partners ont été effectués en prenant pour base la version RTM de Windows Seven.

83030-windows-7-vista-acceptance-rate

83031-windows-xp-7-vista-pdm

Ces données semblent toutefois quelques peu surévaluées. En effet, Microsoft annoncait en Avril avoir “seulement” dépassé les 10% de PDM – près de 15% selon Janco Partners. Net Applications quant à eux comptabilisaient une PDM de 11,68% pour Windows Seven, contre 15,60% pour Vista et 63,41% pour XP.

Malgré tout, au vu de l’évolution de Windows Seven sur le marché des OS, nul doute que la destinée de celui-ci est de se retrouver sur la première place du podium, en lieu et place de notre bon vieux Windows XP.

SMS/SCCM - Visualiser une infrastructure SMS / SCCM avec l'outil SMSMAP

Descriptif :

SMSMap est une application écrite en VB .Net utilisant les librairies du SDK de SCCM pour générer à travers MS Visio le diagramme de votre infrastructure SCCM.

Très utile lors d’un audit ou lorsque les documentations d’architecture ne sont pas disponibles !

Il permet d’afficher (options paramétrables) :

  • Les sites SCCM par type (primaire/secondaire)
  • Les systèmes de sites présents dans ces sites (SQL, point de gestion, déploiement etc..)
  • Les relations inter-site et hiérarchie.
  • Le nombre de clients par sites

Le seul pré-requis est de posséder MS Visio 2003 ou 2007 sur l’ordinateur où il sera installé.

Le fichier obtenu peut être sauvegardé sous un format pdf, jpeg ou autre.

Un exemple :

Options de paramétrage de l’outil :

smsmap01 

smsmap02

Diagramme obtenu pour un environnement de tests :

smsmap03 

Télécharger l’outil :

Vouc pouvez télécharger cet outil gratuitement à l'adresse suivante :

http://www.tondtware.com/

SCCM - Présentation des nouveautés de ConfigMgr 2007 R3 et ConfigMgr 2011

Je reprends ici des informations glanées sur divers blogs concernant les évolutions futures présentées au TechEd de Berlin (Nov 2009) concernant SCCM 2007 R3 et la nouvelle version (anciennement appelée vNext) SCCM 2011.

SCCM 2007 R3 :

  • Améliorations liées à la gestion de l’énergie : 
       - Application de modèles de gestion d’énergie sur les machines via les collections (à la manière des fenêtres de maintenance) 
       - Reporting de la consommation énergétique en fonction des modèles appliqués 
       - Mesures de « l’activité » de l’utilisateur
  • Améliorations des performances 
       - Découvertes AD plus rapides 
       - Mises à jour des collections plus rapides (détection des nouvelles ressources)
  • OSD : possibilité de créer des images OEM

SCCM 2011 :

  • Le produit sera « User Centric ». Ce qui signifie que les applications se déplacent avec les utilisateurs où qu’ils soient
  • Les packages seront remplacés par des applications
  • Les méthodes de déploiement des applications seront liées à des règles de détection : en fonction de l’endroit où l’utilisateur se trouve, de la machine sur laquelle il se connecte, l’application pourra être installée, virtuelle (streaming) ou en remote desktop.
  • Il sera possible d’assigner une machine "principale" à un utilisateur (à utiliser avec les règles de détection par exemple)
  • Au niveau architecture, il y aura moins de niveaux dans la hiérarchie. Le site central sera remplacé par un Client Administrative Server (CAS) et un seul niveau en dessous
  • Les sites seront ajoutés au fur et à mesure pour des raisons de montée en charge (“scalabilité”) et non plus des raisons de délégation d’administration
  • La réplication SQL remplacera les mécanismes de réplication de fichiers pour les réplications entre sites (à l’exception des binaires)
  • Les DP auront des “senders”(donc contrôlables)
  • Les sites secondaires auront une base de données, un MP et un DP par défaut
  • DCM pourra faire de l’auto correction
  • Le reporting classique de SMS disparait. Il n’y aura plus que SSRS (Reporting Services)
  • La console SCCM ne sera plus à base de MMC classique mais plutôt genre SCOM. Dans la ligne des autres produits System Center
  • ConfigMgr 2011 sera 64 bits 

Quelques liens supplémentaires :

http://thoughtsonopsmgr.blogspot.com/2009/11/tech-ed-berlin-2009-day-3-wednesday.html

http://blogs.technet.com/systemcenter/archive/2009/09/08/announcing-system-center-configuration-manager-2007-r3.aspx