Может показаться, что, несмотря на то, что вы думаете, вы на самом деле не выполняете команду там, где вы думаете.
Когда я запускаю это:
import subprocess
args = [
r'powershell.exe',
r'-Command',
r'Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher | Sort DisplayName -Unique'
]
result = subprocess.run(args, capture_output=True)
print(result.stdout.decode('windows-1252'))
( либо из PyCharm, либо из командной строки с python test.py
)
При выполнении этого я получаю следующий или идентичный результат:
powershell.exe -Command "Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher | Sort DisplayName -Unique"
(непосредственно из командной строки)
Единственная реальная разница в окончаниях строк, но это не ваша проблема.