Bonjour

J’essaie de faire un script pour installer le rôle DHCP.
Dans un 1er temps cela a fonctionné mais j'ai voulu ajouter une gestion d'erreur au cas ou le role dhcp est installé.

Dans mon code ci-dessous j'importe des options à ajouter à mon DHCP.
Problème si l'option n'existe pas, une erreur ce déclenche mais c'est le code du bloc try qui est exécute au lieu du bloc catch.

Je n'arrive vraiment pas a comprendre pourquoi.
Merci de votre aide

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#Trouver l'emplacement du script
$RootFolder = [System.IO.Path]::GetDirectoryName($MyInvocation.MyCommand.Definition)

#Definition de l'emplacement des fichiers de parmetrage
$InstallFolder = Get-Item $RootFolder\Install

#Test de l'existance du dossier
if (Test-Path $InstallFolder\Options.csv) {
	$Options = Import-Csv -Path $InstallFolder\Options.csv -Delimiter ";"
} Else {
	Write-Warning "Fichier Options.csv manqant."
	Pause
	Exit
}

Foreach ($Option in $Options) {
	
	If ($Option.ScopeId -eq "" -or $Option.ScopeId -eq $null ) {
		Try {
			Write-Host "Option $((Get-DhcpServerv4OptionValue -OptionId $($Option.OptionId)).OptionId) déjà paramétré sur le serveur."
		} Catch {
			#Ajout d'option serveur
			Set-DhcpServerv4OptionValue -OptionId $Option.OptionId -Value $Option.Value -Force
		}
	} Else {
		Try {
			Write-Host "Option $((Get-DhcpServerv4OptionValue -OptionId $($Option.OptionId) -ScopeId $Option.ScopeId).OptionId) déjà paramétré sur étendu $($Option.ScopeId)."
		} Catch {
			#Ajout d'option à une étendu
			Write-Host "-OptionId $($Option.OptionId) -Value $($Option.Value) -ScopeId $($Option.ScopeId) -Force"
			Set-DhcpServerv4OptionValue -OptionId $Option.OptionId -Value $Option.Value -ScopeId $Option.ScopeId -Force
		}
	}
}