Ma méthode pour les stations « lentes »

Les postes de travail ont un sujet récurrent : ils sont jugés trop lents. Il faut déjà faire la part entre l’impatience de l’utilisateur et ce qu’on demande à la machine. Le plus souvent, cela concerne les ordinateurs portables, qui ont des ressources plus limitées que les fixes (quoique la frontière se réduise de plus en plus). Il se trouve aussi, que les portables sont souvent attribués à des « VIP », dont on écoute plus volontiers leurs problèmes, y compris l’impatience.

Quand je dois traiter ce type de sujet, voici les éléments que je vérifie par ordre. Je chronomètre à chaque fois le temps de boot + ouverture de session comme temps de référence.

  1. Bios: est-ce que le mode ahci/raid est activé ? (attention à certains disques SSD qui n’aiment pas le mode raid pour le trim)
  2. Supprimer les anciens profils itinérants avec delprof.exe + lancer une defrag
  3. Vérifier que la carte réseau ethernet et bien avant la carte Wifi & co (si la station passe par le réseau ethernet)
  4. Vérifier que la partie réseau n’a pas de problème (100Mb/s full duplex, pas de collision sur le port..)
  5. Lancer Autoruns de Sysinternals. Nettoyer certains programmes non indispensables (Java updater, Adobe speed Launcher…)
  6. Vérifier la version des pilotes & bios. Cela inclus les utilitaires constructeurs types lecteurs d’empreintes/smartcard.
  7. Vérifier la version du moteur antivirus. S’il est configuré pour faire un full scan au boot, le désactiver au moins temporairement.
  8. Lancer un autre moteur antivirus/antispyware autre (par exemple housecall qui est gratuit).
  9. Lancer Process monitor en mode « boot logging« .
  10. Vérifier le plan d’économie d’énergie. S’il n’est pas par défaut ou modifié par le constructeur, le remettre par défaut.
  11. S’il s’agit d’un profil itinérant, vérifier la taille et le débit réseau vers le serveur de fichier l’hébergeant (avec Wireshark sur le chemin).
  12. Prendre un autre portable, avec le même matériel. Y installer Windows manuellement (sans utiliser de master). Installer le minimum nécessaire et comparer les temps.

 

Avec cette méthode, j’ai déjà réussi à faire chuter le temps de boot+ouverture de session de 1mn30 à 45 secondes.

Si vous utilisez d’autres pistes avec succès, n’hésitez pas à m’en faire part dans les commentaires!

Sécuriser son Windows dans le cloud (Dedibox/Amazon…)

Suite  à mon retour vers Dedibox, et le fait que j’y installe du Windows, je me suis demandé ce que je pouvais faire pour la sécuriser.

Voici les pistes envisagées:

  • Pas de port TCP accessible directement. Passer donc par exemple avec LogMeIn, au moins pendant la configuration. L’accès idrac n’est pas assez fluide et simple d’accès.
  • Renommer le compte Administrateur via GPedit
  • Interdire l’affichage du dernier compte authentifié via GPedit.
  • Ajouter un disclaimer, toujours via GPedit. Cela n’arrêtera pas un pirate motivé, mais peu suffire à bloquer certains logiciels de brute force RDP.
  • Autoriser RDP mais:
    • Sur un port TCP non standard. Procédure Microsoft : http://support.microsoft.com/kb/306759/en-us/
    • Utiliser le firewall Windows pour autoriser l’accès uniquement depuis certaines IP fixes. Pour y accéder depuis ailleurs, d’abord se connecter en LogMeIn pour modifier la règle firewall.
    • Autoriser uniquement les clients permettant une authentification réseau.
  • Scanner régulièrement les adresses IP depuis l’extérieur avec nmap pour vérifier ce qui est visible.
  • Appliquer les mises à jour Windows dès leur sortie.

Dedibox: Nat de VM Hyper-V

Suite au retour sur Dedibox, j’ai décidé d’utiliser Hyper-V plutôt que VMware pour la virtualisation. Les adresses IP publiques sont facturées chez Online.net, et d’autre part je ne veux pas que certaines VM soient exposées sur Intrenet (DC, Exchange…).

Par défaut, Hyper-V ne permet pas de faire du Nat, et donc cacher tout se beau monde tout en leur donnant accès à Internet.

Voici les grandes étapes:

  • Installer le rôle Network Policy and Access Services
  • Créer un réseau interne dans Hyper-V
  • Assigner une adresse IP fixe (ex 192.168.1.1) sur la carte réseau du réseau ainsi crée (carte virtuelle Hyper-V)
  • Configurer Routing and Remote Access pour faire du NAT
  • Configurer les VM afin d’utiliser le réseau virtuel Hyper-V et de passer en DHCP ou IP fixe suivant vos souhaits.

Ajouter le rôle

