尝试在脚本上设置 IF/ELSE,以便检查在脚本运行之前是否满足两个条件:
- 检查桌面上是否存在以下文件。(
$FileExists
) - 检查用户是否仅属于一个组,该组包含 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
末尾添加允许我使用$GroupResults
If
eq 1