WIn32API リモートPCのレジストリにアクセスする
リモートPCのレジストリにアクセスするには、RegConnectRegistry関数を用いる
RegConnectRegistryプロトタイプ
LONG RegConnectRegistry( LPCTSTR lpMachineName, // コンピュータ名 HKEY hKey, // 定義済みのレジストリハンドル PHKEY phkResult // リモートレジストリのキーハンドルが格納されるバッファ );
リモートPCのレジストリを操作するためには、リモートレジストリサービスが起動していることが必要である。
#include <windows.h> #include <stdio.h> int main() { HKEY hKey; LONG lRet; TCHAR szSubKeyName[256]; DWORD dwSubKeyNameSize; FILETIME ftLastWriteTime; DWORD i; LPCTSTR lpszComputerName = TEXT("\\\\PCNAME");//リモートPC名を指定する(「\\computer_name」の形式) lRet = RegConnectRegistry(lpszComputerName, HKEY_LOCAL_MACHINE, &hKey); if (lRet != ERROR_SUCCESS) { return 1; } i = 0; while (true) { dwSubKeyNameSize = sizeof(szSubKeyName)/sizeof(szSubKeyName[0]); lRet = RegEnumKeyEx(hKey, i++, szSubKeyName, &dwSubKeyNameSize, NULL, NULL, NULL, &ftLastWriteTime); if (lRet != ERROR_SUCCESS) { break; } _tprintf(TEXT("%s\n"), szSubKeyName); } RegCloseKey(hKey); return 0; }
BCD00000000 HARDWARE SAM SECURITY SOFTWARE SYSTEM
http://msdn.microsoft.com/ja-jp/library/cc429900.aspx