PowerShell で UInt32 に最大値(0xffffffff)をセットしようとするとエラーになってしまいます。
これは、0xffffffff が Int32 の -1 と判断されてしまうからです。
この問題を回避するには、文字列として "0xffffffff" を渡し、受け取る側でキャストします。
[System.UInt32]$a = "0xffffffff"
PowerShell Core であれば、値に u を付けて unsigned を指定できるので、以下のようにすることもできます。
[System.UInt32]$a = 0xffffffffu
数値リテラルについて - PowerShell | Microsoft Docs
https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_numeric_literals?WT.mc_id=WD-MVP-36880
Copyright © MURA All rights reserved.