Мне трудно понять, как PowerShell обрабатывает рекурсию и команду Copy-Item
.
$date=Get-Date -Format yyyyMMdd
$oldfolder="c:\certs\old\$date"
New-PSDrive -Name "B" -PSProvider FileSystem -Root "\\(server)\adconfig"
$lastwrite = (get-item b:\lcerts\domain\wc\cert.pfx).LastWriteTime
$timespan = new-timespan -days 1 -hours 1
Write-Host "testing variables..."
Write-Host " date = $date" `n "folder path to create = $oldfolder" `n
"timespan = $timespan"
if (((get-date) - $lastwrite) -gt $timespan) {
#older
Write-Host "nothing to update."
}
else {
#newer
Write-Host "newer certs available, moving certs to $oldfolder"
copy-item -path "c:\certs\wc" -recurse -destination $oldfolder
copy-item b:\lcerts\domain\wc\ c:\certs\ -recurse -force
}
Существующие файлы существуют в c:\certs\wc\cert.pfx
У меня есть «тест», сравнивающий время между cert.pfx
в папке b:\lcerts\domain\wc\
и текущим временем.Если сертификат был изменен за последние 1 день и 1 час, сценарий должен продолжаться:
Копировать cert.pfx
из c:\certs\wc\ to c:\certs\old\$date\cert.pfx
Копировать cert.pfx
из b:\lcerts\domain\wc to c:\certs\wc\cert.pfx
Я, очевидно, не понимаю номенклатуру PowerShell для этого, потому что при первом запуске этого скрипта он работает нормально.Во второй раз он создает другую папку внутри c:\certs\wc\$date\wc\cert.pfx
.
Как заставить его завершиться с ошибкой с "c:\certs\wc\$date\cert.pfx
уже существует? "
Я не хочу ограничивать это только файлом cert.pfx
, указав фактическое имя файла, яхотите, чтобы все файлы в папке, так как в конечном итоге будет более одного файла.