ファイルの作成者情報を取得する【powershell】
Windowsでfile creator(=owner)情報を取得するためのメモ
get-childitemではファイルの作成者=Ownerが取得できないようです。
っていうか、Get-Aclで取れるんですけどね。pathの形が”Microsoft.PowerShell.Core\FileSystem::”から始まるファイルシステムプロバイダ情報で始まるのでちょっと扱いにくいのですよ。
ということで、Convert-Pathを使ってやると普通のPathになります。
Filenameだけでいい場合はSplit-path の-leafオブションでとれます。
1 2 3 4 |
$TargetFolder = "\\Sever\SharedFolder" $Items = Get-Acl $TargetFolder\* $Items |Select-Object Owner,@{Label="Filename";Expression={Split-Path $_.Path -Leaf} } , @{Label="Path";Expression={ Split-Path (Convert-Path $_.Path) -Parent } }|Export-Csv .\Creator.csv -NoTypeInformation -Encoding Default |
もしファイルをコピーとか移動とかしたければ、foreach( $Item in Items){$Item.path ………}とかすれば自由にできます。
管理人おすすめのimportexcelモジュールを使うとこんな感じで直接Excelに吐けます。
1 2 |
Import-Module importexcel Items |Select-Object Owner,@{Label="Filename";Expression={Split-Path $_.Path -Leaf} } , @{Label="Path";Expression={ Split-Path (Convert-Path $_.Path) -Parent } }|Export-Excel .\登録者.xlsx -WorksheetName "ファイル一覧" -AutoSize -AutoFilter -ClearSheet |
ImportExcelについては下記に詳細をかいているのでごらんください。