Anybox vérification avec ValidateScript
Bonjour,
j'ai crée un script Powershell qui utilise Anybox pour proposer une interface graphique dans laquelle je fait des choix.
En fonction des choix à la validation de la fenêtre j'applique des paramètres.
Un des choix est le nom de l'ordinateur, il faut que mon nom d'ordinateur fasse exactement 15 caractères.
J'ai réussi à mettre une vérification sur la ligne si ça fait moins de 15 caractères, mais je ne trouve pas pour limiter à 15 caractères maximum.
Voici la ligne en question :
Code:
New-AnyBoxPrompt -Group 'Détail du poste' -InputType Text -Message "Nom de la machine :" -DefaultValue 'PACA-' -ValidateScript { $_.Length -ge 15 }
Avec le Validatescript, si le nom ne fait pas 15 caractères j'ai une erreur Invalid input qui me permet de corriger.
J'ai vu qu'il existait une variable Validatelenght mais je ne trouve pas comment l'appliquer dans Anybox, je n'ai réussi à faire fonctionner que ValidateScript avec Anybox.
Vous avez une idée de comment faire ceci?
Jean-Michel
PS : Pour tester le script voici de quoi le faire tourner (il faut que Auget soit installé :
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 36
| #Installation interface graphique
if (Get-Module -ListAvailable -Name AnyBox) {
Write-Output "AnyBox déja installé"
} else {
Write-Host 'Installation interface graphique'
saps -WindowStyle Hidden -FilePath powershell -Verb runas -ArgumentList {Install-Module -Name 'AnyBox' -Force} -wait
Write-Host 'Interface graphique Installé'
}
Import-Module AnyBox
$anybox = New-Object AnyBox.AnyBox
$anybox.Prompts = @(
# typical text prompt, but with default value.
# sets are shown as drop-down lists.
New-AnyBoxPrompt -Group '_Secteur' -InputType Text -Message "Choix secteur :" -ValidateSet 'BDR','VAR' -DefaultValue 'BDR'
New-AnyBoxPrompt -Group 'Détail du poste' -InputType Text -Message "Type de poste :" -ValidateSet 'Accueil','Technique','Impression' -DefaultValue 'Technique' -ShowSetAs Radio -ShowSeparator
New-AnyBoxPrompt -Group 'Connection Info' -InputType Text -Message "Adresse IP :" -DefaultValue '192.168.1.1' -ValidateScript { $_ -match '^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$' }
New-AnyBoxPrompt -Group 'Détail du poste' -InputType Text -Message "Nom de la machine :" -DefaultValue 'PACA-' -ValidateScript { $_.Length -ge 15 }
New-AnyBoxPrompt -Group 'Détail du poste' -InputType Checkbox -Message "Installer le scanner ?" -DefaultValue $false
)
$anybox.Icon = 'Question'
$anybox.Title = 'Prépa'
$anybox.ContentAlignment = 'left'
$anybox.FontSize = '15'
$anybox.Buttons = @(
New-AnyBoxButton -Name 'Annuler' -Text 'Annuler' -IsCancel
New-AnyBoxButton -Name 'Lancer' -Text 'Lancer' -IsDefault
)
# show the AnyBox; collect responses.
$response = $anybox | Show-AnyBox |