powershellでExcelファイルの個人情報を削除する

事前に Set-ExecutionPolicy RemoteSigned して PowerShellスクリプトの実行セキュリティ・ポリシーを変更しておく必要はある。

$path = "Xlsを探すパス(サブフォルダも再帰して探します)" 
Add-Type -AssemblyName Microsoft.Office.Interop.Excel 
$xlRemoveDocType = "Microsoft.Office.Interop.Excel.XlRemoveDocInfoType" -as [type] 
$excelFiles = Get-ChildItem -Path $path -include *.xls, *.xlsx ,*.xlsm -recurse 
$objExcel = New-Object -ComObject excel.application 
$objExcel.visible = $false 
foreach($wb in $excelFiles) 
{ 
	$workbook = $objExcel.workbooks.open($wb.fullname) 
	"Removing document information from $wb" 
	$workbook.RemoveDocumentInformation($xlRemoveDocType::xlRDIAll) 
	$workbook.Save() 
	$objExcel.Workbooks.close() 
} 
$objExcel.Quit()
名前 説明
xlRDIAll 99 文書情報をすべて削除します。
xlRDIComments 1 文書情報からコメントを削除します。
xlRDIContentType 16 文書情報からコンテンツ タイプのデータを削除します。
xlRDIDefinedNameComments 18 文書情報から定義済みの名前のコメントを削除します。
xlRDIDocumentManagementPolicy 15 文書情報から文書管理ポリシー データを削除します。
xlRDIDocumentProperties 8 文書情報から文書プロパティを削除します。
xlRDIDocumentServerProperties 14 文書情報からサーバー プロパティを削除します。
xlRDIDocumentWorkspace 10 文書情報からワークスペース データを削除します。
xlRDIEmailHeader 5 文書情報からメール ヘッダーを削除します。
xlRDIExcelDataModel 23 文書情報からデータ モデル データを削除します。
xlRDIInactiveDataConnections 19 文書情報から無効なデータ接続を削除します。
xlRDIInkAnnotations 11 文書情報からインク注釈を削除します。
xlRDIInlineWebExtensions 21 文書情報からインライン Web 拡張機能を削除します。
xlRDIPrinterPath 20 文書情報からプリンターのパスを削除します。
xlRDIPublishInfo 13 文書情報から発行情報データを削除します。
xlRDIRemovePersonalInformation 4 文書情報から個人情報を削除します。
xlRDIRoutingSlip 6 文書情報から回覧先を削除します。
xlRDIScenarioComments 12 文書情報からシナリオのコメントを削除します。
xlRDISendForReview 7 文書情報から [校閲者へ送信] 情報を削除します。
xlRDITaskpaneWebExtensions 22 文書情報から作業ウィンドウの Web 拡張機能を削除します。

ネタ元