Archives par étiquette : Powershell

Remplacer PowerShell ISE par Visual Studio Code

Avec l’arrivée sur Powershell Core 6.0 disponible ici, le nouvel éditeur PowerShell recommandé est Visual Studio Code. Mais certains ont du mal à retrouver leurs petits par rapport à Powershell ISE, alors voici un petit article qui va vous aider à vous y retrouver.

Installation

La source est disponible sur le site https://code.visualstudio.com/  Visual Studio Code est cross platform, il est disponible pour Windows mais aussi MacOs et Linux

Si vous utilisez MacOs ou Linux, il vous faudra installer le PowerShell Core disponible à l’adresse suivante :

https://github.com/PowerShell/PowerShell

Continuer la lecture

Powershell: Cacher l’exécution d’un script powershell

Si vous voulez cacher l’exécution d’un script powershell ou même d’un programme, voici une méthode simple. Pour cela on va passer par un script vbs. En effet l’interpréteur wscript, n’affiche pas de fenêtre d’exécution par défaut, contrairement à l’interpréteur cscript ou powershell. L’intérêt c’est que l’utilisateur ne voit pas l’exécution d’un script ou processus quel qu’il soit. Cela peut être utile pour cache un script de démarrage, une tache planifiée, une publication CITRIX ou RDS.

Pour nos tests on va utiliser un script en powershell pour afficher une fenêtre toute simple :

Voici ce qu’on veut cacher l’interpréteur powershell avec son fond bleu disgracieux :hide-powershell1-4

Continuer la lecture

Powershell : remonter les utilisateurs par processus Query-app

Souvent quand on fait un audit d’un environnement nous avons besoin d’avoir les informations, combien d’utilisateurs utilisent une application serveur, par exemple dans une session Remote desktop ou Citrix. Selon la version du système de publication utilisé, bureau ou application les outils sont différents. Là je vous propose une fonction universelle qui vous permettra d’avoir une remontée sur tout système. Dans cette fonction nous aurons en entrée ordinateur requeté et application, puis en sortie ordinateur, application, utilisateur, mémoire utilisé, à quelle heure l’application à démarrer, l’heure de la requête et le chemin où se trouve l’application.

Dans un premier temps nous allons utiliser le WMI avec la classe Win32_Process

Exemple sur un processus :

get-app-1sur11

get-app-2sur11

Continuer la lecture

Powershell test de version de Hyper-V

Alors cette semaine je suis tombé sur un problème simple, savoir quelle version d’Hyper-V est présente sur le serveur. J’avais besoin de ce contrôle car selon la version d’Hyper-V j’aurai une création différente de ma VM. Par exemple une VM Linux n’a pas les mêmes besoins qu’une VM Windows Server 2012. Alors nous avons plusieurs solutions
La première est de vérifier la version du service de gestion d’ordinateurs virtuels

pw_hp_ver1sur10

Là on peut faire d’une pierre deux coups car on connaît la version d’Hyper-V et si le service est bien présent :

pw_hp_ver2sur10

La seconde en WMI(celle que nous utiliserons ici) et de faire une requête au niveau classe Win32_operatingSystem puis je récupère par exemple la propriété versioninfo puis Version exemple ci-dessous :

pw_hp_ver3sur10

Ou aussi avec WinRm

pw_hp_ver4sur10

Ensuite on peut en déduire par le numéro de version avec les 2 premiers chiffres :

NuméroVersion
6.0Hyper-V 2008
6.1Hyper-V 2008 R2
6.2Hyper-V 2012
6.3Hyper-V 2012R2
10.0.10586Hyper-V 2016 ou Hyper-V Windows 10

Et bien oui on est sur la même version du noyau en Windows Server 2016 TP4 et Windows 10. Surprise 😛 . En fait c’est lié à la virtualisation imbriquer. J’explique ici pourquoi: Windows 10 Build 10565 : La virtualisation imbriquée

pw_hp_ver5sur10

Moi dans le fond ça me ne dérange pas mais ça ne me dit pas tout ça si le rôle Hyper-V est installé. Je vais connaitre uniquement par cette méthode la version du système d’exploitation.
Bon là encore une fois je pourrais attaquer la classe WMI pour avoir l’information. Alors je pourrai utiliser la classe Win32_ServerFeature

pw_hp_ver6sur10

La seule chose c’est que la classe WMI Win32_ServerFeature n’existe pas sur Windows 10 et moi j’aime bien les scripts font papa maman 😀
Par contre on peut utiliser un test sur compteur de performance Hyper-V, et bien oui si le rôle n’est pas installé la classe WMI ne sera présente. Par exemple on peut utiliser la class Win32_PerfFormattedData_HvStats_HyperVHypervisor
Voilà un exemple pour une machine sans Hyper-V, nous avons un code retour d’erreur

pw_hp_ver7sur10

Avec une machine avec Hyper-V

pw_hp_ver8sur10

Là il va falloir dégainer le try et le catch :

Voilà deux exemples :

Hyper-V non présent :

pw_hp_ver9sur10

Hyper-V présent :

pw_hp_ver10sur10

J’ai ajouté trois tests. Avant l’exécution du code je vérifie si la machine est bien en ligne avec un Ping, ensuite les accès WMI sont bien possibles et pour finir on recherche si le compteur de performance Hyper-V est bien présent.

Pour le ping tout est expliqué ici:

Powershell teste de vérifications : Première partie Ping

Exemple:

pw_hp_verBonus

 

Powershell teste de vérifications : Première partie Ping

En général avant d’exécuter un script nous avons besoin d’exécuter différents tests, par exemple est ce qu’un élément est bien en ligne, le service WMI répond ou un port ouvert. Cela évite de mauvaises surprises dans les scripts.

Voici une longue série sur les différents tests à faire avant d’exécuter un script. Cette première partie traitera du test de la connexion avec le Ping (ICMP)

Pour faire un ping cela se passe avec Test-Connection

powershell_test_1sur7

Afin de l’optimiser nous pouvons faire un seul test au lieu de 4 avec le paramètre -Count 1

powershell_test_2sur7

Continuer la lecture

Powershell Création de compte de test Active Directory en masse

Voici un script qui vous permettra de créer des compte de test Active Directory en masse

Voici un exemple:

Sur on veut créer des utilisateurs de user_lab1 à 5

userlab1sur3

Il y aura une gestion de l’erreur qui remontra que le compte existe

userlab2sur3

J’ai intégré aussi un mode Verbose

userlab3sur3

Windows Server Technical Preview: Quoi de neuf dans Hyper-V

10

Nous allons voir ici les nouveautés de Windows Server Technical Preview, je me suis basé sur la page http://technet.microsoft.com/fr-fr/library/dn765471.aspx

Certaines fonctionnalités présentées sur la page ont besoins d’un complément d’information par rapport à ce qui est présenté sur la page Technet, j’en ai profité pour toutes les tester.

 

Continuer la lecture

HYPER-V Powershell Création de clone lié de masse

Voici un Script de création de masse que j’utilise pour provisionner mes machines virtuelles dans mon lab. En effet si vous avez lu le post précédent :

http://tazmenworld.com/hyper-v-creation-dun-clone-lie-ou-differenciation/#more-633

et bien pour une machine ça va mais quand vous en avez 10 et bien ça prend du temps. Alors j’ai fait un script ce matin pour ça.

et la source du fichier CSV, nommé le NewVm.csv