PROJET AUTOBLOG


IT-Connect

Site original : IT-Connect

⇐ retour index

Tablette tactile : du nouveau chez Teclast

vendredi 23 octobre 2015 à 15:45

La marque Teclast vient de sortir deux nouvelles tablettes tactiles, et cette fois-ci, on y retrouve du Windows !

En effet, la Teclast X80 Plus et la Teclast X80 Pro embarquent toute deux l’OS Windows 10, on pourra alors profiter des interfaces des applications Metro qui tendent depuis plusieurs années à faciliter l’utilisation du Tactile

Coté spécification technique, pour la Teclast X80 Plus :

Pour la Teclast X80 Pro, on retrouve les mêmes ressources mais avec un écran qui permet une résolution plus précise de 1920 x 1200.

Coté batterie, ces deux nouvelles tablettes embarques une charge de 3800 mAh, soit 3 heures de lecture vidéo environ.

Voici quelques images de ces tablettes :

teclast-t80-02 teclast-t80-01

Vous pourrez retrouver ces deux tablettes sur le site Gearbest le TX80 Plus et le TX80 Pro pour 99$ et 116$, si ce n’est pas pour acheter ça peut vous donner au moins l’occasion d’en savoir un peu plus sur elles.

Test Asustor AS1002T

jeudi 22 octobre 2015 à 10:00

I. Présentation

On se retrouve pour le test d’un NAS Asustor, avec le tout nouveau Asustor AS1002T de la série 10, un modèle d’entrée de gamme avec le strict minimum, mais qui bénéficie du nouveau design des NAS Asustor. Alors, à quoi peut-on s’attendre ? La réponse dans ce test.

Tout d’abord voici les caractéristiques du produit :

– Processeur : Marvell ARMADA 385, double coeur cadencé à 1 GHz.
– Mémoire (RAM) : 512 Mo
– Baies : 2 – compatible disques durs 3.5″, en SATA II ou III
– Réseau : 1 interface Ethernet Gigabit
– Connectivité : Un USB 3.0 en façade et un USB 3.0 à l’arrière
– Multimédia : Pas de sortie audio, pas d’HDMI
– Ventilation : 1 ventilateur 70mm

Il est à noter que ce NAS bénéficie d’une architecture ARM, une première chez Asustor.

II. Déballage et design

Rapidement voici ce que vous trouverez dans le carton du NAS, en plus du produit en lui-même : l’alimentation externe, un câble Ethernet (cat. 5e), un CD d’installation, un guide d’installation et un kit visserie pour l’installation des disques durs en baie.

Le design fait peau neuve, là où Asustor nous avait habitués à une façade semblable sur l’ensemble de ses modèles, aujourd’hui Asustor veut changer la donne avec une nouvelle façade.

asustor-as1002t-1

Place à une façade entièrement lisse (avec quelques reliefs au touché), qui ne donne pas accès directement aux racks des disques durs comme sur le design habituel. La façade intègre également la mention Asustor de couleur or. Il y a aussi moins de LEDs en façade, puisqu’il y a seulement des LEDs d’activités discrètes, et non des bandeaux lumineux comme on pouvait retrouver sur les anciens modèles.

Avec ce nouveau design, le NAS se fera plus discret dans votre salon puisqu’il fait plus box passe-partout avec un design élégant avec une façade qui fait vraiment propre, ce qui ne laisse pas entendre toute la machinerie qu’il y a derrière… Voici quelques photos pour vous en convaincre :

asustor-as1002t-2

asustor-as1002t-3

Enfin, la vue de l’arrière :

asustor-as1002t-4

Le bouton d’alimentation se situe à l’arrière du boitier, alors que jusqu’ici Asustor nous avait habitués à un bouton en façade. Sur ce modèle low-cost, on notera également l’absence du bouton de sauvegarde en façade.

Pour la forme, voici une photo qui compare le design habituel des NAS Asustor et le nouveau design pour que vous puissiez comparer :

asustor-as1002t-5

III. Montage et vue interne

Au niveau montage, il y a du changement. Habituellement chez Asustor on fonctionne avec un système de rack directement amovible en façade, sans devoir démonter le boitier. Là, les disques durs sont enfermés dans le boitier, et ils sont fixés par des visses directement sur une cage en métal à l’intérieur du boitier, il n’y a pas de racks amovibles.

Il suffit de retirer les deux visses à l’arrière, puis de coulisser la partie gauche du boitier comme sur l’image ci-dessous pour ensuite accéder à l’intérieur du boitier.

asustor-as1002t-6

On remarquera une carte mère épurée sur laquelle une pile CMOS est en évidence. Voici ce que donne le boitier une fois ouvert :

asustor-as1002t-7

Ce qui est intéressant c’est qu’aucun tournevis n’est nécessaire pour le montage, car les visses fournies peuvent être verrouillées à la main. On place le disque dur dans la cage en métal (qui au passage est facilement amovible par quelques visses en cas de besoin…) et on fixe le disque dur.

asustor-as1002t-8

Ce changement de design a impacté aussi la manière dont on monte les disques durs au sein du NAS, l’avantage c’est qu’ils sont mieux sécurisés puisqu’ils sont enfermés dans le boitier. Aucun outil n’est à prévoir, tout est réalisé manuellement, et ça faut avouer que c’est pratique et bien pensé de la part d’Asustor sur un appareil, qui je le rappel encore, est de l’entrée de gamme.

