Ich komme aus einem * Nix Scripting-Hintergrund und ich bin ein Neuling für Powershell und Windows-Admin im Allgemeinen. Ich versuche, ein Skript zu schreiben, das den SmartHost-Wert auf einer Sammlung virtueller Exchange/IIS-SMTP-Hosts überprüft. Ich versuche, herauszufinden, wie die geschlungenen Variable in den ADSI Query-String einzufügen, aber der Operator + nicht tut den Trick:verbinden zitierte Strings mit Variablen in Powershell
$hosts = @("host1","host2")
foreach ($hostname in $hosts) {
$SMTPSvc = [ADSI]'IIS://' + $hostname + '/smtpsvc/1'
echo $SMTPSvc.SmartHost
}
Mit dem + mit einfachen oder doppelten Anführungszeichen gibt mir diese Fehlermeldung:
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
Was der richtige oder bevorzugter Weg wäre, den geschleiften Host-Wert in das ADSI Query-String einfügen?
'$ SMTPSvc = [ADSI] "IIS: // $ hostname/smtpsvc/1"' würde auch in diesem Fall arbeiten. – Matt