Вот еще одна реализация replaceAll:
String.prototype.replaceAll = function (stringToFind, stringToReplace) {
if ( stringToFind == stringToReplace) return this;
var temp = this;
var index = temp.indexOf(stringToFind);
while (index != -1) {
temp = temp.replace(stringToFind, stringToReplace);
index = temp.indexOf(stringToFind);
}
return temp;
};
Это происходит потому, что Write-Host рассматривает вашу постоянную строку и ваш объект как два отдельных параметра - вы фактически не присоединяетесь к строкам так, как вы его называете. Вместо того, чтобы называть его таким образом, на самом деле конкатенировать строки:
write-host "http://contoso.com/personal/$($_.ADUserName)"
или
write-host ("http://contoso.com/personal/" + $_.ADUserName)
или
write-host ("http://contoso.com/personal/{0}" -f $_.ADUserName)
Просто сделайте это без write-host
:
"http://contoso.com/personal/{0}" -f $_.ADUserName