
Моя команда PowerShell Copy-Item выдает ошибку, для которой я не могу найти никаких ссылок.
Используя PowerShell 4.x, я пытаюсь скопировать файлы с локального диска на удаленный сервер (та же сеть/домен). Удаленный путь существует и пуст.
Следующая Copy-Item
команда из этого скрипта генерирует следующую ошибку (насколько я могу судить) для каждого скопированного файла:
$SessionTarget = New-PSSession -ComputerName "MYSERVER1"
Copy-Item -Path "C:\Websites\XXX\*" -Destination "C:\Websites\XXX\" -ToSession $SessionTarget -Recurse
Ошибка:
Copy-Item : Exception setting "Attributes": "Cannot convert value "1179648" to type "System.IO.FileAttributes" due to enumeration values that are not valid. Specify one of the following enumeration values and try again. The possible enumeration values are "ReadOnly, Hidden, System, Directory, Archive, Device, Normal, Temporary, SparseFile, ReparsePoint, Compressed, Offline, NotContentIndexed, Encrypted, IntegrityStream, NoScrubData"."
At C:\Websites\XXX_Deployment\Deploy.ps1:6 char:1
+ Copy-Item -Path "C:\Websites\XXX\*" -Destination "C:\Websites\XXX ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Copy-Item], SetValueInvocationException
+ FullyQualifiedErrorId : ExceptionWhenSetting
Хорошая новость в том, что файлы, похоже, копируются.
Есть ли у вас мысли о причине этой ошибки?
Спасибо!
решение1
Как отметил мой Кейт Миллер ниже (спасибо!), эти значения связаны с «новыми» атрибутами файла.
Я нашел один файл, в котором возникала ошибка, проверил его текущие атрибуты и обнаружил, что у него есть атрибут «(U)»:
'attrib .\MyFile.txt'
(U) 0x100000 Незакреплено (OneDrive «файлы только для онлайн-доступа»)
Затем я удалил этот атрибут и смог использовать Copy-Item
команду без ошибок:
атрибут .\MyFile.txt -U
В этом посте представлен хороший список всех атрибутов и их битовых значений:
решение2
1179648 = 0x00120000
Они соответствуют «более новым» атрибутам:
Unpinned = 0x00100000
NoScrubData = 0x00020000