TP2
This commit is contained in:
77
README.md
77
README.md
@@ -14,19 +14,74 @@ Ce dépôt contient des scripts PowerShell pour répondre aux exercices suivants
|
||||
- scripts/audit_system.ps1
|
||||
- scripts/ad_admin.ps1
|
||||
|
||||
## Utilisation
|
||||
Ouvrir PowerShell en mode administrateur, se placer dans le dossier du projet puis lancer :
|
||||
## Exercice 1 — Audit système (scripts/audit_system.ps1)
|
||||
|
||||
- Générer le rapport système :
|
||||
But :
|
||||
- Collecte d'informations système.
|
||||
|
||||
Utilisation :
|
||||
- Ouvrir PowerShell en mode administrateur, se placer dans le dossier du projet puis lancer :
|
||||
.\scripts\audit_system.ps1
|
||||
- Sortie : `scripts/exports/system_info.txt`
|
||||
|
||||
- Organiser Active Directory et créer partages :
|
||||
Sortie :
|
||||
- Génère le rapport : scripts/exports/system_info.txt
|
||||
|
||||
## Exercice 2 — Active Directory & partages (scripts/ad_admin.ps1)
|
||||
|
||||
But :
|
||||
- Crée les OU, groupes et utilisateurs de base.
|
||||
- Crée des dossiers partagés et applique des permissions NTFS.
|
||||
|
||||
Utilisation :
|
||||
- Ouvrir PowerShell en mode administrateur (et connecté au domaine), se placer dans le dossier du projet puis lancer :
|
||||
.\scripts\ad_admin.ps1
|
||||
- Actions réalisées :
|
||||
- Création des OU : Direction, RH, Informatique
|
||||
- Création des groupes : GRP_Direction, GRP_RH, GRP_Informatique
|
||||
- Création des utilisateurs (par défaut) et assignation aux groupes
|
||||
- Création de dossiers partagés sous `C:\Shares\<OU>` et application des permissions NTFS
|
||||
- Le script affiche en console les comptes créés et les mots de passe générés pour les nouveaux utilisateurs.
|
||||
|
||||
Actions réalisées :
|
||||
- Création des OU : Direction, RH, Informatique
|
||||
- Création des groupes : GRP_Direction, GRP_RH, GRP_Informatique
|
||||
- Création d’utilisateurs par défaut et assignation aux groupes
|
||||
- Création de dossiers partagés sous C:\Shares\<OU> et application des permissions NTFS
|
||||
- Le script affiche en console les comptes créés et les mots de passe générés pour les nouveaux utilisateurs.
|
||||
|
||||
## Exercice 3 — DNS (dns_config.ps1)
|
||||
|
||||
But: scripts/dns_config.ps1
|
||||
- Crée la zone DNS `entreprisexyz.local` si elle n'existe pas.
|
||||
- Ajoute un enregistrement A pour `srv-dc1` -> `192.168.147.10`.
|
||||
- Configure des DNS resolveurs (`8.8.8.8`, `8.8.4.4`).
|
||||
|
||||
Utilisation :
|
||||
- Ouvrir PowerShell en administrateur et lancer :
|
||||
.\scripts\dns_config.ps1
|
||||
|
||||
Questions :
|
||||
- Quelle est la différence entre un enregistrement A et un CNAME ?
|
||||
- Quelle commande permet de vérifier la liste des zones DNS existantes ?
|
||||
- Pourquoi utiliser un redirecteur dans un DNS d’entreprise ?
|
||||
|
||||
Reponse aux questions :
|
||||
1. Un enregistrement A mappe un nom de domaine à une adresse IPv4, tandis qu'un CNAME (Canonical Name) crée un alias pour un autre nom de domaine.
|
||||
2. La commande `Get-DnsServerZone` permet de vérifier la liste des zones DNS existantes.
|
||||
3. Un redirecteur dans un DNS d'entreprise est utilisé pour interroger d'autres serveurs DNS pour des zones qui ne sont pas gérées localement, ce qui permet de résoudre des noms de domaine externes.
|
||||
|
||||
## Exercice 4 — DHCP (dhcp_config.ps1)
|
||||
|
||||
But: scripts/dhcp_config.ps1
|
||||
- Installe le rôle DHCP si nécessaire.
|
||||
- Crée l'étendue `LAN_EntrepriseXYZ` (192.168.147.200 - 192.168.147.220).
|
||||
- Configure les options : DNS `192.168.147.10`, passerelle `192.168.147.1`, domaine `entreprisexyz.local`.
|
||||
- Ajoute une réservation pour le poste administratif.
|
||||
|
||||
Utilisation :
|
||||
- Ouvrir PowerShell en administrateur et lancer :
|
||||
.\scripts\dhcp_config.ps1
|
||||
|
||||
Questions :
|
||||
- Quelle est la différence entre une adresse IP dynamique et une réservation DHCP ?
|
||||
- Que se passe-t-il si deux serveurs DHCP répondent sur le même réseau ?
|
||||
- Quelle commande PowerShell permet de visualiser les baux DHCP actifs ?
|
||||
|
||||
Reponse aux questions :
|
||||
1. Une adresse IP dynamique est attribuée automatiquement par le serveur DHCP à un client, tandis qu'une réservation DHCP garantit qu'un client spécifique reçoit toujours la même adresse IP.
|
||||
2. Si deux serveurs DHCP répondent sur le même réseau, cela peut entraîner des conflits d'adresses IP et des problèmes de connectivité pour les clients.
|
||||
3. La commande `Get-DhcpServerv4Lease` permet de visualiser les baux DHCP actifs.
|
||||
BIN
export/dhcp_config.png
Normal file
BIN
export/dhcp_config.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 231 KiB |
BIN
export/dns_config.png
Normal file
BIN
export/dns_config.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 174 KiB |
43
scripts/dhcp_config.ps1
Normal file
43
scripts/dhcp_config.ps1
Normal file
@@ -0,0 +1,43 @@
|
||||
if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
|
||||
Write-Error "Exécutez ce script en tant qu'administrateur."
|
||||
exit 1
|
||||
}
|
||||
|
||||
$ScopeName = 'LAN_EntrepriseXYZ'
|
||||
$StartIP = '192.168.147.200'
|
||||
$EndIP = '192.168.147.220'
|
||||
$SubnetMask = '255.255.255.0'
|
||||
$ScopeId = '192.168.147.0'
|
||||
$DnsServer = '192.168.147.10'
|
||||
$Router = '192.168.147.1'
|
||||
$Domain = 'entreprisexyz.local'
|
||||
$ResName = 'Admin-PC'
|
||||
$ResIP = '192.168.147.201'
|
||||
$ResMac = '00-11-22-33-44-55'
|
||||
|
||||
# Install DHCP Role if not present
|
||||
$dhcpFeature = Get-WindowsFeature -Name 'DHCP'
|
||||
if (-not $dhcpFeature.Installed) {
|
||||
Write-Host "Installation du rôle DHCP..."
|
||||
Install-WindowsFeature -Name 'DHCP' -IncludeManagementTools -ErrorAction Stop | Out-Null
|
||||
Write-Host "Rôle DHCP installé." -ForegroundColor Green
|
||||
}
|
||||
|
||||
try {
|
||||
if (-not (Get-DhcpServerv4Scope -ScopeId $ScopeId -ErrorAction SilentlyContinue)) {
|
||||
Add-DhcpServerv4Scope -Name $ScopeName -StartRange $StartIP -EndRange $EndIP -SubnetMask $SubnetMask -State Active -LeaseDuration (New-TimeSpan -Days 8) -ErrorAction Stop
|
||||
Write-Host "Étendue '$ScopeName' créée : $StartIP - $EndIP"
|
||||
}
|
||||
else {
|
||||
Write-Host "Étendue '$ScopeName' existe déjà."
|
||||
}
|
||||
|
||||
Set-DhcpServerv4OptionValue -ScopeId $ScopeId -DnsServer $DnsServer -Router $Router -DnsDomain $Domain -ErrorAction Stop
|
||||
Write-Host "Options DHCP configurées : DNS=$DnsServer, Passerelle=$Router, Domaine=$Domain"
|
||||
|
||||
Add-DhcpServerv4Reservation -ScopeId $ScopeId -IPAddress $ResIP -ClientId $ResMac -Name $ResName -Description 'Réservation poste administratif' -ErrorAction Stop
|
||||
Write-Host "Réservation ajoutée : $ResName -> $ResIP ($ResMac)"
|
||||
}
|
||||
catch {
|
||||
Write-Warning "Opération échouée : $_"
|
||||
}
|
||||
32
scripts/dns_config.ps1
Normal file
32
scripts/dns_config.ps1
Normal file
@@ -0,0 +1,32 @@
|
||||
if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
|
||||
Write-Error "Exécutez ce script en tant qu'administrateur."
|
||||
exit 1
|
||||
}
|
||||
|
||||
Import-Module DnsServer -ErrorAction Stop
|
||||
|
||||
$zoneName = 'entreprisexyz.local'
|
||||
$aName = 'srv-dc1'
|
||||
$aIP = '192.168.147.10'
|
||||
$forwarders = @('8.8.8.8','8.8.4.4')
|
||||
|
||||
if (-not (Get-DnsServerZone -Name $zoneName -ErrorAction SilentlyContinue)) {
|
||||
Add-DnsServerPrimaryZone -Name $zoneName -ZoneFile "$zoneName.dns" -DynamicUpdate None -ErrorAction Stop
|
||||
Write-Host "Zone primaire '$zoneName' créée."
|
||||
} else {
|
||||
Write-Host "Zone '$zoneName' existe déjà."
|
||||
}
|
||||
|
||||
if (-not (Get-DnsServerResourceRecord -ZoneName $zoneName -Name $aName -RRType 'A' -ErrorAction SilentlyContinue)) {
|
||||
Add-DnsServerResourceRecordA -Name $aName -ZoneName $zoneName -IPv4Address $aIP -TimeToLive ([TimeSpan]::FromHours(1)) -ErrorAction Stop
|
||||
Write-Host "Enregistrement A ajouté : $aName.$zoneName -> $aIP"
|
||||
} else {
|
||||
Write-Host "Enregistrement A $aName.$zoneName existe déjà."
|
||||
}
|
||||
|
||||
try {
|
||||
Set-DnsServerForwarder -IPAddress $forwarders -ErrorAction Stop
|
||||
Write-Host "Redirecteurs DNS configurés : $($forwarders -join ', ')"
|
||||
} catch {
|
||||
Write-Warning "Échec configuration redirecteurs : $_"
|
||||
}
|
||||
Reference in New Issue
Block a user