Try   HackMD

Module Powershell

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Sommaire:

  1. Prise en main de Windows PowerShell
  2. Installation et configuration des roles ADDS et du DC
  3. Installation et configuration d’un serveur Replicat
  4. Intallation et configuration du role DNS
  5. Installation et configuration du role DHCP

I - Prise en main de Windows PowerShell

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

  • Windows PowerShell est un interpréteur de ligne de commande Windows spécialement conçu pour les administrateurs système.

  • Windows PowerShell inclut une invite interactive et un environnement de script utilisables indépendamment ou conjointement.

  • Windows PowerShell introduit le concept d’applet de commande, outil en ligne de commande simple, à fonction unique, intégré dans l’interpréteur de commandes.

Vous pouvez utiliser chaque applet de commande séparément, mais la puissance de ces outils simples s’exprime pleinement quand vous les combinez pour effectuer des tâches complexes.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Installer la dernière version de PowerShellGet
Install-PackageProvider -Name NuGet -Force
Install-Module -Name PowerShellGet -Force
Update-Module -Name PowerShellGet

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Windows PowerShell inclut plus d’une centaine d’applets de commande de base.

Vous pouvez écrire vos propres applets de commande et les partager avec d’autres utilisateurs.

Windows PowerShell permet d’accéder au système de fichiers sur l’ordinateur,les fournisseurs Windows PowerShell permettent d’accéder à d’autres magasins de données, tels que le Registre et les magasins de certificats de signature numérique, aussi facilement qu’au système de fichiers.

Configuration requise pour Windows PowerShell

Windows PowerShell 5.1
Windows PowerShell 5.1 s’exécute sur les versions suivantes de Windows. Pour exécuter Windows PowerShell 5.1, installez Windows Management Framework 5.1. Pour plus d’informations, voir Installer et configurer WMF 5.1.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Configuration requise de l’interface graphique utilisateur

  • Windows PowerShell est une application de console qui ne nécessite pas d’interface graphique utilisateur. Elle est particulièrement adaptée aux ordinateurs qui n’ont pas d’écran, de moniteur ou d’interface utilisateur, notamment avec les options d’installation minimale de Windows Server 2012 R2 ou Windows Server 2012.

Comment vérifier la version de PowerShell

  • Pour trouver la version de PowerShell que vous avez installée, démarrez une console PowerShell (ou l’ISE), puis tapez $PSVersionTable et appuyez sur Entrée. Recherchez la valeur PSVersion ou dans ette version GET-WUAVersion. Nous voyons la version 10.0.18362.387

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  • Le bloc du haut (en rouge) : c’est l’espace dédié à l’écriture du code. Ici, il n’y a qu’un script ouvert. Si plusieurs scripts sont ouverts dans la même fenêtre PowerShell ISE, ils apparaîtront dans de nouveaux onglets.

  • Le bloc du bas (en orange) : il sert à exécuter du code exactement comme dans l’interpréteur de commande vu précédemment, mais sert aussi à visualiser les retours du code lorsqu’il est lancé depuis PowerShell ISE via le bouton “Exécuter le script” (raccourci : touche F5).

  • Le bloc de droite (en vert) est très utile car il contient toutes les commandes PowerShell ainsi que leurs descriptions, leurs paramètres, leurs syntaxes, les entrées et sorties, etc. Il est possible dans ce menu de rechercher une commande en particulier.

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  • Tips et raccourcis clavier
    Auto-complétion : comme tous les langages, PowerShell fournit une commande d’auto-complétion pour faciliter et accélérer l’écriture du code. Si vous êtes au milieu d’une ligne de code, vous avez la possibilité d'appuyer sur la touche « Tab », et la commande que vous écrivez va se compléter automatiquement. Si ce n’est pas la commande que vous désirez, vous avez la possibilité d’appuyer à nouveau sur Tab pour faire défiler toutes les possibilités de complétion pour votre commande. De plus, PowerShell nous permet d’afficher toutes les possibilités de complétions disponibles.

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  • Réexécuter du code : si vous voulez relancer une ligne de code déjà écrite précédemment sans avoir à la réécrire à nouveau, vous pouvez faire défiler toutes les anciennes commandes exécutées en appuyant sur la flèche du haut.

  • Copier-Coller : dans l'interpréteur de commande PowerShell, vous ne pouvez pas utiliser votre clavier pour faire un copier/coller. Pour ce faire, vous devez sélectionner la zone que vous voulez copier, et faire un clic droit sur celle-ci. La sélection disparaîtra et le bout de code sélectionné s'enregistrera dans le presse-papier. Pour coller, il vous suffit simplement de faire un clic droit à nouveau.

  • La touche F7 affiche l'historique de toutes les commandes tapées sous forme d'un tableau.

  • PowerShell n’est pas sensible à la casse, aux espaces et aux tabulations en trop.

  • Les commentaires se font par le biais du caractère "#" pour commenter une seule ligne et des caractères "<#" et "#>" en début et en fin pour commenter plusieurs lignes.

