我正在编写PowerShell脚本(在PowerShell 5.1环境中),我需要列出文件夹权限中设置的组中的所有用户。但是某些组不相关,因此当我尝试在其上 Get-ADGroupMember 时,出现了预期的错误。
要丢弃此错误,我尝试了以下操作:
Get-ADGroupMember Fake_Group -Server ad.example.com 2>&1 $null
Get-ADGroupMember Fake_Group -Server ad.example.com 2>&1 | Out-Null
但是在两种情况下,结果都是相同的:显示错误。
get-aduser : Cannot find an object with identity: 'Fake_Group' under 'DC=example.com'.
At line:1 char:1
+ Get-ADGroupMember Fake_Group -Server ad.example.com 2>&1 | ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Fake_Group:ADGroup) [Get-ADGroupMember], ADIdentityNotFoundException
+ FullyQualifiedErrorId : ActiveDirectoryCmdlet:Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException,Microsoft.ActiveDirectory.Management.Commands.GetADGroupMember
所以我的问题是:为什么仍然显示此错误?
然后,我怎么能抛弃此错误,还是有一种更好的方法从文件夹权限中设置的组中列出用户,而不仅仅是尝试对的整个结果进行 Get-ADGroupMember Get-Acl 甚至没有相关对象?
答案 0 :(得分:1)
由于Out-Null在这方面没有执行任何操作,因此您将需要使用try / catch语句,甚至可能需要添加-ErrorAction Stop,因为并非AD命令中的所有错误都将终止错误:
Try{
Get-ADGroupMember $GROUPNAME -Server $SEVRER -ErrorAction Stop
#The group is found, do whatever you want here
}Catch{
Write-Host "Some error occured"
}