Au niveau du bruit, à voir si cela peut jouer… Pour ceux qui s’inquiètent quant à la chaleur, sachez qu’une aération est positionnée à l’avant du NAS en supplément du ventilateur présent à l’arrière.

IV. Le système d’exploitation ADM

Ce NAS embarque directement la dernière version stable du système d’exploitation ADM de chez Asustor, à savoir l’ADM 2.5, qui est disponible depuis la première quinzaine d’octobre.

Avant d’accéder à l’interface web, il faudra au préalable passer par la phase d’initialisation inévitable, réalisable par l’interface web ou par l’application mobile AiMaster.

asustor-as1002t-9

On retrouve les fonctionnalités habituelles, vous pouvez retrouver des détails supplémentaires sur le système et son utilisation au sein des articles suivants :

En résumé, on retrouve un système d’exploitation agréable et contenant de nombreuses fonctionnalités, et celles-ci peuvent être élargies grâce aux applications disponibles au sein du magasin d’applications.

On notera également la possibilité de gérer les LEDs au sein du système d’exploitation, notamment avec la possibilité de les éteindre pour toujours plus de discrétion dans votre salon. Une fonction intéressante pour un appareil d’entrée de gamme.

app-central-1

V. Les performances de l’Asustor

C’est une étape obligatoire lorsque l’on teste un NAS : les performances. Voici ce que ça donne avec l’AS1002T :

perf-asustor-as1002t

Par rapport à ce graphe qui rapporte les performances mesurées lors de mes tests, j’ajouterais que lors du transfert de fichiers de 5 Go en écriture, le débit varie entre 93 Mo/s et 97 Mo/s tout au long du transfert sans réellement se caler (à quelques 0,1 Mo/s près). Les performances sont correctes pour un produit de cette puissance et de cette gamme.

Pour les tests, j’ai utilisé un réseau câblé en 1 Gbit/s avec du transfert de fichiers par le protocole SMB avec un partage créé sur le NAS et un poste de travail classique sous Windows 8.1.

En ce qui concerne le processeur et la mémoire, ils se comportent bien pendant les transferts de données. Lorsque le NAS est au repos, seuls environ 73 Mo de RAM est utilisé ce qui en laisse plus de 400 Mo de disponibles. Le processeur, lui, ne dépasse pas les 10% d’utilisation.

J’ai remarqué par contre que le CPU montait en température à 65°C seulement quelques minutes après le démarrage du NAS.

VI. L’avis final

Ce NAS garanti 3 ans et disponible au prix de 169,90€ (prix public conseillé) est en adéquation avec la gamme de produits qu’il représente, tout comme sa configuration matérielle qui est en adéquation avec ses connectiques (on lui épargnera les gros traitements de flux vidéo par l’absence de connectique HDMI, par exemple). Je n’en ai pas parlé jusqu’ici, mais, 4 licences pour des caméras sont incluses avec ce NAS, si vous souhaitez enregistrer vos flux vidéos sur le NAS vous avez déjà une base intéressante au niveau des licences (chez la concurrence le nombre de licences inclus est plus faible).

En résumé :

Ce NAS au design renouvelé saura trouver une place dans votre salon, sans pour autant faire de miracle en terme de performances, il reste un bon allié pour le stockage de vos données et la diffusion de contenu par le réseau.

Pour moi, le pari est réussi.

MDT – Techniques de gestion de la base de données

mercredi 21 octobre 2015 à 10:30

I. Présentation

Pour l’installation de la base de données MDT, vous pouvez vous reporter à mon tutoriel sur la gestion des applications. Vous y trouverez une procédure de mise en œuvre d’une base de données MDT.

Il se peut que vous rencontriez quelques difficultés lors de la déclaration de l’instance SQL, avec un symptôme du genre “impossible de trouver l’instance SQL”. Ce phénomène peut être lié au fait que le service “SQL Browser” ne soit pas démarré. Pour y remédier, démarrez le programme “SQL Server Configuration Manager” puis développez l’arborescence “Configuration réseau SQL Server … Protocoles pour SQLEXPRESS” (ou le nom de votre instance installée pour les besoins de MDT). Dans le cadre de droite, vérifiez que le protocole “Canaux nommés” (“Named Pipes“)  est bien activé, conformément au choix de votre configuration MDT.

MDT05-img00a

SQL – Activation des protocoles réseau

Dans le cas contraire, modifiez ce réglage via le menu contextuel ou les propriétés du protocole.

Sélectionnez ensuite le nœud “Services SQL Server” puis accédez aux propriétés du service “SQL Server Browser“. Vérifiez  que le service est bien démarré ou cliquez sur le bouton dans le cas contraire.

MDT05-img00b

Sélectionnez l’onglet “Service” puis choisissez “Automatique” dans le champ “Mode de démarrage“.

MDT05-img00c

Cliquez sur “Appliquer” puis “OK“. À ce stade, la déclaration de votre base de données MDT ne devrait plus poser de problème (du moins, en local…)

Pour votre gouverne, sachez que depuis MDT 2012, il est possible de créer une base de données et l’associer à MDT en ligne de commande Powershell, voici un exemple :