Les commandes (cmdlet)

Get-Help
Cette commande permet d’afficher l’aide en rapport avec une commande en particulier, Obtenir de l’aide sur une commande.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Get-Command
Permet d’afficher la liste de toutes les commandes PowerShell.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Get-Member
L'applet de commande Get-Member sert à récupérer les propriétés et les méthodes disponibles pour un objet spécifié. Pour l'exemple suivant, nous utiliserons le pipeline "|" que nous verrons un peu plus loin.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Get-ChildItem
Cette commande permet de lister tous les éléments contenus dans un répertoire (équivalent à la commande "ls" sous Linux ou "dir" sous Windows).

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Comme on peut le voir sur le screen ci-dessus, il y a une colonne « Mode » dans le résultat de la commande. Cette colonne indique le type du fichier courant.

Voici les différents types :

d : Répertoire

a : Archive

r : Elément en lecture seule

h : Elément caché

s : Elément système

Bien évidemment, les commandes possèdent plusieurs options pour des utilisations spécifiques. Etant donné que celles-ci sont assez nombreuses et extrêmement utiles, je vous invite à aller vous renseigner sur leurs fonctionnements.

Get-Location
Gérer les fichiers et les dossiers
Afficher le chemin du dossier courant

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Set-Location
Cette commande permet de changer de répertoire (équivalent à la commande « cd »). Pour ce faire, il suffit de mettre le chemin que vous voulez atteindre en paramètre de la commande, comme par exemple : « Set-Location C:\wamp »

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Get-ChildItem
Afficher la liste des dossiers et fichiers

Get-Service
Ces deux commandes permettent respectivement d’afficher la liste de tous les services Windows et la liste de tous les processus Windows.





Get-Process
Comme pour la commande Get-Service, il est possible ici de récupérer un processus en particulier lors de l'appel de la commande en spécifiant son nom.

New-Item
Permet de créer des fichiers et des dossiers.

  • Création d’un dossier:


  • Création d’un fichier:


Get-Credential

Cette commande est extrêmement utile lorsqu'on a besoin de s'identifier à quelque chose par le biais de PowerShell.

Présentation des pipelines

« Pipe-liner » consiste utiliser le résultat d’une commande en entrée d’une autre.
Exemple « Get-Childitem | more » renvoie à more le résultat de Get-Childitem.

Le pipeline PowerShell
Les pipelines constituent indubitablement le concept plus important utilisé dans les interfaces de ligne de commande.

Lorsqu’ils sont utilisés correctement, les pipelines réduisent l’effort lié à l’utilisation de commandes complexes et facilitent la visualisation du flux de travail pour les commandes.

Chaque commande dans un pipeline (appelée élément de pipeline) transmet sa sortie à la commande suivante, élément par élément.

Les commandes n’ont pas à gérer plusieurs éléments à la fois. Il en résulte une consommation réduite des ressources et la possibilité de commencer à recevoir la sortie immédiatement.


Script sous Powerhsell
Autoriser l'exécution de scripts
Si vous souhaitez connaître le mode actuellement utilisé, lancez la cmdletGet-ExecutionPolicy.


Pour changer de mode, il suffit d'utiliser la cmdletSet-ExecutionPolicy

À partir de maintenant, vous pouvez exécuter n'importe quel script.ps1

