¿Por qué $ PSItem no se comporta como se esperaba cuando se usa un argumento de filtro basado en paréntesis?

Estaba ayudando a un usuario con esta pregunta, vinculada a mi respuesta aquí: ¿Script de Shell para agregar usuarios al grupo A / D desde .csv usando solo la dirección de correo electrónico?

nicialmente escribí el script de la siguiente manera, usando un filtro basado en corchetes paraGet-AdUser como sigue:

Import-CSV "C:\users\Balbahagw\desktop\test1.csv" | 
  Foreach-Object {

    # Here, $_.EmailAddress refused to resolve
    $aduser = Get-ADUser -Filter { EmailAddress -eq $_.EmailAddress }

    if( $aduser ) {
      Write-Output "Adding user $($aduser.SamAccountName) to groupname"
      Add-ADGroupMember -Identity groupname -Members $aduser
    } else {
      Write-Warning "Could not find user in AD with email address $($_.EmailAddress)"
    }
  }

Sin embargo,$_.EmailAddress no se pudo completar un valor. Sin embargo, cambiando laGet-ADUser filter a un filtro basado en cadenas funcionó según lo previsto:

$aduser = Get-ADUser -Filter "EmailAddress -eq '$($_.EmailAddress)'"

¿Cuál es la extrañeza que estoy experimentando y por qué? ¿Es porque cuando uso corchetes, se trata como un nuevo alcance y la$PSItem@ no seguirá?

Respuestas a la pregunta(2)

Su respuesta a la pregunta