# Importer un module PowerShell
Import-Module "C:\Program Files\Microsoft Deployment Toolkit\Bin\MicrosoftDeploymentToolkit.psd1"
# Créer un nouveau lecteur
New-PSDrive -Name DS002 -PSProvider mdtprovider -Root E:\DeploymentShare
# Créer une base de données
New-MDTDatabase -SQLServer 'WDS-MDT' -Database 'MDT02' -Instance 'SQLExpress' -Path 'DS002:'

Pour afficher les commandes disponibles

Get-Command -Module MicrosoftDeploymentToolkit

Note : Avec MDT2010, le module n’existait pas et il fallait charger l’extension spécifique comme suit : “Add-PSSnapIn Microsoft.BDD.PSSnapIn

Toutefois, à ma connaissance, il n’existe pas de technique pour configurer en ligne de commande, les règles de gestion de la base de données que nous allons évoquer ci-après. N’hésitez pas à commenter cet article si vous avez une piste à ce sujet. Pour les plus intéressés sur la configuration automatisée de MDT, je vous recommande la lecture de cet article de Rens Hollanders.

II. Rappels – Gestion de la base de données MDT

Pour ceux qui n’auraient jamais eu l’occasion d’utiliser une base de données au sein de MDT, voici quelques éléments de présentation.

A. Présentation

Dans la console MDT, sont regroupées sous la rubrique “Database“, 4 tables (ou plus exactement les vues proposées) suivantes :

MDT014-img01

Rubrique “Database” du MDT

Ces vues permettent d’afficher les champs principaux sous la forme d’un tableau :

Vues Nom des champs affichés (Colonnes) Propriétés/Variable MDT
Computers ID, Description, MAC Address, Asset Tag, Serial Number, UUID AssetTag, UUID, SerialNumber, MACAddress
Roles ID, Role Role
Location ID, Location DefaultGateway
Make and Model ID, Make, Model Make, Model

Chaque enregistrement (ou entrée) dispose d’un identifiant unique “ID” logique (ou clé primaire) incrémenté pour chaque nouvel ajout dans la base de données.

La principale vue “Computers” permet de gérer les ordinateurs en leur affectant un identifiant “matériel” unique qui peut être :

identifiant Champs exposés (Colonnes)
MAC Address L’adresse MAC ou adresse physique de carte réseau (Probablement, la plus utilisée ou la plus pratique du fait qu’elle est généralement inventoriée et connu dans la plupart des entreprises)
Serial Number Le numéro de série de l’ordinateur. Le format n’est pas normalisé et varie d’un constructeur à l’autre
Asset Tag Littéralement “le numéro d’inventaire” du fabricant. Ce numéro peut être mentionné par le fournisseur sur une étiquette complétée d’un code-barre et apposée sur le boitier du PC (L’option peut être payante).
UUID Ce numéro correspond à l’identifiant de la carte mère. Selon le même principe qu’une adresse MAC, il est unique et normalisé sous une forme hexadécimale :
DA812F8C-2F4F-AE6E-F480-003E8CFDE2B6Vous pouvez l’afficher en ligne de commande
“wmic csproduct get uuid”

 

B. Rattacher une base existante

Si vous désirez rattacher une base existante, vous pouvez utiliser le menu “Advanced Configuration … Database … New Database” de la console MDT.

MDT014-img02

Assistant de configuration de la base de données MDT – Réseau

Après avoir renseigné le nom du serveur et de l’instance SQL, cliquez sur le bouton “Next“.

MDT014-img03

Assistant de configuration de la base de données MDT – Database

Au niveau de la dernière option “Use an existing database that already contains the required tables and views“, sélectionnez la base désirée qui doit apparaitre dans la liste déroulante.

Vous n’avez pas besoin de renseigner la ressource partagée si vous avez installé la base SQL sur le serveur MDT.

Cette directive facultative (SQLShare = ) est censée préciser le dossier partagé sur le serveur SQL. Bien que distinct de la directive “SLshare”, qui désigne la ressource partagée destinée à recevoir les journaux (logs), on peut affecter la même valeur à ces 2 propriétés dès lors que l’instance SQL et le MDT sont sur le même serveur.

Cliquez 2 fois sur le bouton “Next” puis sur “Finish“.

Attention, le fait de raccrocher une base existante à votre MDT, ne met pas à jour le fichier de configuration “CustomSettings.ini”. Pour cela, vous devrez utiliser le menu “Advanced Configuration … Database … Configure Database Rules” de la console MDT l’opération suivante, en ayant préalablement sauvegardé votre fichier de configuration.

Pour configurer les différentes règles de gestion des requêtes, vous pouvez vous reporter à mon tutoriel sur la gestion des applications

C. Créer / Afficher un enregistrement

Pour créer un nouvel enregistrement, sélectionnez la vue désirée, comme par exemple “Computers“, puis cliquez sur le menu “Action … New” ou le menu contextuel.

MDT014-img04

Ajout d’une nouvel ordinateur dans la base de données MDT

L’adresse MAC doit être saisie avec le séparateur d’octet “:” et les lettres en majuscule. Notez que cette interface ne vérifie pas les doublons. Au besoin, reportez-vous au chapitre “Compléments” ci-après.

Astuce : Vous pouvez remarquer que le champ “description” est optionnel. Toutefois, j’ai personnellement pris l’habitude d’y renseigner le nom de l’ordinateur (OSDComputerName) afin de visualiser directement cette information sans recourir à l’onglet de détail.

