首页 > 解决方案 > 简单的PowerShell,括号内的变量不起作用

问题描述

我缺少格式或与变量有关的简单内容。当我输入变量数据时,没有输出。如果我输入 SMTP: address 手动脚本工作正常。

$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

标签: powershelloffice365

解决方案


我在这里看到两个问题和一个建议。您在单引号内有一个变量,并且您的-like比较中没有通配符。为了使变量扩展为它的值,您需要使用这样的双引号:

$_.EmailAddresses -like "SMTP:$EmailAddressAlias"

此外,当您-like不使用通配符时,您也可以使用-eq. 最后,您应该真正在Get-Mailbox级别进行过滤,而不是获取所有邮箱,然后只过滤您想要的邮箱。你可能想试试这个:

Get-Mailbox -Filter "EmailAddresses -like '*$EmailAddressAlias*'" | Format-List Identity, EmailAddresses

推荐阅读