Configurer le NAT

Test nouvelle Dedibox (R410)

Je n’ai pas pu résister à l’appel des nouvelles offres Dedibox !

Les plus fervents lecteurs savent que j’ai déjà par le passé utilisé leur serveurs avant de basculer chez Amazon.

Sauf que là, le rapport puissance/qualité reprends le dessus en version serveur dédié. 24Go de ram, 16 coeurs logiques et 2To. L’arme de destruction massive reste l’idrac, qui permet enfin de faire ce que l’on veut avec son serveur 🙂

Commande du serveur

Depuis l’interface Web, commande faite en quelques clics. Premier stress, rupture de stock (message du premier écran). Anyway, je prends quand même, quitte à patienter 7 jours. Bizarre, sur l’écran suivant, on m’indique qu’il y a du stock (30), et que je vais en avoir une tout de suite 🙂 Ca n’a pas raté, 10mn seulement après la commande, mon serveur tout chaud est sorti du four !

KVM KVM KVM

Tel un chercheur d’or, je me mets en quête de mon idrac immédiatement. Bon, en fait il faut déployer un serveur, même bidon, pour que le menu magique apparaisse. Ce qui peut tromper, c’est le menu rescue, qui propose un kvm virtuel (vnc), qui n’a rien à voir avec un idrac de dell. Pour les lecteurs pressés, c’est ici qu’il faut aller:

Ensuite, on a accès à l’interface Web de Dell pur jus. On lance le KVM Dell (Java), et il suffit de monter un .iso local ou donner accès à un lecteur DVD/virtuel clone drive.

La question est : Est-ce que le débit va être au rendez-vous pour déployer un OS (au hasard, Windows) ? La réponse est OUI. Avec mon accès fibre Orange, je pousse facilement l’ISO à traver idrac à 5Mb/s.

Stockage

La question qu’on peut se poser est: Comment est configuré le raid ? En raid 1. Du coup on voit environ 1800Go:

La suite prochainement 🙂

PowerShell: Measure-Command et Write-Output

Measure-Command permet de mesurer le temps d’exécution d’un bloc de code PowerShell, de façon simple et efficace. Cependant, cela génère une contrainte:

Measure-Command n’affiche aucun write-output à l’écran!

Il faut alors utiliser par exemple write-host, qui lui envoi le texte directement à la console, et n’est donc pas impacté. Utiliser write-host peut générer des impact:

  • Une redirection de la sortie écran vers un fichier ne fonctionnera pas ( > monlog.txt).
  • L’ordonnanceur ORSYP ne gère pas bien les sorties faites par Write-host, alors que les write-output ne posent pas de problème

Voici un script pour illustrer le sujet (ou à télécharger ici lotp_test_measure-command):

#******************************************************************************
#
#
Titre: lotp_test_measure-command.ps1
#
#
Description: test de measure-command
#
#
Prérequis: désactiver la signature des scripts PowerShell: Set-ExecutionPolicy remotesigned
#
#
Auteur: Mathieu Chateau – LOTP
#
mathieu.chateau@lotp.fr
#
Version: 0.1
#
******************************************************************************

#purge de l’écran
Clear

#Objectif du script: stocker plusieurs valeurs pour chaque ligne du tableau

Write-Output « Test 01: fait un sleep de 2s dans un measure-command« 
$temps=Measure-Command { sleep -Seconds 2}
Write-Output « temps d’exécution du test 01: $temps« 
Write-Output « ############« 

Write-Output « Test 02: fait un write-output dans un measure-command« 
$temps=Measure-Command {Write-Output « ce message est supprimé par measure-command, vous ne le verrez pas« }
Write-Output « le message n’est pas apparu mais la commande est exécutée quand même« 
Write-Output « temps d’exécution du test 02: $temps« 
Write-Output « ############« 

Write-Output « Test 03: fait un write-host dans un measure-command« 
$temps=Measure-Command {Write-host « ce message est envoyé à la console, vous le voyez même dans un measure-command« }
Write-Output « temps d’exécution du test 03: $temps« 

Powershell : tableau multidimensionnel (array de array)

J’ai dû récemment stocker des valeurs dans des tableaux (array) multidimensionnel en PowerShell. J’ai quelques peu galéré, et je me suis dit que je ne devais pas être le seul. Mes recherches d’infos via Google ne ramenaient pas grand chose, il est donc temps d’y remédier… 🙂

L’objectif est de stocker plusieurs ensembles de valeurs dans un tableau, afin de pouvoir les appeler dans une boucle for.

Ce qui m’a induit en erreur: Si on ne met pas une virgule au départ, cela ne fonctionne pas….Sauf si on met plus d’un élément lors de l’initialisation du tableau de tableau…Tout se complique quand on change et ne met plus qu’un seul élément… Patatras!