Le module Powershell MDTDB présenté plus loin, permet de renseigner une description lors de la création d’une nouvelle entrée “New-MDTComputer” mais présente le défaut de ne pas permettre la modification de ce champ par la suite “Set-MDTComputer”. Au besoin, reportez-vous au chapitre “Compléments” ci-après.

Après avoir saisi les informations requises, vous pouvez cliquer sur le bouton “Appliquer” pour créer l’enregistrement.

Lors de l’ouverture d’un enregistrement, vous disposez de plusieurs onglets, variables selon de type de vue choisi. Pour ne pas trop charger cette présentation, je n’évoquerais que l’onglet “Detail” (de la vue “Computers“).

Sous cet onglet, vous pouvez consulter, et renseigner le cas échéant, toutes les propriétés (variables MDT) de votre choix. Celles-ci sont classées par thèmes mis en exergue par des titres sur fond bleu.

Titre
ADDS Settings
Bitlocker
ConfigMgr 2012 OSD
DHCP Server Settings
Disk Settings
Display Settings
DNS Server Settings
Domain and Workgroup
Identification
Miscellaneous
NIC Settings
OS Roles
Regional and Locale Settings
User Data
Wizard Control
Custom

Il y a potentiellement plus de 200 variables disponibles !…

(Get-MDTComputer |get-member -MemberType Properties ).count

En fonction de vos outils d’inventaire logiciels et matériel tel que SCCM, MAPT ou ACT, ou d’outils tiers tels que GLPI, OCS Inventory ou encore de tableaux Excel, le peuplement de la base de données du MDT peut s’avérer rapidement délicate ou fastidieuse.

Il devient donc rapidement évident qu’une technique de gestion de masse s’impose 😉

III. Gérer la base de données MDT via Powershell

En alliant les capacités intrinsèques de Powershell à des extensions spécifiques (appelée module) vous pouvez bénéficier d’un véritable arsenal de gestion de cette base de données MDT, et envisager rapidement des opérations d’extraction, de modification ou d’import en masse au travers de vos propres scripts.

Le snapin ou module “MicrosoftDeploymentToolkit.psd1” fournit par Microsoft et évoqué précédemment, est manifestement insuffisant pour une gestion des éléments contenus dans une base de données MDT. Heureusement, la communauté Powershell et MDT est très active et vous permet de pallier ces lacunes.

A. Télécharger et installer le module MDTDB

En premier lieu, vous devez télécharger le module spécifique à l’adresse suivante :

http://blogs.technet.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-03-24-15-04/MDTDB.zip

Une fois téléchargée, décompressez l’archive vers un dossier temporaire. Normalement, cette archive ne contient qu’un module Powershell “MDTDB.psm1” et un script d’exemple “MDTDB_Test.ps1“.

Ces fichiers provenant d’un téléchargement Internet, pensez à vérifier les propriétés de ceux-ci  via l’explorateur Windows, puis cliquez sur le bouton “Débloquer” le cas échéant.

 

MDT014-img05

Débloquer un fichier téléchargé

Pour respecter les préconisations relatives aux modules, et les retrouver plus facilement, vous pouvez copier ou déplacer le fichier .psm1 vers le dossier “%windir%\System32\WindowsPowerShell\v1.0\Modules\MDTDB”.

Pour vérifier la disponibilité des différents modules dans votre environnement, vous pouvez utiliser la commande Powershell suivante :

($env:PSModulePath).Split(';') |dir | ft name

Vous devriez voir apparaître le module MDTDB dans cette liste.

B. Utilisation du module MDTDB

Ouvrez une console Powershell, en tant qu’Administrateur.

Avant de poursuivre, vous devez vérifier que la stratégie d’exécution autorise l’exécution des scripts qui ne sont pas signés numériquement. Entrez la commande suivante pour autoriser l’exécution locale du module non signé.

Set-ExecutionPolicy RemoteSigned

Entrez la commande suivante afin d’obtenir le liste des modules disponibles.

Get-Module -ListAvailable

Le module “MDTDB” devrait apparaitre dans la liste. Cependant, si vous ne l’avez pas placé à l’endroit indiqué précédemment, vous pouvez également le charger à partir de son emplacement initial, en stipulant son chemin complet.

Bien que facultatif depuis Powershell v3 grâce au chargement automatique des modules, vous devez entrer la commande suivante afin de charger les fonctions dans la session courante.

Import-Module MDTDB

Pour afficher la liste des fonctions apportées par ce module, tapez la commande suivante.

Get-Command -Module MDTDB

Vous pouvez constater que la liste est longue (72 commandes, plus exactement des fonctions) et nous allons porter notre attention uniquement sur les principales fonctions :

La première action primordiale consiste à établir une connexion avec la base de données du serveur MDT en procédant comme suit:

Connect-MDTDatabase –sqlServer WDS-MDT –instance SQLEXPRESS -database MDT01

Si la base contient déjà des ordinateurs référencés, vous pouvez en obtenir la liste via la fonction suivante :

Get-MDTComputer

Comme vous l’avez constaté préalablement, un ordinateur MDT est référencé au sein de la base de données par un ou plusieurs identificateurs distinctifs. La commande précédente permet d’affiner la recherche en stipulant des paramètres suivants :

