Estoy intentando escribir un script powershell para Shell de administración de Exchange, importando una lista de contactos de un archivo csv a un grupo de distribución.Creación de scripts en Powershell con where-object
comienzo con
Import-csv C:\filename.csv | forEach-Object {New-MailContact .......}
Esto funciona bien, excepto que algunas entradas en mi archivo csv tienen una dirección de correo electrónico en blanco y el crear nuievo dados de contacto porque ExternalEmailAddress está en blanco. Así que lo intenté:
Import-csv C:\filename.csv | ForEach-Object { Where-Object {$_.ExternalEmailAddress -ne "" } | New-MailContact -Name $_.Name -ExternalEmailAddress $_.ExternalEmailAddress....}
Pero eso no parecía funcionar, no filtraba las entradas con direcciones de correo electrónico en blanco.
¿Qué estoy haciendo mal?
No, lo he intentado, y tiene un error -New-MailContact: No se puede vincular el argumento al parámetro 'Nombre' porque es nulo. En línea: 1 char: 106 + Import-csv c: \ FloridaBarTest.csv | Where-Object {$ _. ExternalEmailAddress -ne ""} | New-MailContact -Name <<<< $ _. Name -FirstName $ _. FirstName -LastName $ _. FirstName -ExternalEmailAddress $ _. ExternalEmailAddress -OrganizationalUnit "FloridaBarContacts" parece que los contenidos de la CSV no se pasan a través de la tubería . –
¿Qué error (s) está recibiendo? ¿Puedes actualizar la pregunta con un poco más de información? –
Puede ser bueno validar a los miembros del PSObject que se pasan a través de la canalización para asegurarse de que está accediendo a ellos. Para hacer esto, canalice los resultados de Import-Csv a Get-Member –