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 PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
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 PowerShell : 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
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