Powershell/Serveur Microsoft/Configuration-serveur.ps1
2023-07-04 12:59:44 +02:00

132 lines
5.2 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<#
.SYNOPSIS
<Overview of script>
.NOTES
Version : 1.0
Author : Hubert CORNET
Creation Date : <Date>
Purpose/Change : <Initial script development>
.LINK
https://www.tips-of-mine.fr
.EXEMPLE
<Example goes here. Repeat this attribute for more than one example>
.DESCRIPTION
Permet de :
- Renommer le serveur
- Changer la configuration reseau du serveur
- Desactiver la configuration de securite renforer pour IE (admins et/ou les users)
- Desactiver l'ouverture automatique du gestionnaire de serveur au demarrage
Teste sur : Windows Server 2008 R2 / Windows Server 2012 / Windows Server 2012R2 / Windows Server 2016 / Windows Server 2019 / Windows Server 2022
.PARAMETER <Parameter_Name>
<Brief description of parameter input required. Repeat this attribute if required>
.INPUTS
<Inputs if any, otherwise state None>
.OUTPUTS
<Outputs if any, otherwise state None - example: Log file stored in C:\Windows\Temp\<name>.log>
#>
#---------------------------------------------------------[Initialisations]--------------------------------------------------------
# Définir l'action d'erreur pour continuer silencieusement
$ErrorActionPreference = "SilentlyContinue"
# Bibliothèques de fonctions requises
#----------------------------------------------------------[Declarations]----------------------------------------------------------
# Version Script
$sScriptVersion = "1.0"
#Log File Info
$sLogPath = "C:\Tmp"
$sLogName = "Configuration-serveur.log"
$sLogFile = Join-Path -Path $sLogPath -ChildPath $sLogName
$serverIp = "10.0.4.100"
$serverMask = "255.255.255.0"
$serverInterfaceAlias = "Ethernet0"
$serverDefaultGateway = "10.0.4.1"
$serverDnsServers = "10.0.4.4","10.0.4.2"
$serverName = "SWRDSP01"
$desactivateIeEsc = $true
$ieEscUsers = @("admins", "users") # valeurs possible @("admins"), @("users") ou @("admins", "users")
$doNotOpenServerManagerAtLogon = $false
$JoinDomain = $false
$Domain = "Tips-Of-Mine.local"
$pw = "Password123" | ConvertTo-SecureString -asPlainText Force # Specify the password for the domain admin.
$usr = "$Domain\administrateur" # Specify the domain admin account.
$creds = New-Object System.Management.Automation.PSCredential($usr,$pw)
$RemoteDesktop = $true
#-----------------------------------------------------------[Functions]------------------------------------------------------------
# fonction permettant de renommer le serveur
Function Set-ServerName {
param(
[string]$name
)
Rename-Computer -NewName $name
}
Function Set-ServerIpConfiguration {
param(
[string]$ip,
[string]$mask,
[string]$defaultGateway,
[string]$interfaceAlias,
[string[]]$dnsServers
)
$nicIndex = (Get-WMIObject Win32_NetworkAdapter | where {$_.netconnectionid -eq $interfaceAlias}).InterfaceIndex
$nic = Get-WmiObject Win32_NetworkAdapterConfiguration | where {$_.InterfaceIndex -eq $nicIndex}
$nic.EnableStatic($ip, $mask)
$nic.SetGateways($defaultGateway)
$nic.SetDNSServerSearchOrder($dnsServers)
}
# fonction permettant de desactiver la securite renforcée pour ie
Function Disable-IeEscForUsers {
param(
[string[]]$users
)
If($ieEscUsers.Contains("admins")) {
$adminKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}"
Set-ItemProperty -Path $adminKey -Name "IsInstalled" -Value 0
}
If($ieEscUsers.Contains("users")) {
$userKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}"
Set-ItemProperty -Path $userKey -Name "IsInstalled" -Value 0
}
}
# fonction permettant de desactiver l'ouverture automatique au demarrage du gestionnaire de serveur
Function Disable-OpenServerManagerAtLogon {
$serverManagerKey = "HKLM:\SOFTWARE\Microsoft\ServerManager"
Set-ItemProperty -Path $serverManagerKey -Name "DoNotOpenServerManagerAtLogon" -Value 1
}
#------------------------------------------------------------[Script]--------------------------------------------------------------
Set-ServerName -name $serverName
Set-ServerIpConfiguration -ip $serverIp -mask $serverMask -defaultGateway $serverDefaultGateway -interfaceAlias $serverInterfaceAlias -dnsServers $serverDnsServers
If ($desactivateIeEsc -eq $true) { Disable-IeEscForUsers -users $ieEscUsers }
If ($doNotOpenServerManagerAtLogon -eq $true) { Disable-OpenServerManagerAtLogon }
If ($JoinDomain -eq $true) { add-computer domainname $Domain -Credential $creds -restart -force -verbose }
If ($RemoteDesktop -eq $true) {
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\" -Name "fDenyTSConnections" -Value 0
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\" -Name "UserAuthentication" -Value 1
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
}
Restart-Computer