Scripts/Handig.ps1


Start-Process cleanmgr -ArgumentList "/sagerun:1 /VeryLowDisk /AUTOCLEAN"

Get-ChildItem $env:TEMP | Remove-Item -Recurse -Force -ea 0


Get-UserProfiles | Where-Object { $_.LastUseTime -lt (Get-Date).AddDays(-180) } | Remove-CimInstance


New-InboxRule -FromAddressContainsWords support@henkie.nl -MoveToFolder someone@somewhere.com:\Inbox\Automail -Name "support@henkie.nl"


# Pwsh7 Sandbox

$ProgressPreference = 'SilentlyContinue'
$latestVersionX64msi = Invoke-WebRequest -Uri "https://api.github.com/repos/powershell/powershell/releases/latest" -UseBasicParsing | Select-Object -ExpandProperty Content | ConvertFrom-Json | Select-Object -ExpandProperty assets | Where-Object name -Match Win-x64.msi
Invoke-WebRequest $latestVersionX64msi.browser_download_url -OutFile $latestVersionX64msi.name
$ProgressPreference = 'Continue'
$install = Start-Process "msiexec.exe" -ArgumentList "/i $($latestVersionX64msi.name) /qn /l*v PowershellMsi.log" -Wait -PassThru
$install.ExitCode
Remove-Item $($latestVersionX64msi.name) -Force


# VSCode install
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest -Uri "https://code.visualstudio.com/sha/download?build=stable&os=win32-x64-user" -OutFile "VSCodeUserSetup.exe"
$ProgressPreference = 'Continue'
$install = Start-Process "VSCodeUserSetup.exe" -ArgumentList "/verysilent /suppressmsgboxes" -Wait -PassThru
$install.ExitCode
Remove-Item "C:\VSCodeUserSetup.exe" -Force



# Base 64 image

$FilePath = ".\wiki-logo-wit.png"

$Base64 = [Convert]::ToBase64String((Get-Content $FilePath -AsByteStream))
$Base64
$HTML = "<img src=`"data:image/png; base64, $($Base64)`" />"
$HTML
$HTML | clip

$OutFilePath = "C:\Temp\test.png"
$Image = [Drawing.Bitmap]::FromStream([IO.MemoryStream][Convert]::FromBase64String($Base))
$Image.Save($OutFilePath)



[System.Environment]::SetEnvironmentVariable("DockerFolder", "$($env:Onedrive)\Docker", "Machine")


# Installed

(Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*) + (Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*) | Where-Object { $_.DisplayName } | Select-Object DisplayName
$progs = (Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*) + (Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*)
$progs

# Remote wipe

$namespaceName = "root\cimv2\mdm\dmmap"
$className = "MDM_RemoteWipe"
$methodName = "doWipeMethod"

$session = New-CimSession

$params = New-Object Microsoft.Management.Infrastructure.CimMethodParametersCollection
$param = [Microsoft.Management.Infrastructure.CimMethodParameter]::Create("param", "", "String", "In")
$params.Add($param)

$instance = Get-CimInstance -Namespace $namespaceName -ClassName $className -Filter "ParentID='./Vendor/MSFT' and InstanceID='RemoteWipe'"

if ($WeetJeHetAbsoluutZeker) {
    $session.InvokeMethod($namespaceName, $instance, $methodName, $params)
}



# Detect onbekende devices / missende drivers
Get-PnpDevice | Where-Object Status -NotMatch "OK|Unknown" | Format-List


# Powersettings
powercfg /batteryreport
powercfg /sleepstudy
powercfg /lastwake


# Windows Hello reregistration
certutil.exe -deleteHelloContainer


# Defender Anti-virus

Get-MpPreference
Get-MpPreference | Select-Object -ExpandProperty exclusionpath
Add-MpPreference -ExclusionPath 'C:\Temp\test'
Remove-MpPreference -ExclusionPath 'C:\Temp\test'





$TaskAction = New-ScheduledTaskAction -Execute "tsdiscon.exe"
# New-ScheduledTaskPrincipal
$TaskTrigger = New-ScheduledTaskTrigger -AtLogOn
Register-ScheduledTask -TaskName "Lock at logon" -Action $TaskAction -Trigger $TaskTrigger




# Logonevents

function Get-LogonEvents {
    [CmdletBinding()]
    param (

    )

    $logonEvents = Get-WinEvent -LogName 'Security' -FilterXPath "*[System[EventID=4624 or EventID=4648]]" | Select-Object -First 50

    $result = @()
    foreach ($logonEvent in $logonEvents) {
        $logonType = if ($logonEvent.Id -eq 4648) {
            "Explicit"
        } else {
            "Interactive"
        }
        $obj = [pscustomobject] @{
            Time      = $logonEvent.TimeCreated
            Message   = $logonEvent.Message
            LogonType = $logonType
        }
        $result += $obj
    }
    return $result

}



# Local Admin

Get-LocalUser

Set-LocalUser -Name Admin -Password (ConvertTo-SecureString "12345678" -AsPlainText -Force)

Enable-LocalUser -Name Admin

New-LocalUser -Name "Automation" -Password (ConvertTo-SecureString "12345678" -AsPlainText -Force) -PasswordNeverExpires -AccountNeverExpires
Add-LocalGroupMember -Group "Administrators" -Member "Automation"



# Enable Taskscheduler Eventlog

$logName = 'Microsoft-Windows-TaskScheduler/Operational'
$log = New-Object System.Diagnostics.Eventing.Reader.EventLogConfiguration $logName
$log.IsEnabled = $true
$log.SaveChanges()