Try Catch ne fonctionne pas
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:
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
}
}
} |