Paramètre Description
-id Identifiant unique de l’ordinateur dans la base de donnée
s-assetTag Numéro de modèle lié à un fabriquant
-macAddress Adresse physique de la carte réseau
-serialNumber Numéro de série de l’ordinateur
-uuid Identifiant unique de la carte mère de l’ordinateur

Comme vous pouvez le constater, chaque enregistrement possède un nombre considérable de variables (~225) retournées sous forme de liste, et de fait difficilement exploitable à l’affichage.

Note : La seule variable positionnée par défaut sur une nouvelle entrée d’ordinateur est “OSInstall = YES

Pour obtenir un tableau simplifié des ordinateurs référencés dans la base de données, utilisez la commande suivante :

Get-MDTComputer | Format-Table Id, AssetTag, MacAddress, SerialNumber, UUID, OSDComputerName -Autosize

Pour une présentation plus sympathique du résultat sous forme graphique vous pouvez également utiliser la commande suivante:

Get-MDTComputer | select-object -property OSDComputerName, Id, AssetTag, MacAddress, SerialNumber, UUID | sort-object -property OSDComputerName | out-gridview

Pour supprimer une entrée dans la base de données, vous devez connaitre son identifiant et utiliser la commande suivante (où “n” est l’identifiant) :

Remove-MDTComputer -id n

Pour supprimer une entrée dans la base de données, dont vous ne connaissez qu’une propriété telle que le nom, vous pouvez utiliser la commande suivante :

Get-MDTComputer | where { $_.OSDComputerName -match 'Test01' } | Remove-MDTComputer

L’opération de création ou de modification d’une entrée est sensiblement plus délicate. En effet, ces paramètres et leurs valeurs respectives doivent être renseignées au sein d’une table associative (hashtable) symbolisée par ” @ { param1 = valeur1 ;  param2 = valeur2 } “.

Par exemple, pour créer un nouvel enregistrement, tapez la commande suivante :

New-MDTComputer -macAddress '00:00:00:11:22:33' -settings @{ OSInstall='YES' ; OSDComputerName='Test002' }

 

Note : Cette commande de création nécessite de déclarer au moins une propriété (-settings ) .

Pour Modifier un enregistrement existant, tapez la commande suivante :

Set-MDTComputer -id n -settings @{ OSDComputerName = 'Test003' }

Avant de manipuler efficacement cette base de données, vous devez donc identifier le nom des variables que vous souhaitez exploiter. Vous pouvez obtenir une liste exhaustive des noms de ces variables (ou propriétés) en interrogeant les propriétés d’une entrée existante (n), comme suit :

Get-MDTComputer -id n | Get-Member -MemberType Property | Select-Object Name

Un des nombreux atouts de PowerShell est sa capacité à convertir facilement des résultats vers des formats CSV, HTML, ou XML. Pour générer un fichier directement exploitable par votre tableur favori, il suffit de taper la commande suivante:

Get-MDTComputer | Export-Csv -Path C:\Temp\MyMDT.csv -Delimiter ';'

Réciproquement, si vous souhaitez importer un tableau CSV dans cette base de données, vous devez utiliser la commande “Import-CSV“. Pour décomposer la procédure, tapez les commandes suivantes :

$Machines = Import-CSV -Path C:\Temp\MyMDT.csv -Delimiter ';'

À ce stade la variable “$Machines” contient l’intégralité du fichier CSV et vous pouvez afficher le nombre d’enregistrements comme suit

$Machines.count

 

Petit piège : J’ignore encore d’où vient ce phénomène, mais lorsqu’il n’y a qu’une seule entrée dans cet objet, la commande “$Machines.count” ne renvoie rien et non “1”, comme on pourrait s’y attendre.

Chaque ligne de ce tableau correspond à un élément où chaque champ est une propriété de celui-ci. Autrement dit, en indiquant le numéro d’index (de 0 à “count-1”) d’un élément suivi du nom de la propriété vous en obtenez la valeur, comme par exemple:

$Machines[0].id $Machines[0].OSDComputerName

À présent, vous pouvez envisager de réaliser une importation de masse. Pour des raisons de simplicité, nous utiliserons le fichier CSV suivant réduit à quelques propriétés (voir fichier d’exemple ci-dessous) :

Nous allons également créer quelques rôles factices, censés correspondre aux séquences de déploiement des différentes images de référence.

New-MDTRole -name 'Poste Fixe W7x64Pro' -settings @{ TaskSequenceID="REF-FIXE01" } 
New-MDTRole -name 'Poste Portable W7x64Ent' -settings @{ TaskSequenceID="REF-PORT01" }
New-MDTRole -name 'Poste Virtuel W7x86Pro' -settings @{ TaskSequenceID="REF-VIRT01" }

 

Du fait qu’il n’y a aucun contrôle sur la validité des réglages, comme ici “TaskSequenceID“, faites attention aux erreurs de saisie, lors de vos traitements de masse.

Fichier d’exemple “MDTImport.CSV”

