简单的PowerShell,括号内的变量不起作用
Simple PowerShell, Variable inside bracket no working
我缺少格式或与变量有关的简单内容。当我输入变量数据时,没有输出。如果我输入 SMTP: address manually 脚本工作正常。
$EmailAddressAlias=Read-Host "Enter the FULL Email Address to find the associated Mailbox "
Get-Mailbox -Identity * |
Where-Object {$_.EmailAddresses -like 'SMTP:$EmailAddressAlias'} |
Format-List Identity, EmailAddresses
我在这里看到两个问题和一个建议。您在单引号内有一个变量,并且在 -like
比较中没有通配符。为了使变量扩展到它的值,您需要使用双引号,如下所示:
$_.EmailAddresses -like "SMTP:$EmailAddressAlias"
此外,当您使用没有通配符的 -like
时,您也可以使用 -eq
。最后,您真的应该在 Get-Mailbox
级别进行过滤,而不是获取所有邮箱,然后只过滤您想要的邮箱。您可能想试试这个:
Get-Mailbox -Filter "EmailAddresses -like '*$EmailAddressAlias*'" | Format-List Identity, EmailAddresses
我缺少格式或与变量有关的简单内容。当我输入变量数据时,没有输出。如果我输入 SMTP: address manually 脚本工作正常。
$EmailAddressAlias=Read-Host "Enter the FULL Email Address to find the associated Mailbox "
Get-Mailbox -Identity * |
Where-Object {$_.EmailAddresses -like 'SMTP:$EmailAddressAlias'} |
Format-List Identity, EmailAddresses
我在这里看到两个问题和一个建议。您在单引号内有一个变量,并且在 -like
比较中没有通配符。为了使变量扩展到它的值,您需要使用双引号,如下所示:
$_.EmailAddresses -like "SMTP:$EmailAddressAlias"
此外,当您使用没有通配符的 -like
时,您也可以使用 -eq
。最后,您真的应该在 Get-Mailbox
级别进行过滤,而不是获取所有邮箱,然后只过滤您想要的邮箱。您可能想试试这个:
Get-Mailbox -Filter "EmailAddresses -like '*$EmailAddressAlias*'" | Format-List Identity, EmailAddresses