Audit Email Deletion in Microsoft 365

If you use a shared mailbox and sometimes wonder who deleted some of the emails from the inbox, you can search the audit log to find out. Before you go any further, check if you have turned on the Audit Log Search in your tenant first. Get-AdminAuditLogConfig | Format-List UnifiedAuditLogIngestionEnabled If you haven’t, do this to turn it on. Set-AdminAuditLogConfig […]

Self-Signing Certificate to Enable HTTPS on IIS

For internal-use IIS-based sites, you can enable HTTPS by self-signing a certificate and distributing it through the Group Policy so you can avoid seeing warning messages like this. Self-Signing a Certificate Simply open an elevated PowerShell window and run the following command to self-sign a 5-year certificate to the certificate store on the local machine. New-SelfSignedCertificate -DnsName “servername” -CertStoreLocation cert:\LocalMachine\My […]

In-Place Upgrading A Windows Server 2012 Domain Controller to Windows Server 2019 or 2022

Generally speaking, in-place upgrading from one server version to another usually goes almost perfectly, given that the upgrade path is supported. You can just mount an ISO image and go with it. But when the server you are upgrading is a domain controller. There are other things to consider before going ahead. Pre-upgrade First, if you have Azure (Entra) AD […]

Remotely Uninstalling A Program Using PowerShell

If you don’t have a software deployment tool, such as PDQ Deployment, uninstalling a program remotely on a computer could be painful. With PowerShell, it could make the process a lot easier. Uninstalling a program via WMI First, let’s see how to view the installed program. Get-CimInstance -Class Win32_Product -ComputerName $computername To specify which program, you can pipe the result […]