如何在 PowerShell 中使用 ValidateScript 属性?


ValidateScript 属性用于在进入函数之前验证脚本。例如,假设您要验证文件路径、验证远程计算机连接性等。我们将在这里以远程服务器连接性为例。

如果没有 ValidateScript 属性,我们会写出如下所示的脚本。

Function Check-RemoteServer {
   param (
      [string]$Server
   )
   if(Test-Connection -ComputerName $Server -Count 2 -Quiet -ErrorAction Ignore) {
      Write-Output "$server is reachable"
   } else {
      Write-Output "$Server is unreachable"
   }
}

输出

PS C:\> Check-RemoteServer -Server asde.asde
asde.asde is unreachable
PS C:\> Check-RemoteServer -Server Google.com
Google.com is reachable

使用 ValidateScript 属性,脚本将缩减为几行代码。

Function Check-RemoteServer {
   param (
      [ValidateScript({Test-Connection -ComputerName $_ -Count 2 -
      Quiet}, ErrorMessage = "Remote Server unreachable")]
      [string]$Server
   )
   Write-Output "$Server is reachable"
}

输出

PS C:\> Check-RemoteServer -Server Google.com
Google.com is reachable
PS C:\> Check-RemoteServer -Server asde.asde
Check-RemoteServer: Cannot validate argument on parameter 'Server'. Remote Server unreachable

更新时间: 19-9-2020

1000+ 浏览

开启您的 职业生涯

获得认证,完成课程

开始
广告