Копирование файлов на удаленные серверы
Всем привет
Ниже приведен код, который я пытаюсь выполнить для обработки нескольких файлов из одной папки в другую на удаленном сервере, но я получаю эту ошибку
PS C:\Windows> D:\ScriptRepo\Smart_Backup_Create folders_by_Date.ps1 Hit Line breakpoint on 'D:\ScriptRepo\Smart_Backup_Create folders_by_Date.ps1:5' [DBG]: PS C:\Windows>> \\$ComputerName\$DriveLetter$\BMCSoftware\BMCPortalKit\webserver\tools\apache-openssl\logs : The term '\\$ComputerName\$DriveLetter$\BMCSoftware\BMCPortalKit\webserver\tools\apache-openssl\logs' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At D:\ScriptRepo\Smart_Backup_Create folders_by_Date.ps1:5 char:12 + $SrcPath = \\$ComputerName\$DriveLetter$\BMCSoftware\BMCPortalKit\webserver\tool ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (\\$ComputerName...he-openssl\logs:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException [DBG]: PS C:\Windows>> \\$ComputerName\$DriveLetter$\Log_Backup_$((Get-Date).ToString('yyyy-MM-dd')) : The term '\\$ComputerName\$DriveLetter$\Log_Backup_$((Get-Date).ToString('yyyy-MM-dd'))' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. At D:\ScriptRepo\Smart_Backup_Create folders_by_Date.ps1:6 char:13 + $DestPath = \\$ComputerName\$DriveLetter$\Log_Backup_$((Get-Date).ToString('yyyy ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (\\$ComputerName...('yyyy-MM-dd')):String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException [DBG]: PS C:\Windows>> Directory: \\USDC1-BEMAPDC01\D$ Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 8/14/2017 5:35 AM Log_Backup_2017-08-14 [DBG]: PS C:\Windows>> Copy-Item : Cannot find path 'D:\BMCSoftware\BMCPortalKit\webserver\tools\apache-openssl\logs' because it does not exist. At D:\ScriptRepo\Smart_Backup_Create folders_by_Date.ps1:8 char:1 + Copy-Item -Recurse -Filter *.* -path $SrcPath -destination $DestPath -Force + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (D:\BMCSoftware\...he-openssl\logs:String) [Copy-Item], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.CopyItemCommand
Пожалуйста, дайте мне знать, где я делаю что-то не так. Исходная и конечная папки находятся на одном сервере
Что я уже пробовал:
$ComputerName = " Имя_сервера"
$DriveLetter = " D"
$CreateFolderPath = " Log_Backup_$((Get-Date).ToString ('yyyy-MM-dd'))"
$SrcPath = \\$Имя_компьютера\$Буква_диска$\BMCSoftware\BMCPortalKit\сервер\\сервис Apache и OpenSSL и\журналы
$DestPath = \\$Имя_компьютера\$Буква_диска$\Log_Backup_$((Дата).ToString ('yyyy-MM-dd'))
New-Item-Path \\$ComputerName\$DriveLetter$\$Path-type directory-Force / / Создание папки
Копия-Предмет -Рекурсия -Фильтр *.* -путь $SrcPath -назначения $DestPath -сила
Jochen Arndt
Заключите содержимое переменной в двойные кавычки:
$SrcPath = "\\$ComputerName\$DriveLetter ..."
Сделайте это также при передаче в качестве аргументов (они могут содержать пробелы, которые будут обрабатывать строку как несколько аргументов)
Copy-Item -path "$SrcPath"
У вас могут возникнуть еще проблемы с
"Log_Backup_$((Дата).ToString ('yyyy-MM-dd'))"
Решение этой проблемы требует знания того, что это должно делать.