# Aaron PESCASIO
Dans presque tous les cours concernant le Windows serveur à l’IPI, j'ai dû réinstaller un serveur Windows avec AD DS, DNS, DHCP à la main. J'ai donc décidé de créer ce script qui automatisera l'ensemble du processus avec des configurations IP préconfiguré.
1ip.ps1:
# Script pour automatiser/simplifier la mise en place d'un: # Windows Serveur avec AD DS, DNS, DHCP préconfiguré # Définir le chemin absolu du script (pour ranger le script dans un dossier à la fin) $ScriptPath = Convert-Path -Path $MyInvocation.MyCommand.Path # Demande à l'user: le nouveau nom de PC $nom = "" while ($nom -eq "") { $nom = Read-Host "`nEntrez le nouveau nom de PC (ne peut pas être vide)" } Rename-Computer $nom # Configure l'IP de serveur et le masque New-NetIPAddress -InterfaceAlias "Ethernet0" -IPAddress 192.168.31.10 -PrefixLength 24 -DefaultGateway 192.168.31.254 | Out-Null # Configure le DNS de serveur Set-DnsClientServerAddress -InterfaceAlias "Ethernet0" -ServerAddresses 192.168.31.10 | Out-Null # Demander à l'user le mot de passe $Password = Read-Host -Prompt "Veuillez entrer votre mot de passe" # Modifier le registre de Windows pour autoriser le "Autologon", cela va faire en sorte qu'après le redémarrage, le PC va s'ouvrir une session automatiquement $RegistryPath = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' Set-ItemProperty $RegistryPath 'AutoAdminLogon' -Value "1" -Type String Set-ItemProperty $RegistryPath 'DefaultUsername' -Value "$env:USERNAME" -Type String Set-ItemProperty $RegistryPath 'DefaultPassword' -Value "$Password" -type String # Créer un dossier "script" pour mettre la suite des scripts la-dessus New-Item -ItemType Directory -Path "C:\ap_script" -Force # Créer le script "2adds.ps1" qui créera le AD DS New-Item -ItemType File -Path "C:\ap_script\2adds.ps1" -Force | Out-Null # Mettre ce contenu à l'intérieur du script Set-Content -Path "C:\ap_script\2adds.ps1" -Value @" # # Script pour créer le AD DS avec "apes.loc" comme nom domaine et "APE" comme NETBIOS # Install-WindowsFeature -name AD-Domain-Services –IncludeManagementTools Install-ADDSForest `` -CreateDnsDelegation:`$false `` -SafeModeAdministratorPassword:(ConvertTo-SecureString -String "${Password}" -AsPlainText -Force) `` -DatabasePath "C:\Windows\NTDS" `` -DomainMode "WinThreshold" `` -DomainName "apes.loc" `` -DomainNetbiosName "APES" `` -ForestMode "WinThreshold" `` -InstallDns:`$true `` -LogPath "C:\Windows\NTDS" `` -NoRebootOnCompletion:`$false `` -SysvolPath "C:\Windows\SYSVOL" `` -Force:`$true # Supprimer la tâche planifiée "2adds" pour éviter des erreurs et des conflits schtasks /delete /tn "2adds" /f # Créer une tâche planifiée qui va s'executer à l'ouverture d'une session => la tâche planifiée va exécuter le 3ème script qui configurera le DNS Primary Zone, DNS PTR... de serveur à l'ouverture de session schtasks /create /tn "3dns" /tr "powershell.exe -ExecutionPolicy Bypass -File C:\ap_script\3dns.ps1" /rl highest /sc onlogon # Ajouter le DefaultDomainName dans le registre pour l'Autologon Set-ItemProperty -Path "${RegistryPath}" 'DefaultDomainName' -Value "apes.loc" -type String # Redémarrer le PC Restart-Computer -Force "@ # Créer le script "3dns.ps1" qui configuera le DNS Zone de serveur et installera le DHCP également New-Item -ItemType File -Path "C:\ap_script\3dns.ps1" -Force | Out-Null # Mettre ce contenu à l'intérieur du script Set-Content -Path "C:\ap_script\3dns.ps1" -Value @" # # Script pour mettre en place la Zone DNS, l'enregistrement PTR, DHCP... du serveur # Add-DnsServerPrimaryZone -NetworkId "192.168.31.0/24" -ReplicationScope 'Domain' `$IP = (Get-NetIPAddress -InterfaceAlias "Ethernet0" -AddressFamily 'IPv4').IPV4Address `$PTRIP = `$IP.Split('.',6)[3] `$fqdn = (Get-ADComputer `$(hostname)).DNSHostName Add-DnsServerResourceRecordPtr -Name "`$PTRIP" -ZoneName "31.168.192.in-addr.arpa" -PtrDomainName "`$fqdn" Set-DnsClientServerAddress -InterfaceAlias "Ethernet0" -ServerAddresses 192.168.31.10, 127.0.0.1 # Installation et configuration DHCP du serveur + création de Plage DHCP "31.100" => "31.200" Install-WindowsFeature DHCP -IncludeManagementTools `$DNSName = "`$env:COMPUTERNAME.apes.loc" Add-DHCPServerInDC -DNSName `$DNSName Set-ItemProperty –Path registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ServerManager\Roles\12 –Name ConfigurationState –Value 2 Set-DhcpServerv4OptionValue -DNSServer 192.168.31.10 -DNSDomain apes.loc -Router 192.168.31.254 Add-DhcpServerv4Scope -Name "PlagePCs" -StartRange 192.168.31.100 -EndRange 192.168.31.200 -SubnetMask 255.255.255.0 -Description "Plage DHCP des ordinateurs du domaine APES" schtasks /delete /tn "3dns" /f # Désactiver l'Autologon et enlever le mot de passe et l'identifiant du registre Windows Set-ItemProperty -Path "${RegistryPath}" 'AutoAdminLogon' -Value "0" -Type String Set-ItemProperty -Path "${RegistryPath}" 'DefaultUsername' -Value "No" -Type String Set-ItemProperty -Path "${RegistryPath}" 'DefaultPassword' -Value "No" -type String # Mettre le 1er script dans le dossier ap_script Copy-Item "${ScriptPath}" C:\ap_script\1ip.ps1 Remove-Item "${ScriptPath}" "@ # Créer une tâche planifiée qui va s'executer à l'ouverture d'une session => la tâche planifiée va exécuter le 2ème script qui installera Active Directory à l'ouverture de session schtasks /create /tn "2adds" /tr "powershell.exe -ExecutionPolicy Bypass -File C:\ap_script\2adds.ps1" /rl highest /sc onlogon # Redémarrer le PC Restart-Computer -Force