У меня есть некоторый код powershell, чтобы попытаться скопировать файл изображения через сетевые устройства. Однако сценарий всегда завершается ошибкой, если целевая часть существует. Пользователь, который запускает сценарий, имеет полные разрешения для пути к файлу.
Однако Powershell не находит папку назначения каждый раз. Вот сценарий:
$Servers = (@"
PCLIST01
PCLIST02
PCNAME03
PCLIST04
"@ -split "`r`n").Trim()
$Source = '\\SERVER\Folder name\subfolder\100 Project Name\moneydreams.jpg'
$Destination = 'C:\ProgramData\Program Folder Name\Subfolder for Program\HTML\' -replace "C:","c$"
$Logfile = "\\SERVER\Folder name\subfolder\100 Project Name\Failed.log"
If (!(Test-Path $Logfile)) { Remove-Item $Logfile}
New-Item $Logfile -ItemType File
ForEach ($Server in $Servers) {
Try {
If (!(Test-Path "$Server\$Destination" )) {
ROBOCOPY "$Source" "\\$Server\$Destination" /LOG:copylog.log
}
Else {
Add-Content $Logfile "Folder does not exist on $Server , \\$Server\$Destination"
}
} Catch {
Add-Content $Logfile "$Server - $($_.Exception.Message)"
}
}
Код не выполняется при If (! (Test-Path "$ Server \ $ Destination")). Любопытно, что если я сделаю Test-Path на $ logfile, то он также завершится неудачно, однако файл обновится с помощью нотации Add-Content! Обратите внимание, что я попытался использовать обратную галочку `для filepath, чтобы увидеть, были ли пробелы в проблеме, и это не решило проблему.
Я не понимаю, почему он не смог бы найти папка назначения и обновление!