Featured image of post Cara Menghapus Metadata (Informasi Pribadi) dari Excel dan Word Sekaligus Menggunakan PowerShell

Cara Menghapus Metadata (Informasi Pribadi) dari Excel dan Word Sekaligus Menggunakan PowerShell

Cara Menghapus Metadata (Informasi Pribadi) dari Excel dan Word Sekaligus Menggunakan PowerShell

File Office seperti Excel secara otomatis menyimpan “metadata (informasi pribadi)” seperti pembuat, pihak terakhir yang mengubah, nama perusahaan, dan lainnya. Terdapat banyak kasus di mana Anda ingin menghapus informasi ini, misalnya ketika berbagi file ke luar perusahaan.

Artikel ini akan menjelaskan secara rinci tentang cara menghapus metadata Excel menggunakan PowerShell, dengan fokus pada pemrosesan massal dalam folder dan penerapannya pada file Office lain seperti Word dan PowerPoint.


1. Menghapus Metadata dari Satu File Excel

Ini adalah skrip dasar untuk menghapus informasi pribadi dari satu file Excel. Skrip ini memanggil objek COM Excel, mengatur properti RemovePersonalInformation menjadi $true, lalu menyimpan dan menimpanya.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# Jalankan aplikasi Excel secara tersembunyi
$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
$excel.DisplayAlerts = $false

# Buka file (※ tentukan path absolut)
$filePath = "C:\Path\To\Your\File.xlsx"
$wb = $excel.Workbooks.Open($filePath)

# Aktifkan pengaturan untuk menghapus metadata (informasi pribadi)
$wb.RemovePersonalInformation = $true

# Simpan dengan menimpa dan tutup
$wb.Save()
$wb.Close($false)

# Keluar dari Excel dan bebaskan memori
$excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null

Catatan: Path yang diberikan ke Workbooks.Open() harus berupa path absolut (full path). Path relatif dapat menyebabkan error.


2. Memproses Semua File Excel dalam Folder Sekaligus

Dalam praktiknya, sering kali Anda ingin “menghapus metadata dari puluhan file Excel di folder tertentu sekaligus”. Hal ini dapat dicapai dengan menggabungkan Get-ChildItem untuk melakukan perulangan.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
$targetFolder = "C:\Path\To\Your\Folder"

# Ambil semua file .xlsx dan .xls di dalam folder
$excelFiles = Get-ChildItem -Path $targetFolder -Include "*.xlsx", "*.xls" -Recurse

if ($excelFiles.Count -eq 0) {
    Write-Host "File Excel tidak ditemukan."
    exit
}

$excel = New-Object -ComObject Excel.Application
$excel.Visible = $false
$excel.DisplayAlerts = $false

foreach ($file in $excelFiles) {
    Write-Host "Menghapus metadata dari $($file.Name) ..."
    
    # Buka file
    $wb = $excel.Workbooks.Open($file.FullName)
    
    # Hapus metadata dan simpan dengan menimpa
    $wb.RemovePersonalInformation = $true
    $wb.Save()
    $wb.Close($false)
}

$excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) | Out-Null

Write-Host "Semua proses selesai!"

3. Menghapus Metadata dari File Office Lainnya (Word / PowerPoint)

Anda juga dapat menghapus metadata dari Word atau PowerPoint menggunakan logika yang sama persis seperti pada Excel. Satu-satunya perbedaan adalah nama objek COM yang dipanggil, sementara ketersediaan properti RemovePersonalInformation tetap sama.

Untuk Word

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$word = New-Object -ComObject Word.Application
$word.Visible = $false
$word.DisplayAlerts = 0

$doc = $word.Documents.Open("C:\Path\To\Your\File.docx")
$doc.RemovePersonalInformation = $true
$doc.Save()
$doc.Close()

$word.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($word) | Out-Null

Untuk PowerPoint

Untuk PowerPoint, pengaturan properti RemovePersonalInformation tetap sama, tetapi perilaku untuk menjalankannya secara tersembunyi sedikit berbeda.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$ppt = New-Object -ComObject PowerPoint.Application

# Buka dengan menentukan mode tersembunyi (msoFalse) pada argumen ke-2 hingga ke-4
$presentation = $ppt.Presentations.Open("C:\Path\To\Your\File.pptx", $false, $false, $false)
$presentation.RemovePersonalInformation = $true
$presentation.Save()
$presentation.Close()

$ppt.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($ppt) | Out-Null

Kesimpulan

Dengan memanfaatkan PowerShell dan objek COM, Anda dapat mengotomatiskan sepenuhnya penghapusan metadata dari file Office. Untuk mencegah kebocoran informasi rahasia atau nama pribadi secara tidak sengaja, sangat praktis untuk menyiapkan skrip pemrosesan massal dalam folder sebelum mengirimkan file.

comments powered by Disqus
Dibangun dengan Hugo
Tema Stack dirancang oleh Jimmy