Importer des modules dans vos scripts
L'utilisation de module est parfois nécessaire afin de pouvoir profiter de certaines fonctions déjà existantes. Pour obtenir les modules chargés sur la machine, il suffit d'exécuter la cmdlet suivante

Get-Module

Si vous souhaitez en ajouter, vous pouvez lister les modules disponibles

Get-Module -ListAvailable

Import-Module

Import-Module -Name ModuleName

Lorsque vous avez identifié le module dont vous aurez besoin pour la rédaction de votre script, il vous suffira de l'importer via la cmdletImport-Module. Dans mon exemple ci-dessous, je décide d'importer le module Active Directory

Selon le système d'exploitation utilisé, vous aurez des modules différents entre Windows Server et Windows Workstation.

II - Installation et configuration des roles ADDS et du DC

Tout d’abord ont doit exécuter le logiciel PowerShell ISE en mode administrateur
Importer Active Directory pour qu’il soit reconnu dans PowerShell : Import-Module
ActiveDirectory

Désactivation du par-feu:
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
Configuration de l’adresse IPv4 du serveur:
New-NetIPAddress -InterfaceAlias “card1” -AddressFamily IPv4 -IPAddress 10.0.0.1 -
PrefixLength 8 -DefaultGateway 10.0.0.254 –InterfaceIndex 12

Set-NetIPInterface -InterfaceAlias “card1” -Dhcp Enabled

Set-DnsClientServierAddress - InterfaceIndex (Get-NetAdapter).ifIndex -ServerAddresses
(“10.0.0.1/8.8.8.8”)

Renommage du serveur afin d’identifier le serveur dans le réseau:
Rename-Computer -NewName SRV-PRIMARY -LocalCredential administrateur -Restart

  1. Contrôleur de domaine
    Installation de l’ADDS : Install-WindowsFeature -IncludeManagementTools -Name
    AD-Domain-Services

    Répliquât du contrôleur de domaine : Install-ADDSDomainController -
    DomainName Nom_forêt -installDNS : $True -Credential<Get-Credential>

I - Installation et configuration du roles ADDS et du DC
1 - Avant d’installer un controleur de domaine sur un windows serveur 2012 R2, il faut fixé l’ adresse ip grâce à la commande :
New-NetIPAddress -InterfaceAlias “Ethernet0” -AddressFamily IPv4 -IPAddress 10.9.0.5 -PrefixLength 24 -DefaultGateway 10.9.0.254

IPAddress sert à fixer l’adresse ip
PrefixLength fixe le masque
DefaultGateway exprime la passerelle

2 -On peut également renommer le PC grâce à la commande :
Rename-Computer -NewName DC2012 -LocalCredential administrateur -Restart

3 - On installe ensuite le rôle serveur Active Directory Domain Services :
Add-WindowsFeature AD-Domain-Services
Install-WindowsFeature -IncludeManagementTools -Name AD-Domain-Services

Ne pas oublier le paramètre « IncludeManagementTools » car par défaut les outils d’administration ne sont pas installés.
4 - La commande Get-WindowFeature AD-domain-services permet de vérifier si nous pouvons installer le rôle AD DS…

5- Configuration du serveur en tant que DC du domaine et installation du DNS en même temps :

Install-ADDSForest -CreateDnsDelegation:$false -DatabasePath “C:\Windows\NTDS” -DomainMode “Win2012” -DomainName “avisha.lan” -DomainNetbiosName “AVISHA” -ForestMode “Win2012” -InstallDNS

:$true

-LogPath “C:\Windows\NTDS”
-NoRebootOnCompletion :$false
-SysvolPath “C:\Windows\SYSVOL”

-Force :$true

J’ai séparer la commande car il y avait des problèmes lors de écriture de la commande sur hackmd…

6 - Pour vérifier que notre serveur est bien celui disposant des cinq rôles FSMO nous pouvons utiliser la commande netdom query FSMO /Domain AVISHA

7 - La commande Get -ADDomainController permet d’afficher les informations relatives du serveur.

III - Installation et configuration d’un serveur Replicat :

Installer un nouveau controleur de domaine dans ADDS :

