查看 whoami 命令的结果时,脚本不会针对多个组

查看 whoami 命令的结果时,脚本不会针对多个组

尝试在脚本上设置 IF/ELSE,以便检查在脚本运行之前是否满足两个条件:

  1. 检查桌面上是否存在以下文件。($FileExists
  2. 检查用户是否仅属于一个组,该组包含 6 位数字的组名。($GroupCount

如果结果whoami /groups仅产生一个结果,其中组名包含_6digits,则继续

E.G
Mygroup_152452_152354

如果结果whoami /groups显示多个结果且组名包含_6位数字,则不要继续

E.G
Mygroup1_152452_152354
Mygroup2_152453_152355

我已经使用了 -le 1,但我认为我的方法不对?有点困惑,如果有人能帮我看看哪里出了问题,我将不胜感激。

目前,当我从应满足等于 1 或更小条件(仅包含 _6digits 的一个组的成员)的用户运行脚本时,脚本会跳转到退出。

$WantFile = "$env:USERPROFILE\Desktop\myfile.lnk"
$FileExists = Test-Path $WantFile
$Groups = WhoAmI /Groups /FO CSV | ConvertFrom-Csv
$GroupCount = $Groups.'Group Name'.Where{ $Groups -match '(_\d{6}){1}'} -le 1


If ($FileExists -eq $False -And $GroupCount -eq $True)

{

Write-Host "Carry on script"

}

Else {

Write-Host "Exit the script"
Exit

}

答案1

感谢 Reddy Lutonadio 对此的指导。

经过测试后,这对我有用:

$WantFile = "$env:USERPROFILE\Desktop\myfile.lnk"
$FileExists = Test-Path $WantFile
$Groups = WhoAmI /Groups /FO CSV | ConvertFrom-Csv
$GroupResults = $Groups.'Group Name'.Where{ $_ -match '(_\d{6}){1}'}


If ($FileExists -eq $False -And $GroupResults.count -eq 1)

{

Write-Host "Carry on script"

}

Else {

Write-Host "Exit the script"
Exit

}

在语句.count末尾添加允许我使用$GroupResultsIfeq 1

相关内容