이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 명령 virt-win-reg입니다.
프로그램:
이름
virt-win-reg - Windows 게스트에서 Windows 레지스트리 항목 내보내기 및 병합
개요
virt-win-reg domname 'HKLM\Path\To\Subkey'
virt-win-reg domname 'HKLM\Path\To\Subkey' 이름
virt-win-reg domname 'HKLM\Path\To\Subkey' @
virt-win-reg --merge domname [input.reg ...]
virt-win-reg [--options] disk.img ... # domname 대신
경고
꼭해야합니다 지원 "virt-win-reg"를 사용하여 -병합 라이브 가상 머신의 옵션. 만약 너라면
이렇게 해, 너 결제 게이트웨이, VM에서 되돌릴 수 없는 디스크 손상이 발생합니다. "virt-win-reg"는
이 작업을 중지하지만 모든 경우를 포착하지는 않습니다.
Windows 레지스트리 수정은 본질적으로 위험한 작업입니다. 형식은
의도적으로 모호하고 문서화되지 않았으며 레지스트리 변경이 시스템을 떠날 수 있습니다.
부팅할 수 없습니다. 따라서 사용할 때 -병합 옵션, 신뢰할 수 있는 백업이 있는지 확인
먼저.
기술
이 프로그램은 Windows 게스트에서 Windows 레지스트리 항목을 내보내고 병합할 수 있습니다.
첫 번째 매개변수는 libvirt 게스트 이름 또는 Windows 게스트의 원시 디스크 이미지입니다.
If -병합 is 지원 지정되면 선택한 레지스트리 키가 표시/내보내집니다.
(재귀적으로). 예를 들어:
$ virt-win-reg Windows7 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft'
다음과 같이 레지스트리 키 내에서 단일 값을 표시할 수도 있습니다.
$ cvkey='HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
$ virt-win-reg Windows7 $cvkey 제품 이름
7 윈도우 기업
와 -병합, 텍스트 regedit 파일을 Windows 레지스트리에 병합할 수 있습니다.
$ virt-win-reg --merge Windows7 변경 사항.reg
주의사항
이 프로그램은 레지스트리에 대한 간단한 액세스만을 위한 것입니다. 하고 싶다면
레지스트리에 복잡한 문제가 있는 경우 다음에서 레지스트리 하이브 파일을 다운로드하는 것이 좋습니다.
사용하는 손님 libguestfs(3) 또는 게스트 피쉬(1) 로컬로 액세스합니다. 사용 벌집(3)
벌집(1) 또는 hivexregedit(1).
옵션
--도움
간단한 도움말을 표시합니다.
--번역
버전 번호를 표시하고 종료합니다.
-디버그
디버깅 메시지를 활성화합니다.
-c URI
--연결하다 URI
libvirt를 사용하는 경우 지정된 URI. 생략하면 다음으로 연결됩니다.
기본 libvirt 하이퍼바이저.
게스트 블록 장치를 직접 지정하면 libvirt가 전혀 사용되지 않습니다.
--체재 살갗이 벗어 진
명령줄에 제공된 디스크 이미지 형식을 지정합니다. 이것을 생략하면
형식은 디스크 이미지의 내용에서 자동으로 감지됩니다.
디스크 이미지가 libvirt에서 요청되면 이 프로그램은 libvirt에 이를 요청합니다.
정보. 이 경우 형식 매개변수의 값은 무시됩니다.
신뢰할 수 없는 원시 형식 게스트 디스크 이미지로 작업하는 경우 형식을 확인해야 합니다.
항상 지정됩니다.
-병합
병합 모드에서 이것은 텍스트 regedit 파일을 Windows 레지스트리에 병합합니다.
가상 기기. 이 플래그가 있는 경우 지원 주어진 virt-win-reg 디스플레이 또는 내보내기
대신 레지스트리 항목.
참고 -병합 is 위험한 라이브 가상 머신에서 사용하고 디스크
부패. 그러나 내보내기(이 플래그 없이)는 항상 안전합니다.
--부호화 UTF-16LE|ASCII
병합할 때(만), 사용할 문자열의 인코딩을 지정해야 할 수도 있습니다.
하이브 파일. 이것은 "ENCODING STRINGS"에 자세히 설명되어 있습니다.
승리::하이벡스::regedit를(3).
기본값은 최신 버전의 Windows에서 작동하는 UTF-16LE를 사용하는 것입니다.
--안전하지 않은 인쇄 가능 문자열
내보낼 때(전용) 문자열이 UTF-16LE라고 가정하고 대신 문자열로 인쇄합니다.
XNUMX진 시퀀스의. 존재하는 경우 문자열에서 마지막 XNUMX 코드포인트를 제거합니다.
이것은 안전하지 않으며 원래 레지스트리에서 문자열의 충실도를 유지하지 않습니다.
여러 가지 이유로:
· 원래 인코딩이 UTF-16LE라고 가정합니다. ASCII 문자열 및 기타 문자열
인코딩은 이 변환으로 인해 손상됩니다.
· 유형 1 또는 2를 갖는 모든 것은 실제로 문자열이며
다른 모든 것은 문자열이 아니지만 실제 레지스트리의 유형 필드는 문자열이 아닙니다.
믿을 수있는.
· XNUMX 코드 포인트가 문자열을 따랐는지 여부에 대한 정보를 잃습니다.
레지스트리 여부.
이 모든 것은 레지스트리 자체에 문자열이 어떻게 구성되어 있는지에 대한 정보가 없기 때문에 발생합니다.
인코딩됩니다("ENCODING STRINGS" 참조). 승리::하이벡스::regedit를(삼)).
레지스트리의 빠른 해킹 및 디버깅에만 이 옵션을 사용해야 합니다.
내용, 그리고 못 출력이 다른 프로그램으로 전달되거나
다른 레지스트리에 저장됩니다.
지원 시스템
이 프로그램은 현재 Windows XP에서 시작하여 Windows NT 파생 게스트를 지원합니다.
적어도 Windows 8.
다음 레지스트리 키가 지원됩니다.
"HKEY_LOCAL_MACHINE\SAM"
"HKEY_LOCAL_MACHINE\SECURITY"
"HKEY_LOCAL_MACHINE\SOFTWARE"
"HKEY_LOCAL_MACHINE\SYSTEM"
"HKEY_USERS\.DEFAULT"
"HKEY_USERS\SID"
어디에 SID Windows 사용자 SID(예: "S-1-5-18")입니다.
"HKEY_USERS\사용자 이름"
어디에 사용자 이름 로컬 사용자 이름입니다(libguestfs 확장자임).
"HKLM"은 "HKEY_LOCAL_MACHINE"의 약어로, "HKU"는 "HKEY_USERS"의 약어로 사용할 수 있습니다.
리터럴 키 "HKEY_USERS\$SID" 및 "HKEY_CURRENT_USER"는 지원되지 않습니다(
"현재 사용자").
WINDOWS 8
Windows 8 "빠른 시작"은 virt-win-reg가 레지스트리를 편집하지 못하게 할 수 있습니다.
"WINDOWS 최대 절전 모드 및 WINDOWS 8 빠른 시작"을 참조하십시오. 손님(3).
부호화
"virt-win-reg"는 regedit 파일이 이미 로컬에서 다시 인코딩된 것으로 예상합니다.
부호화. 일반적으로 Linux 호스트에서 이것은 Unix 스타일의 줄 끝이 있는 UTF-8을 의미합니다. 부터
Windows regedit 파일은 종종 Windows 스타일의 줄 끝이 있는 UTF-16LE로 되어 있으므로 다음이 필요할 수 있습니다.
처리 전이나 후에 전체 파일을 다시 인코딩합니다.
Windows 형식에서 Linux로 파일을 다시 인코딩하려면(파일을 -병합
옵션), 다음과 같이 할 수 있습니다.
iconv -f utf-16le -t utf-8 < win.reg | dos2unix > linux.reg
반대 방향으로 이동하려면 파일을 내보낸 후 Windows로 보내기 전에
사용자는 다음과 같이 하십시오.
unix2dos linux.reg | iconv -f utf-8 -t utf-16le > win.reg
인코딩에 대한 자세한 내용은 승리::하이벡스::regedit를(3).
현재 인코딩이 확실하지 않은 경우 다음을 사용하십시오. 파일(1) 명령. 최신 버전
Windows regedit.exe는 다음과 같은 Windows 스타일(CRLF) 줄 끝이 있는 UTF-16LE 파일을 생성합니다.
이:
$ 파일 소프트웨어.reg
software.reg: 매우 긴 줄이 있는 Little-endian UTF-16 유니코드 텍스트,
CRLF 라인 종결자 사용
이 파일은 변환이 필요합니다. -병합 그것.
CurrentControlSet 등
"CurrentControlSet"과 같은 레지스트리 키는 실제로 Windows 레지스트리에 존재하지 않습니다.
하이브 파일의 수준이므로 수정할 수 없습니다.
"CurrentControlSet"은 일반적으로 "ControlSet001"의 별칭입니다. 어떤 상황에서는
다른 컨트롤 집합을 참조할 수 있습니다. 찾아보는 방법은
"HKLM\SYSTEM\Select" 키:
# virt-win-reg WindowsGuest 'HKLM\SYSTEM\Select'
[HKEY_LOCAL_MACHINE\SYSTEM\선택]
"현재"=dword:00000001
"기본값"=dword:00000001
"실패"=dword:00000000
"LastKnownGood"=dword:00000002
"현재"는 Windows가 부팅될 때 선택하는 것입니다.
마찬가지로 경로의 다른 "현재..." 키를 교체해야 할 수도 있습니다.
삭제 레지스트리 열쇠 및 Values
전체 레지스트리 키를 삭제하려면 다음 구문을 사용합니다.
[-HKEY_LOCAL_MACHINE\Foo]
키 내에서 단일 값을 삭제하려면 다음 구문을 사용합니다.
[HKEY_LOCAL_MACHINE\Foo]
"값"=-
WINDOWS 팁
이러한 팁 중 일부는 게스트 디스크 이미지를 수정합니다. 손님 절대로 필요한 것 꺼져,
그렇지 않으면 디스크가 손상됩니다.
달리는 A BATCH SCRIPT WHEN A USER 로그 IN
DOS 배치 스크립트, VBScript 또는 실행 파일을 준비합니다. 다음을 사용하여 업로드 게스트 피쉬(1). 을위한
이 예제 스크립트는 "test.bat"라고 하며 "C:\"에 업로드됩니다.
guestfish -i -d WindowsGuest 업로드 test.bat /test.bat
레지스트리 변경 사항이 포함된 regedit 파일을 준비합니다.
고양이 > test.reg <<'EOF'
[HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce]
"테스트"="c:\\test.bat"
EOF
이 예에서는 스크립트가 정확하게 실행된다는 것을 의미하는 "RunOnce" 키를 사용합니다.
첫 번째 사용자가 로그인할 때 한 번. 사용자가 로그인할 때마다 실행하려면
"RunOnce"를 "Run"으로 바꿉니다.
이제 레지스트리를 업데이트하십시오.
virt-win-reg --merge WindowsGuest test.reg
설치 A 서비스
이 섹션에서는 사용자가 Windows 서비스에 익숙하고 프로그램이 있다고 가정합니다.
Windows 서비스 제어 프로토콜을 직접 처리하거나 프로그램을 실행하려는 경우
SrvAny 또는 무료 RHSrvAny와 같은 서비스 래퍼를 사용합니다.
먼저 프로그램을 업로드하고 선택적으로 서비스 래퍼를 업로드합니다. 이 경우 테스트
프로그램은 "test.exe"라고 하며 RHSrvAny 래퍼를 사용하고 있습니다.
guestfish -i -d Windows게스트 <
업로드 rhsrvany.exe /rhsrvany.exe
업로드 test.exe /test.exe
EOF
레지스트리 변경 사항이 포함된 regedit 파일을 준비합니다. 이 예에서 첫 번째
서비스 자체 또는 서비스 래퍼(사용되는 경우)에 레지스트리 변경이 필요합니다. NS
두 번째 레지스트리 변경은 RHSrvAny 서비스 래퍼를 사용하고 있기 때문에 필요합니다.
고양이 > 서비스.reg <<'EOF'
[HKLM\SYSTEM\ControlSet001\서비스\RHSrvAny]
"유형"= dword : 00000010
"시작"= dword : 00000002
"ErrorControl"= dword : 00000001
"ImagePath"="c:\\rhsrvany.exe"
"DisplayName"="RHSrvAny"
"ObjectName"="네트워크 서비스"
[HKLM\SYSTEM\ControlSet001\services\RHSrvAny\매개변수]
"명령줄"="c:\\test.exe"
"PWD"="c:\\Temp"
EOF
배송 시 요청 사항:
· "ControlSet001"의 사용에 대해서는 이 매뉴얼 페이지의 위 섹션을 참조하십시오. 당신은 할 필요가 있습니다
게스트가 사용하는 컨트롤 세트에 따라 이것을 조정하십시오.
· "ObjectName"은 서비스가 가질 권한을 제어합니다. 대안은
"ObjectName"="LocalSystem"은 가장 권한 있는 계정이 됩니다.
· 매직 넘버의 의미는 다음 Microsoft KB 문서를 참조하십시오.
http://support.microsoft.com/kb/103000.
레지스트리 업데이트:
virt-win-reg --merge WindowsGuest service.reg
SHELL 인용
쉘에서 "\"(백슬래시)가 포함된 매개변수를 전달할 때 주의하십시오. 보통 당신은
로부터 보호하기 위해 '작은 따옴표' 또는 이중 백슬래시(둘 다 아님)를 사용해야 합니다.
껍질.
경로와 값 이름은 대소문자를 구분하지 않습니다.
onworks.net 서비스를 사용하여 virt-win-reg 온라인 사용