我来自 *nix 脚本背景,一般来说,我是 powershell 和 Windows 管理员的新手。我正在尝试编写一个脚本来检查 Exchange/IIS smtp 虚拟主机集合上的 SmartHost 值。我试图弄清楚如何将循环变量插入到 ADSI 查询字符串中,但 + 运算符没有做到这一点:
$hosts = @("host1","host2")
foreach ($hostname in $hosts) {
$SMTPSvc = [ADSI]'IIS://' + $hostname + '/smtpsvc/1'
echo $SMTPSvc.SmartHost
}
使用带单引号或双引号的 + 会给我这个错误:
Method invocation failed because [System.DirectoryServices.DirectoryEntry] does not contain a method named 'op_Addition'.
At line:3 char:1
+ $SMTPSvc = [ADSI]'IIS://' + $hostname + '/smtpsvc/1'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (op_Addition:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
将循环主机值插入 ADSI 查询字符串的正确或首选方法是什么?