Dargslan.WinClipboardAudit.psm1

<#
.SYNOPSIS
    Windows clipboard and data transfer security toolkit — clipboard history, cloud clipboard, cross-device sync, and data leakage prevention
.DESCRIPTION
    2026 Edition — Dargslan Windows Admin Toolkit.
    https://dargslan.com | https://dargslan.com/cheat-sheets
.LINK
    https://dargslan.com
#>


function Get-ClipboardAudit {
    <#
    .SYNOPSIS
        Audit clipboard and data transfer security settings
    .DESCRIPTION
        Part of Dargslan.WinClipboardAudit (2026 Edition) — https://dargslan.com
    #>

    [CmdletBinding()] param([switch]$Json)
    $report = [ordered]@{
        ClipboardHistory = [PSCustomObject]@{
            Enabled = (Get-ItemProperty "HKCU:\Software\Microsoft\Clipboard" -ErrorAction SilentlyContinue).EnableClipboardHistory
            SyncEnabled = (Get-ItemProperty "HKCU:\Software\Microsoft\Clipboard" -ErrorAction SilentlyContinue).EnableCloudClipboard
            SyncAcrossDevices = (Get-ItemProperty "HKCU:\Software\Microsoft\Clipboard" -ErrorAction SilentlyContinue).CloudClipboardAutomaticUpload
        }
        PolicySettings = [PSCustomObject]@{
            AllowClipboardHistory = (Get-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -ErrorAction SilentlyContinue).AllowClipboardHistory
            AllowCrossDeviceClipboard = (Get-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -ErrorAction SilentlyContinue).AllowCrossDeviceClipboard
        }
        NearbySharing = [PSCustomObject]@{
            Enabled = (Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\CDP" -ErrorAction SilentlyContinue).NearShareChannelUserAuthzPolicy
            FileTransfer = (Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\CDP" -ErrorAction SilentlyContinue).CdpSessionUserAuthzPolicy
        }
        Warnings = @()
    }
    if ($report.ClipboardHistory.SyncEnabled -eq 1) { $report.Warnings += "Cloud clipboard sync is enabled — data may leave the device" }
    if ($report.ClipboardHistory.Enabled -eq 1) { $report.Warnings += "Clipboard history is enabled — sensitive data may be retained" }
    $report.Summary = [PSCustomObject]@{
        ClipboardHistory = if($report.ClipboardHistory.Enabled -eq 1){"Enabled"}else{"Disabled"}
        CloudSync = if($report.ClipboardHistory.SyncEnabled -eq 1){"Enabled"}else{"Disabled"}
    }
    if ($Json) { return $report | ConvertTo-Json -Depth 3 }
    Write-Host "`n [Clipboard Audit - 2026]" -ForegroundColor Cyan
    $report.Summary | Format-List
    $report.ClipboardHistory | Format-List
    if ($report.Warnings) { $report.Warnings | ForEach-Object { Write-Host " Warning: $_" -ForegroundColor Yellow } }
    return $report
}

Export-ModuleMember -Function *