Windows Server 2012 までの Windows Update をスクリプトから実行する場合、Windows Update Agent API を使用したスクリプトを実行する機会が多かったかと思います。
PowerShell ではありませんが、Searching, Downloading, and Installing Updates で公開されているような方法で、Windows Update をスクリプトで制御することが可能でした。
Windows Server 2016 からは、Windows Update Orchestrator によって制御が行われるようになっており、従来の COM の「Microsoft.Update.AutoUpdate」を使用して、Windows Update をスクリプトから実行することも可能でしたが、それ以外の方法も提供が行われています。
Windows Server 2016 からは、WMI の Windows Update Provider を使用して Windows Update の制御が実行できるようになっています。
日本語の情報としては Nano Server の更新を管理する で触れられていますが、「root/Microsoft/Windows/WindowsUpdate」の Namespace 配下のクラスを使用することで、様々な操作を行うことができます。
Windows Server 2019 になると、「WindowsUpdateProvider」のモジュールとしていくつかのコマンドレットが追加されており、WMI を直接呼び出さなくても、コマンドレットで簡単に操作を行うことができるようになっています。
Windows Server 2016 の場合は、コマンドレットが提供されていませんので、WMI を呼び出すことで、Windows Server 2019 の WindowsUpdateProvider のような操作を行うことができます。
例えば、「Get-WULastInstallationDate」と等価のことを Windows Server 2016 で実行したい場合には、次のようなスクリプトを実行しすることで代替できます。
(Windows Server 2019 のコマンドレットも WMI のメソッドを Invoke しているものになりますので、Windows Server 2016 で該当のメソッドを直接呼び出しています)
Invoke-CimMethod -Namespace "root/Microsoft/Windows/WindowsUpdate" -ClassName "MSFT_WUSettings" -MethodName GetLastUpdateInstallationDate
情報の取得系であれば、「MSFT_WUSettingsのクラスは以下の各種メソッドを使用することで対応できます。
そのほかの操作方法についてですが、Scripting Windows Update のラボのスクリプトがとても参考になります。
この中では、Windows Server 2016 / 2019 の両対応のスクリプトとして、Windows Update を WMI でスクリプトから実行する処理が記載されておりますので、このスクリプトを参考にすることで、2016 でも動作可能なスクリプトの開発ができるかと。