ファイルの作成者情報を取得する【powershell】

Windowsでfile creator(=owner)情報を取得するためのメモ

get-childitemではファイルの作成者=Ownerが取得できないようです。

っていうか、Get-Aclで取れるんですけどね。pathの形が”Microsoft.PowerShell.Core\FileSystem::”から始まるファイルシステムプロバイダ情報で始まるのでちょっと扱いにくいのですよ。

ということで、Convert-Pathを使ってやると普通のPathになります。
Filenameだけでいい場合はSplit-path の-leafオブションでとれます。

$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に吐けます。

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については下記に詳細をかいているのでごらんください。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

CAPTCHA


This site uses Akismet to reduce spam. Learn how your comment data is processed.