我的 Copy-Item PowerShell 命令生成一个我找不到任何参考的错误。
使用 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
好消息是文件似乎被复制了。
关于这个错误的任何想法?
谢谢!
1179648 = 0x00120000
这些对应于“较新”的属性:
Unpinned = 0x00100000
NoScrubData = 0x00020000
更多信息:https ://www.google.com/search?q=file+attributes+noscrubdata+unpinned&rlz=1C1JJTC_enUS1014US1014&oq=file+attributes+noscrubdata+unpinned&aqs=chrome..69i57j0i546l3.36771j1j7&sourceid=chrome&ie=UTF-8
正如下面我的 Keith Miller 所述(谢谢!),这些值与“新”文件属性有关。
我找到了一个出现错误的文件,检查了它的当前属性,发现它具有“(U)”属性:
'属性 .\MyFile.txt'
(U) 0x100000 未固定(OneDrive“仅在线文件”)
然后我删除了这个属性,并且能够正确使用该
Copy-Item
命令:属性 .\MyFile.txt -U
这篇文章很好地列出了所有属性及其位值:
Windows 资源管理器的文件属性列值