Name;Mac;OU;Role
PC-001;00:15:5D:64:33:01;Fixes;Poste Fixe W7x64Pro
PC-002;00:15:5D:64:33:02;Fixes;Poste Fixe W7x64Pro
PC-003;00:15:5D:64:33:03;Fixes;Poste Fixe W7x64Pro
PC-004;00:15:5D:64:33:04;Portables;Poste Portable W7x64Ent
PC-005;00:15:5D:64:33:05;Portables;Poste Portable W7x64Ent
PC-006;00:15:5D:64:33:06;Fixes;Poste Fixe W7x64Pro
PC-007;00:15:5D:64:33:07;Fixes;Poste Fixe W7x64Pro
PC-008;00:15:5D:64:33:08;Fixes;Poste Fixe W7x64Pro 
PC-009;00:15:5D:64:33:09;Fixes;Poste Fixe W7x64Pro
PC-010;00:15:5D:64:33:0A;Virtuels;Poste Virtuel W7x86Pro

Cet exemple ne traite pas la création des unités d’organisation “OU” et le nom du domaine. “ou=Postes,dc=labs,dc=local

Exemple de script “ImportDB.ps1”

# Saisie du nom du fichier CSV d'import
param ( [string]$Path )

Do {
  if ($Path -eq "" -or -not(Test-Path $Path)) { 
  $Path = Read-Host "Entrez un nom de fichier CSV valide ou rien pour quitter "
  }
  if ($Path -eq "") {exit}
} Until (Test-Path $Path)

$Context = "ou=Postes,dc=labs,dc=local"
$sqlServer = "WDS-MDT"
$instance = "SQLEXPRESS"
$mdtdb = "MDT02"

# Import du module spécialisé MDTDB
Import-Module MDTDB

# Connexion à l'instance de la base de données MDT
Connect-MDTDatabase -sqlServer $sqlServer -instance $instance -database $mdtdb

# Chargement du fichier CSV
$machines = Import-Csv $Path -delimiter ';'

