MetaData Copy-Item未带来用户名

时间:2018-01-02 22:58:41

标签: powershell

我在将文件复制到另一个目录时尝试复制文件的元数据。 但是,我注意到用户名(上次修改文件或创建文件的人)没有使用元数据。 我查看了文件对象的所有属性,但无法看到与文件作者相关的任何属性。

enter image description here

这是我的powershell脚本

$Source = "C:\Users\someuser\SharePoint\Budget - Documents\Temp Datasources\Test"
$Destination = "C:\Users\someuser\SharePoint\Storm - General\Test"

$Files = Get-ChildItem -Path $Source 

ForEach($File In $Files){
    #Construct Destination file path
    $DestinationFile = [System.IO.FileInfo] (Join-Path -Path $Destination -ChildPath $File.Name)
    Write-Verbose -Message "Destination File $DestinationFile " -Verbose

    Copy-Item -Path $File.FullName -Destination $DestinationFile -Force

    #Verify if the file was copied and exists before copying over properties and attributes. 
    if($DestinationFile.Exists){
        $DestinationFile.CreationTime = $File.CreationTime
        $DestinationFile.LastAccessTime = $File.LastAccessTime
        $DestinationFile.LastWriteTime = $File.LastWriteTime
        $DestinationFile.Attributes = $File.Attributes        

    }    
}

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

基于讨论Here 看起来这些细节实际上并不是属性的一部分,而是word和excel文档的扩展。您必须为Word或Excel加载一个com对象,并使用它来读取这些额外的属性。

我提供的链接确实有链接到ScriptingGuy Post,在那里他介绍了这个(仅限Word,但我相信你可以为excel修改它)