Resolve-Path не разрешает путь, указанный в переменной

Рейтинг: 3Ответов: 1Опубликовано: 22.10.2014

В сценарии:

$VHDstorage = "d:\term_profile\"

$Domains = “domain1.local", “domain2.local”, “domain3.local”
$TemplProfilePrefix = "UVHD-"
$TemplProfileSuffix = ".vhdx"
$LifetimeProfile=60

ForEach ($Domain in $Domains) {
    Search-ADAccount -server (get-addomain $Domain).pdcemulator -accountdisabled | where {$_.lastlogondate -lt (get-date).addmonths(-$LifetimeProfile)} | ForEach-Object -Process {
        $pathto = $VHDstorage + '*\' + $TemplProfilePrefix + $_.SID.Value + $TemplProfileSuffix
        (Resolve-Path -Path $pathto).path
    }
}

неверно отрабатывает блок:

(Resolve-Path -Path $pathto).path

т.е. не выводится ничего, хотя переменная $pathto содержит строку поиска. Что интересно, создание переменной в консоли Powershell и последующая передача этой переменной как параметра в Resolve-Path выдает необходимый результат. Как решить эту проблему?

Ответы

▲ 3Принят

Разобрался. Чтобы вся эта конструкция делала то, что задумано, нужно строку с Resolve-Path изложить в следующей редакции:

    Resolve-Path -Path $pathto | ForEach-Object -Process {
        $_.Path
    }

Да и $LifetimeProfile=60 (в месяцах) я взял слишком большим, из-за чего не видел результатов.