#Boucle de traitement des lignes du fichier CSV
For ($i=1; $i -le $machines.count; $i++)
{
   # Création d'une nouvelle entrée dans la base
   New-MDTComputer -macAddress $machines[$i-1].mac `
		   -description "$($machines[$i-1].name) : Demo Import DB" `
		   -settings @{ OSInstall='YES'; `
				OSDComputerName=$machines[$i-1].name; `
				ComputerName=$machines[$i-1].name; `
				MachineObjectOU="ou=$($machines[$i-1].OU),$Context";
		       	      }

   # Récupération de la clé "Id" de la nouvelle entrée
   $Current = get-mdtcomputer -macAddress $machines[$i-1].mac
   write-host "Création de $($machines[$i-1].name) avec Id: $($Current.id)"

   # Ajout du role (applications) s'il existe
   If ($machines[$i-1].role -ne "") { 
     Set-MDTComputerRole $Current.id $machines[$i-1].role 
     }
}

 

Dans une session Powershell, à partir du dossier dans lequel vous avez enregistré les 2 exemples précédents, exécutez le script comme suit:

.\ImportDB.ps1 .\MDTImport.csv

Pour vérifier le résultat, vous devez actualiser l’affichage dans la console MDT en sélectionnant la vue “Computers“.

MDT014-img06

Base de données MDT – Vue “Computers”

Ouvrez l’une des entrées, puis sélectionnez l’onglet “Details“. Vous deviez constater la présence des variables définies par le script.

MDT014-img07

Détails d’une entrée dans la base de données MDT

Et sous l’onglet “Role“, le rôle correspondant devrait également être présent.

MDT014-img08

Association d’un rôle dans la base de données MDT

Pour conclure sur cette introduction à l’usage de MDTDB avec Powershell voici 2 petits exemples :

Exemple d’affichage des données renseignées

Get-MDTComputer | % { $_.OSDComputerName, $_.MACAddress, $_.MachineObjectOU, $(Get-MDTComputerRole($_.id)).Role }

Exemple de sortie dans un tableau graphique

Get-MDTComputer | Select *ComputerName, MACAddress | Out-Gridview

Vous pouvez bien évidement adapter cet exemple en stipulant les propriétés de votre choix au niveau de la commande “Select …”.

 

IV. Utiliser Excel avec la base de données MDT

Si les scripts vous rebutent un peu et que vous disposez d’un tableur tel que Excel, vous pouvez l’utiliser comme interface de la base de données MDT, pour par exemple effectuer des exportations ou des tris.

À partir d’Excel 2010 par exemple, sélectionnez l’onglet “Données” puis cliquez sur “Connexion” … “Provenance : SQL Server

MDT014-img09

Entrez ensuite le nom du serveur et l’instance SQL, telle que “wds-mdt/SQLExpress

MDT014-img10

Cliquez sur “Suivant“. Sélectionnez votre base MDT dans la liste déroulante.

MDT014-img12

 

Choisissez une table telle que “ComputerSettings” correspondant à la table des ordinateurs MDT, puis cliquez sur “Suivant

MDT014-img11.

 

Ajoutez une éventuelle description puis cliquez sur “Terminer

Vous êtes ensuite invité à importer les données dans un classeur Excel.

MDT014-img13

Pour une simple analyse, conservez le choix “Tableau” puis cliquez sur “OK“. Le tableau fera toutefois plus de 200 colonnes !…

MDT014-img14

Si vous connaissez un peu le maniement d’Excel, je vous conseille de choisir la seconde option “Rapport de tableau croisé dynamique“, afin de choisir la disposition des informations à analyser.

V. Compléments

À l’usage, vous éprouverez peut-être le besoin d’accéder à la base de données du MDT via des outils personnalisés, ou vos propres scripts. Voici donc quelques exemples pour commencer l’aventure…

A. MDT Administrator

Pour une gestion personnalisée de la base de données MDT, je vous conseille de jeter un œil sur l’outil “MDT Administrator” de Chris W. (Téléchargeable au format .exe ou .hta).

MDT05-img15

MDT Administrator

Si vous avez mis en place les rôles, comme mentionné dans ce tutoriel, l’usage de cet outil vous paraitra très rapidement évident. :-)

B. Le champ “Description”

Lors de l’usage du module MDTDB précité, vous constaterez que le champ “Description” proposé lors de la création d’un nouvel ordinateur (New-MDTComputer) n’est plus disponible dans les commandes de modification (Set-MDTComputer). Cela est lié au fait que ce champ est stocké dans la table principale des ordinateurs (dbo.ComputerIdentity) référencée par la première commande et non celle des variables associées (dbo.ComputerSettings) sur laquelle agit la seconde commande.

Voici un petit exemple de script Powershell destiné à modifier le champ “Description” d’un ordinateur MDT dont vous connaissez l’identifiant.

Note : J’ai ajouté une petite fonction pour la gestion de la base de données afin que ce script soit indépendant du module MDTDB.

Set-MDTDescription.ps1

Function Invoke-SqlCommand {
param (
    [string]$dataSource,  # = SQLServer\. ou SQLServer\Instance
    [string]$database,
    [string]$sqlCommand = $(throw "Merci de spécifier une requete.")
 )

$connectionString = "Provider=sqloledb; " +
                    "Data Source=$dataSource; " +
                    "Initial Catalog=$database; " +
                    "Integrated Security=SSPI;"

$connection = New-Object System.Data.OleDb.OleDbConnection $connectionString
$command = New-Object System.Data.OleDb.OleDbCommand $sqlCommand,$connection
$connection.Open()

$adapter = New-Object System.Data.OleDb.OleDbDataAdapter $command
$dataset = New-Object System.Data.DataSet
[void]$adapter.Fill($dataSet)
$connection.Close()

$dataSet.Tables # | Select-Object -Expand Rows
}

function Read-Default($text, $defaultValue) { 
  $prompt = Read-Host "$($text) [$($defaultValue)]"; return ($defaultValue,$prompt)[[bool]$prompt]; 
  } 

$SQLServer= "WDS-MDT"
$Instance = "SQLExpress"
$Database = "MDT02"

$ID = Read-Host "Entrez l'identifiant de l'ordinateur MDT"   

  
$MDTComputer = Invoke-SqlCommand -sqlCommand "SELECT * FROM ComputerIdentity `
   WHERE ID = '$ID'" -dataSource "$SQLServer\$Instance" -database "$Database" 
if ($MDTComputer -ne $null) {
  echo $MDTComputer
  
  $NewDescription = Read-Default -text "Modifier ? (Entrée sinon)" -defaultValue "$($MDTComputer.Description)"
  if ($NewDescription -ne $($MDTComputer.Description)) {
     Invoke-SqlCommand -sqlCommand "UPDATE ComputerIdentity SET Description = '$NewDescription'`
       WHERE ID = '$ID'" -dataSource "$SQLServer\$Instance" -database "$Database"
      echo "La description [$NewDescription] a été mise à jour sur l'entrée $ID"
      } else {
      echo "La description [$NewDescription] n'a pas été modifiée sur l'entrée $ID"
      }
   } 
   else {
  echo "Entrée N°$ID inexistante dans la base de données $Database"
}

 

C. Valider le format d’adresse MAC et son unicité

Voici un autre exemple de script Powershell destiné à valider le format d’une adresse MAC et tester son unicité dans la base de données.

CheckMAC.ps1

Function Invoke-SqlCommand {
param (
    [string]$dataSource,  # = SQLServer\. ou SQLServer\Instance
    [string]$database,
    [string]$sqlCommand = $(throw "Merci de spécifier une requete.")
 )

$connectionString = "Provider=sqloledb; " +
                    "Data Source=$dataSource; " +
                    "Initial Catalog=$database; " +
                    "Integrated Security=SSPI;"

$connection = New-Object System.Data.OleDb.OleDbConnection $connectionString
$command = New-Object System.Data.OleDb.OleDbCommand $sqlCommand,$connection
$connection.Open()

$adapter = New-Object System.Data.OleDb.OleDbDataAdapter $command
$dataset = New-Object System.Data.DataSet
[void]$adapter.Fill($dataSet)
$connection.Close()

$dataSet.Tables # | Select-Object -Expand Rows
}

Function CheckMac {
   param (
       [string]$MACAddress = $(throw "Merci de spécifier une adresse MAC.")
   )  
	$patterns = @(
		'^([0-9a-f]{2}:){5}([0-9a-f]{2})$'
		'^([0-9a-f]{2}-){5}([0-9a-f]{2})$'
		'^([0-9a-f]{4}.){2}([0-9a-f]{4})$'
		'^([0-9a-f]{12})$')
 	if ($MACAddress -match ($patterns -join '|')) {$true} else {
   			Echo "ERREUR: Le format d'adresse MAC specifié est invalide : $MACAddress"
   	return
   	}
  	$Delimiter = ':'
  	$rawAddress = $MacAddress -replace '\W'
  	switch ($Delimiter) {
  		{$_ -match ':|-'}	{    
			if ($MacAddress -match ":")   {
   				$result=$MacAddress
   				Echo "L'adresse MAC $MacAddress est déjà au bon format" 
				}
 			else  {
    			for ($i = 2 ; $i -le 14 ; $i += 3) {
    				$result = $rawAddress = $rawAddress.Insert($i, $_)
					}
    			Echo "L'adresse MAC saisie $MacAddress a été convertie en $result" }
   				break
 			}
  		'.' {  for ($i = 2 ; $i -le 14 ; $i += 3) {
  				$result = $rawAddress = $rawAddress.Insert($i, $_) }
  				Echo "L'adresse MAC saisie $MacAddress a été convertie en $result"
  				break
 			}
		} # End switch
  	$MACAddress=$result.toUpper()
  	$global:MAC = $MACAddress
  	
}


CheckMac(read-host "Entrez l'adresse MAC à vérifier ")


# Vérification d'unicité

    $SQLServer= "WDS-MDT"
 	$Instance = "SQLExpress"
	$Database = "MDT02"
  
	$DuplicateMAC = Invoke-SqlCommand -sqlCommand "SELECT * FROM ComputerIdentity WHERE macAddress `
          = '$MAC'" -dataSource "$SQLServer\$Instance" -database "$Database" 
	
    if ($DuplicateMAC -ne $null){
		Echo "Cette adresse MAC $MAC est déjà assignée ! cf ID N° $($DuplicateMAC.ID)"
		} 
	else {
	    Echo "L'adresse MAC $MAC n'est pas encore assignée." 
	 }

Extraits de mes différents projets, j’ai essayé de rendre ces extraits autonomes, sans m’attarder sur la qualité du code, mais l’idée est bien là et je vous laisse le soin de les adapter à vos besoins.

Bien à vous

Doogee X5 Pro : Android et 4G pour moins de 80 euros !

mardi 20 octobre 2015 à 16:15

La 4G est de plus en plus présente sur les smartphones, même les smartphones d’entrée de gamme, où l’on peut trouver des modèles à moins de 150 euros facilement, voir même 100 euros. De son côté, Doogee va encore plus loin puisque le Doogee X5 Pro est proposé à moins de 80 euros, tout en ayant la 4G et Android 5.1.

N’allez pas croire que le design et les caractéristiques soient sacrifiés pour réduire le prix. En effet, du haut de son écran de 5 pouces ce smartphone Doogee propose une résolution HD (1280 x 720 pixels) sur une dalle LCD IPS.

Pour le processeur, on a le droit à du 64 bits et à quatre cœurs avec le MediaTek MT6735, couplé à 2 Go de RAM, une puce graphique ARM Mali T720 présente sur de nombreux modèles, ainsi que 16 Go de stockage interne (extensible par carte mémoire).

Concernant les photos, un capteur honorable de 5 mégapixels à l’arrière et un capteur 2 mégapixels à l’avant. L’autonomie quant à elle sera dépendante d’une batterie de 2400 mAh.

Enfin, il y a bien entendu le Wi-Fi et le Bluetooth, et concernant la 4G voici les compatibilités :  LTE française (800/1800/2600MHz).

Pour le design, je vous laisse vous faire votre propre avis :

doogee-x5-pro-1 Je précise qu’il est disponible en noir ou en blanc.

Le revendeur Gearbest propose ce modèle à 79,99$ soit 70,38€, ce qui est vraiment intéressant pour avoir du 4G sous Android 4.1, et de manière générale pour la configuration proposé.

Pour aller sur la page produit : Doogee X5 Pro

doogee-x5-pro-2

Android Marshmallow et le chiffrement par défaut

mardi 20 octobre 2015 à 15:30

Ca devait être le cas sous Android Lollipop, mais malheureusement ce n’est jamais arrivé, à en croire un document de Google le chiffrement est désormais par défaut sous Android Marshmallow. Mais alors, à quoi faut-il s’attendre ?

android-marshmallow-1

La sécurité des mobiles est essentielle puisque votre smartphone contient vos données personnelles, ainsi Android 6.0 rend le chiffrement de vos données actif par défaut. Cette information est contenue dans le document “Android Compatibility Definition” qui contient de nombreuses informations que les constructeurs doivent suivre pour bénéficier de la certification de Google, lorsqu’ils implémentent Android sur un smartphone.

Lire l’Android Compatibility Definition

Il est indiqué précisément au sein de ce document que les constructeurs qui sont en mesure de concevoir des appareils « supportant le chiffrement avec AES avec un débit de 50 mébioctets par seconde » doivent activer le chiffrement par défaut.

Important également, le fait que Google précise que les appareils qui passent d’une version ancienne d’Android vers Marshmallow ne sont pas obligés de voir le chiffrement activé par défaut.

Maintenant, reste à savoir si les constructeurs suivront ces recommandations, et prenons également conscience que tous les appareils ne peuvent pas assurer un rythme de 50 mébioctets… Notamment ceux bas de gamme et ceux qui n’ont pas un processeur 64 bits. Autrement dit, les moins chers et donc potentiellement des téléphones répandus.

Quoi qu’il en soit, le chiffrement par défaut sous Android est en marche, il ne reste plus qu’à attendre pour voir si les constructeurs feront les efforts nécessaires pour suivre les recommandations de Google.

Source