2

我正在编写一个脚本来快速创建一个新的通讯组并用 CSV 填充它。我无法测试组名是否已存在。

如果我做了 aget-distributiongroup -id $NewGroupName并且它不存在,我会得到一个异常,这是我期望发生的。如果该组确实存在,那么它会列出该组,这也是我所期望的。但是,在尝试创建组之前,我找不到测试组是否存在的好方法。我尝试过使用 try/catch,并且还这样做:

Get-DistributionGroup -id $NewGroupName -ErrorAction "Stop" 

这使得 try/catch 工作得更好(据我了解非终止错误)。

基本上,我需要让用户输入一个新的组名来检查它是否可行。如果是,则创建该组,如果不是,则应提示用户输入另一个名称。

4

2 回答 2

9

您可以使用SilentlyContinueerroraction 以便不显示异常/错误:

$done = $false
while(-not $done)
{
   $newGroupName = Read-Host "Enter group name"
   $existingGroup = Get-DistributionGroup -Id $newGroupName -ErrorAction 'SilentlyContinue'

   if(-not $existingGroup)
   {
      # create distribution group here
      $done = $true
   }
   else
   {
      Write-Host "Group already exists"
   }
}
于 2012-08-28T20:53:06.943 回答
1

这应该可以解决问题:

((Get-DistributionGroup $NewGroupName -ErrorAction 'SilentlyContinue').IsValid) -eq $true
于 2013-03-14T16:13:09.587 回答