我试图在PowerShell中验证一些输入。 用户应输入新AD用户的用户名。应该对任何无效字符(例如!,$,;等)验证此用户名。 有效字符是a-z(上部和下部),0-9,_, - 和
感谢您的帮助。
目前我的代码看起来像这样:
do{
$input="notok"
# Eingabe es Usernamen
Write-Host "Bite den Usernamen eingeben"
$Username = Read-Host
if ($Username -notmatch "[a-zA-Z0-9_.-]") {
Write-Host ""
Write-Host "ACHTUNG: Benutzer $Username enthaelt ungueltige Zeichen (nur a-z, A-Z, 0-9, ., - und _ erlaubt), bitte die Eingabe wiederholen" -ForegroundColor Red
Write-Host ""
$input="notok"
}else{
$input="ok"
}
}while($input -ne "ok")
答案 0 :(得分:2)
您可以使用参数,并使用内置参数验证:
Param(
[Parameter(Mandatory=$false,ValueFromPipeline=$true)]
[ValidateScript({$_-match "^[a-zA-Z0-9_\-,]+$"})]
[String]
$Username
)
答案 1 :(得分:0)
试试这个:
do{
$input="notok"
# Eingabe es Usernamen
Write-Host "Bite den Usernamen eingeben"
$Username = Read-Host
if ($Username -notmatch "^[a-z0-9_.-]*$") {
Write-Host ""
Write-Host "ACHTUNG: Benutzer $Username enthaelt ungueltige Zeichen (nur a-z, A-Z, 0-9, ., - und _ erlaubt), bitte die Eingabe wiederholen" -ForegroundColor Red
Write-Host ""
$input="notok"
}else{
$input="ok"
}
}while($input -ne "ok")