2016-09-27 1 views
0

インストールされているプログラムのリストを取得したい。インストールされているプログラムのレジストリキーを入手するphp

私はそれがPowerShellを使用しどのように動作するかを知っている:Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize .

しかし、私はPHPでそれをしたいです。私はこのエラーを取得する

<?php 
$Wshshell= new COM('WScript.Shell'); 
$data = $Wshshell->regRead('HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall'); 

?> 

出典: WshShell.RegRead
説明:レジストリキー "HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432NODE \マイクロソフト\ Windowsの\ CurrentVersionの\アンインストール" を開くことができません。今、私はこれを持っていますあなたがcorrecやっている

$Wshshell = new COM('WScript.Shell'); 
$data = $Wshshell->regRead('HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\'); 

echo "result: " . $data; 

+0

おそらく、エラーに基づいた問題ではありませんが、二重バックスラッシュを使用してください。例えば、 "HKEY_LOCAL_MACHINE \\ Software \\ ..."。 – pmahomme

+0

私は今これを持っています:$ Wshshell = new COM( 'WScript.Shell'); $ data = $ Wshshell-> regRead( 'HKEY_LOCAL_MACHINE \\ Software \ \\ Microsoft \\ Windows \\ CurrentVersion \\ Uninstall \\ '); echo($ data);動作しますが、何も表示しません – jurh

+0

エラーはなくなりましたが、 – pmahomme

答えて

0

のようなレジストリキーを読み取ることができます。ここでそれを取得します:https://github.com/merlinthemagic/MTS

を使用すると、単純に次のコードを使用しますダウンロードした後:

$shellObj = \MTS\Factories::getDevices()->getLocalHost()->getShell('powershell'); 

$strCmd = 'Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate'; 

$return1 = $shellObj->exeCmd($strCmd); 

echo $return1;// list of all programs 

あなたは$ shellObjに対して好きなコマンドを発行することができ、環境がPHPスクリプトの生活を通して維持されます。

0

を読み取るためのこれはあなたの問題を解決することができます現在選択されているフォルダのキー/値を探している場合は、スラッシュを追加してサブフォルダを取得してください。

レジストリをチェックすると、「アンインストール」フォルダの下にキーはありませんが、サブフォルダが必要です。

+0

私はすべてのサブフォルダの表示名を取得したいと思います。アンインストールフォルダ – jurh

0

は、PowerShellでは、ここでPHPを入手し、実際のP​​owerShellを使用し、動的に対話することができますプロジェクトですTHS

Get-ItemProperty "hklm:\software\microsoft\windows\currentversion\uninstall\windows media player" 
関連する問題