Scripts/Clear-WOLDatabase.ps1
Function Clear-WOLDatabase { <# .SYNOPSIS Remove all records from the Wake On LAN database .DESCRIPTION Remove all records from the Wake On LAN database .PARAMETER Force This switch (optional) forces the deletion all records without prompting for confirmation .EXAMPLE Clear-WOLDatabase .EXAMPLE Clear-WOLDatabase -Force .NOTES N/A .LINK N/A #> [CmdletBinding (SupportsShouldProcess = $True, ConfirmImpact = 'High' ) ] Param ( [Switch]$Force ) BEGIN {} PROCESS { If ($Force -and $WhatIfPreference -eq $False -or $PSCmdlet.ShouldProcess('Wake On LAN database', 'Removing all records')) { $Path = $MyInvocation.MyCommand.Module.ModuleBase + '\System.Data.SQLite.dll' Add-Type -Path $Path $DBConnect = New-Object -TypeName System.Data.SQLite.SQLiteConnection $DBConnect.ConnectionString = "Data Source = $env:ALLUSERSPROFILE\PSWakeOnLAN\WOLDatabase.db3" $DBConnect.Open() $SQL = $DBConnect.CreateCommand() $SQL.CommandText = 'DELETE FROM Computers' $SQL.ExecuteNonQuery() | Out-Null $SQL.Dispose() $DBConnect.Close() Write-Verbose -Message 'Database cleared' } Else { If ($WhatIfPreference -eq $False) { Write-Verbose -Message 'Deletion cancelled' } } } END {} } |