To complement js2010's helpful answer, which notes that lack of quoting is your primary problem ({ and } are PowerShell metacharacters):
In PowerShell v5 and above, you can use the Get-ItemPropertyValue cmdlet to directly return the data associated with a registry key's value:
# Note the use of '...' around the registry path
# and the value name UninstallString at the end.
Get-ItemPropertyValue 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{1535CAA3-9F33-414E-8987-0365169BE741}' UninstallString
As for what you tried:
An unquoted argument such as HKLM:\...\{1535CAA3-9F33-414E-8987-0365169BE741} is processed as follows:
Because {...} creates a script block, it is considered the start of a separate argument, and string 'HKLM:\...\' and script block {1535CAA3-9F33-414E-8987-0365169BE741} are passed as two arguments.
Because Get-Item didn't expect an extra (positional) argument, it complained accordingly, and used the string representation of the script block in its error message.
- A script block's string representation is its verbatim content, excluding
{ and }, which you can verify with {1535CAA3-9F33-414E-8987-0365169BE741}.ToString()
As noted, quoting is the solution, and since the path contains neither PowerShell variable references nor subexpressions, using a single-quoted, i.e. verbatim string literal ('...') is best.
The (usually less desirable) alternative is to stick with an unquoted argument and use individual escaping of PowerShell metacharacters with ` (the so-called backtick); e.g.:
Write-Output HKLM:\...\`{1535CAA3-9F33-414E-8987-0365169BE741`}
"". But even if you do that I don't think you can access the registry value like that.