localscript/ExampleExportObject.ps1
# https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/new-itemproperty?view=powershell-7.1#:~:text=True-,-PropertyType,-Specifies%20the%20type <# String: Specifies a null-terminated string. Equivalent to REG_SZ. ExpandString: Specifies a null-terminated string that contains unexpanded references to environment variables that are expanded when the value is retrieved. Equivalent to REG_EXPAND_SZ. Binary: Specifies binary data in any form. Equivalent to REG_BINARY. DWord: Specifies a 32-bit binary number. Equivalent to REG_DWORD. MultiString: Specifies an array of null-terminated strings terminated by two null characters. Equivalent to REG_MULTI_SZ. Qword: Specifies a 64-bit binary number. Equivalent to REG_QWORD. Unknown: Indicates an unsupported registry data type, such as REG_RESOURCE_LIST. #> [PSCustomObject]@{ 'RegKey' = 'SOFTWARE\CLASSES\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32' 'Enable' = @{ 'Operation' = 'Set' 'ValueName' = '(Default)' 'ValueData' = $null 'ValueType' = 'String' } 'Disable' = @{ 'Operation' = 'Remove' 'Path' = 'SOFTWARE\CLASSES\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}' } 'Default' = @{ 'Operation' = 'Remove' 'Path' = 'SOFTWARE\CLASSES\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}' } } | ConvertTo-Json | Set-Content -Path './private/data/ClassicContextMenu.json -Encoding utf8' [PSCustomObject]@{ 'RegKey' = 'Software\Microsoft\Windows\CurrentVersion\Policies\Explorer' 'Enable' = @{ 'Operation' = 'New' 'ValueName' = 'HideClock' 'ValueData' = 0 'ValueType' = 'DWORD' } 'Disable' = @{ 'Operation' = 'New' 'ValueName' = 'HideClock' 'ValueData' = 1 'ValueType' = 'DWORD' } } | ConvertTo-Json | Set-Content -Path './private/data/ShowClock.json' -Encoding utf8 function New-JsonObject { Param( $RegKey = 'Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced', $Operation = 'New', $ValueName, $ValueType = 'DWORD', $FileName ) [PSCustomObject]@{ 'RegKey' = 'Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' 'Enable' = @{ 'Operation' = 'New' 'ValueName' = $ValueName 'ValueData' = 1 'ValueType' = 'DWORD' } 'Disable' = @{ 'Operation' = 'New' 'ValueName' = $ValueName 'ValueData' = 0 'ValueType' = 'DWORD' } } | ConvertTo-Json | Set-Content -Path "./private/data/$FileName.json" -Encoding utf8 -NoNewline } import-csv C:\Users\jcjbr\mycsv.csv | ForEach-Object {New-JsonObject -ValueName $_.Name -FileName $_.CmdletName} get-itempropertyvalue 'HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\$$windows.data.lunarcalendar\Current' -name data Get-TaskbarAdditionalCalendar [PSCustomObject]@{ 'RegKey' = 'Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\$$windows.data.lunarcalendar\Current' 'CalendarOption' = @{ 'None' = @{ 'Operation' = 'New' 'ValueName' = 'Data' 'ValueData' = 2,0,0,0,249,166,66,145,68,187,215,1,0,0,0,0,67,66,1,0,16,2,0 'ValueType' = 'Binary' } 'SimplifiedLunar' = @{ 'Operation' = 'New' 'ValueName' = 'Data' 'ValueData' = 2,0,0,0,129,140,84,137,68,187,215,1,0,0,0,0,67,66,1,0,16,4,0 'ValueType' = 'Binary' } 'TraditionalLunar' = @{ 'Operation' = 'New' 'ValueName' = 'Data' 'ValueData' = 2,0,0,0,214,4,84,166,67,187,215,1,0,0,0,0,67,66,1,0,16,6,0 'ValueType' = 'Binary' } } } | ConvertTo-Json -Depth 3 | Set-Content -Path './private/data/TaskbarAdditionalCalendar.json' -Encoding utf8 TaskbarAdditionalCalendar # None 2,0,0,0,249,166,66,145,68,187,215,1,0,0,0,0,67,66,1,0,16,2,0 # Simp 2,0,0,0,129,140,84,137,68,187,215,1,0,0,0,0,67,66,1,0,16,4,0 # Trad 2,0,0,0,214,4,84,166,67,187,215,1,0,0,0,0,67,66,1,0,16,6,0 |