Voici un script qui explicite les différents cas, le dernier étant celui qu’il faut utiliser:

Egalement en téléchargement ici: lotp_test_array_of_array

#******************************************************************************
#
# Titre: lotp_test_array_of_array.ps1
#
# Description: test sur des array
#
# Prérequis: désactiver la signature des scripts PowerShell: Set-ExecutionPolicy remotesigned
#
# Auteur: Mathieu Chateau – LOTP
# mathieu.chateau@lotp.fr
# Version: 0.1
#******************************************************************************

#purge de l’écran
Clear

#Objectif du script: stocker plusieurs valeurs pour chaque ligne du tableau
Function afficherTableau($array)
{

for ($i=0;$i -lt $array.Length;$i++)
{
Write-Output « boucle N°: $i »
Write-Output $array[$i][0]
Write-Output $array[$i][1]
Write-Output $array[$i][2]
Write-Output « ——–« 
}

}

#Ce tableau ne fonctionne pas du tout comme prévu (il manque la virgule au début pour cela)
$tableauMauvais=(« Mathieu »,« Chateau »,« mathieu.chateau@lotp.fr »)
Write-Output « Affichage mauvais tableau »
afficherTableau $tableauMauvais

#Ce tableau fonctionne mais la construction n’est pas correcte (pas de virgule au début, mais ok car 2 éléments)
$tableauPasCorrect=(« Mathieu »,« Chateau »,« mathieu.chateau@lotp.fr »),(« Microsoft »,« Réseau »,« Sécurité »)
Write-Output « Affichage tableau qui fonctionne mais mal construit »
afficherTableau $tableauPasCorrect

#Tableau multidimensionnel construit correctement
#creation du tableau avec un seul élément (virgule avant la parenthèse)
$tableauCorrect=,(« Mathieu »,« Chateau »,« mathieu.chateau@lotp.fr »)
#Ajout d’un élément
$tableauCorrect+=,(« Microsoft »,« Réseau »,« Sécurité »)
Write-Output « Affichage tableau qui fonctionne et bien construit »
afficherTableau $tableauCorrect

Pour la coloration syntaxique dans le blog, j’ai utilisé le script PowerShell proposé ici:
http://helgeklein.com/blog/2010/01/syntax-highlighting-powershell-code-in-html-with-a-powershell-script/

Wireshark: traces du PopCorn Hour

Maintenant que j’ai un PopCorn sur le réseau, j’ai voulu voir son impact sur mon réseau local:

  • 160 paquets au boot sur 1 mn 30

Il génère principalement du multicast DNS (mDNS), et du SSDP. Désactiver le protocole propriétaire myihome permet de réduire pas mal les messages mDNS.

Surprenant, mon PC se met à l’interroger en UDP toutes les 30 secondes, sur le port 427 (srvloc), mais le PopCorn n’écoute pas sur ce port:

TCPView permet de voir le processus à l’écoute sur mon PC, mais il affiche juste le conteneur, svchost:

wireshark_popcorn_tcpview

Process Explorer permet de venir à bout de l’énigme:

wireshark_popcorn_procexp

C’est donc le pilote HP de mon imprimante réseau qui envoi des requêtes au PopCorn. Bien que celui-ci réponde par un message icmp qu’il n’écoute pas ce port, HP continue… Argh!

Voici un filtre Wireshark pour trouver rapidement un boitier PopCorn sur le réseau:

http.server contains "Syabas myiBox"

Windows Server 2008 R2 – Administration avancée est sorti!

La nouvelle version du livre pour Windows Server 2008 R2 est disponible chez ENI, toujours à la fois en livre papier et numérique

Il s’applique toujours à la version précédente, car on a spécifié quand c’est R2 seulement. Il inclut également un nouveau chapitre dédié à la haute disponibilité

WDS/MDT: enlever F12

Par défaut, pour démarrer depuis le réseau via WDS, il faut:

  • Indiquer pendant le bios de démarrer sur le réseau (F12 en général)
  • Une fois le bail DHCP obtenu, il faut de nouveau et rapidement presser F12 pour vraiment démarrer sur le réseau

Cette deuxième confirmation est une sécurité. Si l’ordre de boot positionne le réseau avant le disque dur, les machines essaieront tout le temps de démarrer via le réseau avant le disque dur. En général, on démarre sur le réseau uniquement pour installer le système d’exploitation, et ensuite tout le temps depuis le disque dur.

Moyennant d’avoir les bios correctement configurés, le deuxième F12 est en trop. Depuis WDS (2003 et 2008), il suffit de remplacer pxeboot.com par pxeboot.n12 pour supprimer le deuxième F12:

Pour rattraper un historique sur un parc existant, Dell et HP offre des outils centralisés pour paramétrer le bios des machines à distance (génération d’un exécutable à télé-distribuer en général):