16/09/2024

Scripting

Active DirectoryPowerShell

Créer des comptes utilisateurs par lot avec PowerShell v2 et le module Active Directory Server 2008 R2

I. Présentation Le module  Active Directory Server 2008 R2 a fait son apparition dans Windows Server 2008 R2. Il est installé en même temps que le rôle Contrôleur de domaine Active Directory. Le module Active Directory apporte deux choses : un fournisseur  ainsi qu’un ensemble de commandlets. Grâce à ce module, il est désormais possible d’administrer en ligne de commandes PowerShell les rôles « Active Directory Domain Services (AD DS) » et « Active Directory Lightweight Domain Services (AD LDS) ». Prenons l’exemple d’une problématique courante qui consiste à ajouter  plusieurs utilisateurs Active Directory : Au moyen de l’interface graphique Windows cette tâche requiert aujourd’hui un ensemble de clics de souris pour chaque utilisateur créé. Les informations doivent être saisies à plusieurs reprises  d’où un risque d’erreurs accru.   II. Procédure Pour répondre à cette problématique nous pourrions imaginer la création d’un fichier Excel où chaque ligne contiendrait la description d’un utilisateur, et en particulier les champs suivants : Name : nom de l’objet (il s’agit du nom visible dans

Lire cet article
PowerShell

PowerShell – Contourner le système DynDns

I. Présentation Il y a plus d’un an, Mickaël vous présentez un article qui expliquait comment contourner le système DynDns sous Linux. Comment ? En créant un script bash qui vous envoie votre adresse IP publique par e-mail à chaque fois que cette dernière change. Désormais, je me colle à l’équivalent sous Windows avec l’utilisation de PowerShell. Le système DynDns étant devenu payant, cela peut être intéressant de recevoir l’IP de sa box par mail lorsque cette dernière change afin de pouvoir continuer à se connecter à distance sans difficulté. II. Code et explications Comme son nom l’indique, la première section définie les constantes, cela vous permet de « configurer » en quelques sortes le script en définissant des valeurs à la main pour certaines variables. # Constantes $FileIP1 = « C:\CheckIp\IP1.txt » $FileIP2 = « C:\CheckIp\IP2.txt » $Pwd = « mot-de-passe » $Mail = « expediteur@mail » $To = « destinataire@mail » $SmtpServer = « serveur.smtp » $SmtpPort = « 587 » Voici les informations nécessaires à la compréhension des différentes constantes : – FileIP1

Lire cet article
PowerShell

Mettre à jour l’aide de PowerShell

I. Présentation La création de scripts en PowerShell passe automatiquement par la consultation de l’aide afin d’en apprendre plus sur les différents commandlets, notamment pour connaître les paramètres proposés et obtenir quelques exemples d’utilisations. Cette aide est tenue à jour par Microsoft et nécessite d’être mise à jour de temps en temps afin de disposer du maximum d’information. Pour faire cette mise à jour, vous devez bien entendu être connecté à internet puisque la mise à jour s’effectuera chez Microsoft. II. Mise à jour de l’aide Ouvrez une console PowerShell et saisissez la commande suivante : Update-Help Appuyez sur Entrée pour valider. Patientez pendant la mise à jour des fichiers d’aide. L’aide est sauvegardée sous la forme de fichier .cab et .xml sur votre machine. III. Consulter l’aide en ligne Pour consulter directement l’aide concernant une commande en ligne, il suffit d’ajouter le paramètre « -Online » lors de l’utilisation du commandlet « Get-Help » (qui permet d’obtenir de l’aide sur un commandlet). Ce

Lire cet article
Administration RéseauBatchCommandes et Système

Qu’est ce que le traceroute ?

I. Présentation Dans ce tutoriel, nous allons voir qu’est ce que le traceroute, un utilitaire souvent utilisé sous toute distribution qui permet de suivre et de retracer le chemin d’un paquet d’un point A à un point B sur un réseau LAN comme sur internet. Nous verrons comment un traceroute fonctionne, les différences entre les principaux OS et les limites de cet outil. II. Traceroute: qu’est ce que c’est ? Comme dit précédemment, traceroute est un outil qui va permettre, à partir d’un poste A, de suivre le chemin qu’emprunte une communication vers un point B. On dit souvent que « ça passe par Internet » mais nous pouvons avoir des informations plus précises. Traceroute est aussi utilisé dans les réseaux d’entreprises pour connaitre le chemin qu’utilise les flux au sein des réseaux. On peux imaginer une utilisation lors de la configuration d’un protocole de routage par exemple. III. Comment ça fonctionne Techniquement, traceroute a un fonctionnement assez logique. Il utilise le

Lire cet article
BatchSystème

Auto-montage des VHD/VHDX sous Windows

I. Présentation Windows offre la possibilité de créer et d’utiliser des disques durs virtuels, il est alors possible de les attacher au système pour y accéder et les utiliser comme un disque dur classique. Le problème/inconvénient, c’est qu’à chaque redémarrage de la machine les disques durs sont démontés du système, il faut donc les attacher/monter à nouveau. Lourd en terme d’administration… Nous allons voir dans ce tutoriel comment remédier à ce problème simplement grâce à un script faisant appel à l’utilitaire DiskPart. Avant de commencer ce tutoriel, créez vos disques VHD/VHDX si ce n’est pas déjà fait. Me concernant, je monte deux disques virtuels VHD appelés « disk1 » et « disk2 » II. Création du script Le script sera décomposé en deux fichiers : – Un fichier .bat contenant un appel DiskPart – Un fichier .txt contenant les commandes à saisir dans DiskPart Le fichier .bat exécutera DiskPart qui appellera lui-même le fichier .txt contenant les commandes à exécuter. A. Le fichier .bat

Lire cet article
PowerShellSystème

NIC Teaming avec Windows Server 2012

I. Présentation Le NIC Teaming appelé aussi association de cartes réseaux est une fonctionnalité très intéressante disponible sous Windows Server 2012. Elle permet de fournir une tolérance aux pannes au niveau des cartes réseaux ainsi que d’effectuer de la répartition de charge sur les différentes cartes faisant partie de l’équipe. De plus, les performances sont meilleures également grâce à l’agrégat de bande passante.  Pour parvenir à cela, les cartes réseaux vont fonctionner en équipe pour assurer la continuité de la connectivité. Ainsi, si vous disposez de deux cartes réseaux 10 Gbit/s et que vous créez une équipe avec ces deux cartes, l’agrégat de bande passant vous offrira un débit de 20 Gbit/s (théorique). Il est possible de mettre en place le NIC Teaming au sein d’un ordinateur virtuel, chaque carte réseau virtuel étant reliée à un commutateur virtuel différent, qui lui aura d’attribué une carte réseau physique différente afin d’assurer la redondance des liens. Il est également de créer une

Lire cet article
Batch

Changer le titre de la fenêtre DOS en cours

I. Présentation Le titre par défaut d’une fenêtre DOS n’est pas très original pour ne pas dire banal. En effet, elle est nommée « C:\Windows\system32\cmd.exe ». Nous allons qu’il est possible très simplement de changer le titre de la fenêtre DOS en cours, de quoi donner un nom plus sympa à votre fenêtre de scripts. II. Procédure Après avoir ouvert une Invite de commandes, saisissez la commande suivante : title Neoflow.fr Vous n’avez qu’à ajouter votre titre après la commande « title » et le tour est joué ! Regardez :

Lire cet article
Bash

Tableau simple en bash

I. Présentation Dans ce tutoriel, nous allons apprendre à faire des tableaux simples dans le language de script bash. Nous verrons comment les initialiser puis comment les parcourirs. II. Initialisation du tableau bash Chaque case (ou valeur) présente dans un tableau sera initialisée de la façon suivante : nom_tableau[Numéro]=valeur Nous allons donc mettre la valeur « bonjour » dans la case numéro « 0 » (la première) du tableau « tab » de la façon suivante : tab[0]= »bonjour »; Nous pourrons, en continuant notre numérotation remplir peu à peu notre tableau : tab[1]= »Au revoir »; Note : les tableaux commencent par 0 en bash III. Lecture simple Pour lire les valeurs et les différentes cases d’un tableau, il nous faut faire de la même manière que pour une variable simple mais en spécifiant le numéro de la case voulue, comme suivant : echo $tab[1]; Nous aurons alors en retour « Au revoir » qui est le contenu de la case 1 du tableau « tab ». IV. Parcours du tableau avec une

Lire cet article
BashCommandes et Système

Marquer un temps d’arrêt en bash avec SLEEP

I. Présentation Dans ce tutoriel, nous allons apprendre à marquer un temps d’arrêt dans un script bash. Ce peut être une pratique utile dans beaucoup de cas différents. On peut par exemple lancer une commande de lancement d’une machine virtuelle puis vouloir faire une vérification afin de voir si celle-ci est bien démarré. On voudra alors marquer une temps d’arrêt entre le lancement et la vérification pour attendre que la VM ai bien démarré. Ce cas est un exemple parmis beaucoup d’autres. II. La commande « sleep » Nous allons pour le tutoriel utiliser « sleep » de manière très simple comme suivant dans un script bash appelé « script.bash » : #!/bin/bash date echo « étape 1 : » ; sleep 10 date echo « étape 2 :  » ; Nous rendons ensuite exécutable notre script : chmod +x script.sh Puis nous l’exécutons : ./script.sh Voila la sortie que nous en aurons : On voit donc bien que le « 10 » correspond à une attente de 10 secondes. Essayons

Lire cet article
Batch

Détecter un périphérique en fonction d’un fichier

I. Présentation Si vous souhaitez exécuter un script qui effectuera une action entre la machine et une clé USB par exemple, il faudra vérifier le script avant chaque exécution pour voir si la lettre indiquée dans le script correspond à la lettre du lecteur de votre clé USB. Du coup, c’est un peu ennuyeux de devoir faire cela à chaque fois que vous changez de machine. Pire encore, imaginez que ce script sera utilisé par des personnes qui ne connaissent pas grand chose en informatique et qui ne sont pas capables de vérifier la cohérence du script, vous faites comment ? Nous allons voir dans ce tutoriel une solution qui consiste à accéder aux différentes lettres de lecteur disponible jusqu’à trouver un fichier précis, qui devra être indiqué dans le script. Dès que ce fichier sera trouvé sur le périphérique, le script se dira « J’ai trouvé le lecteur sur lequel je dois effectuer l’opération, je peux donc commencer ». Ce script

Lire cet article
BashCommandes et Système

Trier des fichiers selon une date avec FIND

I. Présentation Dans ce tutoriel, nous allons apprendre à tirer et à agir sur des fichiers et des dossiers selon une date. Cela pourra être leur date de création, de modification ou de dernier accès. Nous pourrons effectuer plusieurs actions sur ces données une fois que nous saurons les trier. II. Les options FIND Pour ce faire, nous allons nous aider de la commande « find » qui sert à lister et trier des fichiers selon certaines options. Nous pouvons en effet avec FIND définir le nom ou une partie du nom de ce que nous cherchons ( option « -name < > »), définir sur combien de niveau (arborescence) on souhaite chercher ( option « -maxdepth < > »), depuis où, etc … Par exemple si nous souhaitons chercher toutes les archives faites dans le dossier « /var/log » qui sont plus âgées que 5 jours : find /var/log/ -maxdepth 3 -name « *gz* » -ctime +5 Explication : « /var/log » : indique le répertoire ou nous allons chercher. Nous

Lire cet article
PowerShell

Introduction à PowerShell

I. Présentation Vous l’aurez peut-être aperçu sur votre Windows 7 au détour d’un menu ou dans la barre des tâches de votre Windows Serveur 2008. Powershell est le grand frère de notre cmd.exe (batch). Il fonctionne sur les plateformes Microsoft depuis XP SP3 et 2003 serveur SP2 (KB à télécharger + Framework .NET 2.0 SP1 requis) et est intégré nativement dans Windows 7 et Windows 2008 serveur. C’est un langage de script orienté objet performant et très riche puisqu’il s’appuie sur les composants du Framework .NET de Microsoft, des objets COM et WMI. L’extension d’un script Powershell est « .ps1 ». Vous le trouverez sous le menu Démarrer > Accessoires > Outils Système > Windows PowerShell Powershell dispose d’une aide embarquée que vous pouvez appeler par la commande « Get-Help » : Get-Help commande La liste des commandes de base est disponible via « Get-Command ». Powershell est capable d’utiliser des alias de commandes afin de raccourcir les lignes de

Lire cet article