Install-ADDSDomainController -NoGlobalCatalog:

falseCreateDnsDelegation:falseCriticalReplicationOnly:falseDatabasePath"C:\Windows\NTDS"DomainNameavisha.LANInstallDns:true
-LogPath “C:\Windows\NTDS” -NoRebootOnCompletion:
falseSiteNameDefaultFirstSiteNameSysvolPath"d:\Windows\SYSVOL"Force:
true

IV - Installation et configuration du role DNS

1 - J’ai déjà installer le servce DNS en même temps que la création de la forêt.
Sinon, on peut utiliser la commande : Install-WindowsFeature -Name DNS -IncludeManagementTools

2 - La création de la zone primaire du DNS a été créer lors de la création de la forêt.
Cette commande permet d’ajouter un nom et une adresse ip :
Add-DnsServerPrimaryZone -Name “avisha.lan” -zonefile “avisha.lan.dns” -DynamicUpdate -ReplicationScope “Forest”

Add-DnsServerPrimaryZone -NetworkID 10.9.0.5/24 -ZoneFile “0.9.10.in-addr.arpa.dns” -DynamicUpdate -ReplicationScope “Forest”

V - Installation et configuration du role DHCP :

1 - La commande Install-WindowsFeature permet d’installer les rôles :

Install-WindowsFeature -Name DHCP -IncludeManagementTools

Installations de rôles et fonctionnalités d’un serveur:
Rôle DHCP:
Install-WindowsFeature DHCP
Install-WindowsFeature DHCP DNS
Install-WindowsFeature DHCP DNS Routing
Install-WindowsFeature DHCP – IncludeManagementTools
Install-WindowsFeature -Name DHCP -IncludeManagementTools

3 - Création d’un nouvelle étendue :
Add-DhcpServerv4Scope -Name “EtendueAvisha” -StartRange 10.9.0.100 -EndRange 10.9.0.200 -SubnetMask 255.0.0.0
Add-DhcpServerv4Scope -Name “Part1” -StartRange 10.0.0.100 -EndRange 10.0.0.200 - SubnetMask 255.0.0.0
Set-DhcpServerv4Scope -ScopeId 10.0.0.300 -Name “Part2” -State Active

4 - Comme mon serveur héberge le rôle DHCP et ADDS, je dois l’autoriser dans mon annuaire grâce à la commande :
Add-DhcpServerInDC -DnsName DC2012 10.9.0.5

Rôle DNS:
Install-WindowsFeature -Name DNS -IncludeManagementTools
Add-DnsServerPrimaryZone -Name “nguengue.lan” -zonefile “nguengue.lan.dns” -
DynamicUpdate -ReplicationScope “Forest” Add-DnsServerPrimaryZone -NetworkID 10./8 -ZoneFile “0.0.10.in-addr.arpa.dns” -
DynamicUpdate -ReplicationScope “Forest”

Rôle ADDS:
Import-Module ADDSDeployment
Install-ADDSForest
CreateDnsDelegation:

falseDatabasePathC:\Windows\NTDSDomainModeWin2012DomainNamerodney.lanDomainNetbiosNameRODNEYForestModeWin2012InstallDns:true
LogPath “C:\Windows\NTDS”
NoRebootOnCompletion:
falseSysvolPathC:\Windows\SYSVOLForce:
true
Add-WindowsFeature AD-Domain-Services
Install-WindowsFeature -IncludeManagementTools -Name AD-Domain-Services

Installation du Contrôleur de Domaine supplémentaire(réplica):
Install-ADDSDomainController
credential (get-credential corp\administrator)
domainname “nguengue.lan”
Install-ADDSDomainController
domainname “nguengue.lan”
Install-ADDSDomainController
credential (get-credential)
domainname (read-host “Domain to promote into”)
Install-ADDSDomainController
Credential (get-credential contoso\RodneyAdmin)
CreateDNSDelegation
DomainName “nguengue.lan”
SiteName “New York”
InstallationMediaPath “c:\ADDS IFM”
DatabasePath “C:\Windows\NTDS”
SYSVOLPath “d:\Windows\SYSVOL”
LogPath “e:\Logs”