I've tried to read the installed software this way because I want to read also remote systems: #AutoIt3Wrapper_Change2CUI=y #AutoIt3Wrapper_UseUpx=n #include <array.au3> Global $server = "localhost" $objWMIService = ObjGet("winmgmts:{impersonationLevel = impersonate}!\\" & $server & "\root\cimv2") Software($server) Func Software($srv) Local $function_name = "Software" Local $objReg, $HKLM, $BaseKey, $BaseKey64, $server, $arrSubKeys, $SubKey, $Value, $objRegService