Đây là lệnh Virt-win-reg có thể được chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
Virt-win-reg - Xuất và hợp nhất các mục trong Windows Registry từ một khách Windows
SYNOPSIS
Tên miền ảo ảo 'HKLM \ Đường dẫn \ Đến \ Khoá con'
tên domname 'HKLM \ Đường dẫn \ Đến \ Khóa con'
virtual win-reg domname 'HKLM \ Path \ To \ Subkey' @
Virt-win-reg --merge domname [input.reg ...]
Virt-win-reg [--options] disk.img ... # thay vì domname
CẢNH BÁO
Bạn phải không sử dụng "Virt-win-reg" với - hợp nhất tùy chọn trên máy ảo trực tiếp. nếu bạn
làm điều này, bạn sẽ bị hỏng đĩa không thể phục hồi trong VM. "Virt-win-reg" cố gắng
ngăn bạn làm điều này, nhưng không bắt được tất cả các trường hợp.
Sửa đổi Windows Registry là một hoạt động vốn có rủi ro. Định dạng là
cố tình che khuất và không có tài liệu, và những thay đổi trong Hệ thống đăng ký có thể rời khỏi hệ thống
không thể khởi động. Do đó khi sử dụng - hợp nhất tùy chọn, hãy đảm bảo rằng bạn có một bản sao lưu đáng tin cậy
đầu tiên.
MÔ TẢ
Chương trình này có thể xuất và hợp nhất các mục Windows Registry từ một khách Windows.
Tham số đầu tiên là tên khách libvirt hoặc ảnh đĩa thô của khách Windows.
If - hợp nhất is không được chỉ định, sau đó khóa đăng ký đã chọn được hiển thị / xuất
(đệ quy). Ví dụ:
$ Virt-win-reg Windows7 'HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft'
Bạn cũng có thể hiển thị các giá trị đơn lẻ từ bên trong các khóa đăng ký, ví dụ:
$ cvkey = 'HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion'
$ Virt-win-reg Windows7 $ cvkey ProductName
Cửa sổ 7 doanh nghiệp
Với - hợp nhất, bạn có thể hợp nhất tệp regedit dạng văn bản vào Windows Registry:
$ Virt-win-reg - hợp nhất Windows7 changes.reg
LƯU Ý
Chương trình này chỉ có nghĩa là để truy cập đơn giản vào sổ đăng ký. Nếu bạn muốn làm
những thứ phức tạp với sổ đăng ký, chúng tôi khuyên bạn nên tải xuống các tệp Registry hive từ
khách sử dụng libguestfs(3) hoặc cá khách(1) và truy cập chúng cục bộ, ví dụ. sử dụng nổi mề đay(3)
hivexsh(1) hoặc hivexregedit(1).
LỰA CHỌN
--Cứu giúp
Hiển thị trợ giúp ngắn gọn.
--phiên bản
Hiển thị số phiên bản và thoát.
--gỡ lỗi
Bật thông báo gỡ lỗi.
-c URI
--liên kết URI
Nếu sử dụng libvirt, hãy kết nối với URI. Nếu bị bỏ qua, thì chúng tôi kết nối với
trình siêu giám sát libvirt mặc định.
Nếu bạn chỉ định thiết bị chặn khách trực tiếp, thì libvirt hoàn toàn không được sử dụng.
--định dạng nguyên
Chỉ định định dạng của hình ảnh đĩa được cung cấp trên dòng lệnh. Nếu điều này được bỏ qua thì
định dạng được tự động phát hiện từ nội dung của hình ảnh đĩa.
Nếu hình ảnh đĩa được yêu cầu từ libvirt, thì chương trình này sẽ yêu cầu libvirt về điều này
thông tin. Trong trường hợp này, giá trị của tham số định dạng bị bỏ qua.
Nếu làm việc với hình ảnh đĩa khách định dạng thô không đáng tin cậy, bạn nên đảm bảo định dạng
luôn được chỉ định.
- hợp nhất
Trong chế độ hợp nhất, điều này sẽ hợp nhất tệp regedit dạng văn bản vào Sổ đăng ký Windows của
máy ảo. Nếu cờ này là không đưa ra sau đó hiển thị hoặc xuất khẩu ảo ảo win-reg
Các mục đăng ký thay thế.
Lưu ý rằng - hợp nhất is không an toàn để sử dụng trên các máy ảo trực tiếp và sẽ dẫn đến đĩa
tham nhũng. Tuy nhiên việc xuất (không có cờ này) luôn an toàn.
- mã hóa UTF-16LE | ASCII
Khi hợp nhất (chỉ), bạn có thể cần chỉ định mã hóa cho các chuỗi được sử dụng trong
tập tin tổ ong. Điều này được giải thích chi tiết trong "THƯỞNG THỨC STRINGS" trong
Chiến thắng :: Hivex ::Regedit(3).
Mặc định là sử dụng UTF-16LE, sẽ hoạt động với các phiên bản Windows gần đây.
--unsafe-printable-string
Khi xuất (chỉ), giả sử các chuỗi là UTF-16LE và in chúng dưới dạng chuỗi thay thế
của chuỗi hex. Loại bỏ điểm XNUMX cuối cùng khỏi chuỗi nếu có.
Điều này không an toàn và không bảo toàn độ trung thực của các chuỗi trong Sổ đăng ký gốc
vì nhiều lý do:
· Giả sử mã hóa ban đầu là UTF-16LE. Chuỗi ASCII và chuỗi trong khác
mã hóa sẽ bị hỏng bởi sự chuyển đổi này.
· Giả sử rằng mọi thứ có kiểu 1 hoặc 2 thực sự là một chuỗi và
mọi thứ khác không phải là một chuỗi, nhưng trường loại trong các Cơ quan đăng ký thực thì không
đáng tin cậy.
· Mất thông tin về việc liệu một điểm mã số XNUMX có theo chuỗi trong
Đăng ký hay không.
Tất cả điều này xảy ra bởi vì bản thân Registry không chứa thông tin về cách chuỗi
được mã hóa (xem "TIẾP TỤC STRINGS" trong Chiến thắng :: Hivex ::Regedit(3)).
Bạn chỉ nên sử dụng tùy chọn này để hack và gỡ lỗi nhanh Registry
nội dung, và không bao giờ sử dụng nó nếu đầu ra sẽ được chuyển vào một chương trình khác hoặc
được lưu trữ trong một Cơ quan đăng ký khác.
HPORT TRỢ HỆ THỐNG
Chương trình hiện hỗ trợ khách bắt nguồn từ Windows NT bắt đầu từ Windows XP đến
ít nhất là Windows 8.
Các khóa đăng ký sau được hỗ trợ:
"HKEY_LOCAL_MACHINE \ SAM"
"HKEY_LOCAL_MACHINE \ SECURITY"
"HKEY_LOCAL_MACHINE \ SOFTWARE"
"HKEY_LOCAL_MACHINE \ SYSTEM"
"HKEY_USERS \ .DEFAULT"
"HKEY_USERS \SID "
Ở đâu SID là SID Người dùng Windows (ví dụ: "S-1-5-18").
"HKEY_USERS \tên tài khoản"
Ở đâu tên truy nhập là tên người dùng cục bộ (đây là phần mở rộng của libguestfs).
Bạn có thể sử dụng "HKLM" làm cách viết tắt của "HKEY_LOCAL_MACHINE" và "HKU" cho "HKEY_USERS".
Các khóa chữ "HKEY_USERS \ $ SID" và "HKEY_CURRENT_USER" không được hỗ trợ (không có
"người dùng hiện tại").
CÁC CỬA SỔ 8
"Khởi động nhanh" của Windows 8 có thể ngăn virtual-win-reg không thể chỉnh sửa Registry.
Xem "WINDOWS HIBERNATION VÀ WINDOWS 8 KHỞI ĐỘNG NHANH" trong khách mời(3).
THƯỞNG THỨC
"Virt-win-reg" hy vọng rằng các tệp regedit đã được mã hóa lại trong cục bộ
mã hóa. Thông thường trên các máy chủ Linux, điều này có nghĩa là UTF-8 với phần cuối dòng kiểu Unix. Từ
Các tệp regedit của Windows thường ở UTF-16LE với phần cuối dòng kiểu Windows, bạn có thể cần
để viết lại toàn bộ tệp trước hoặc sau khi xử lý.
Để mã hóa lại tệp từ định dạng Windows sang Linux (trước khi xử lý bằng - hợp nhất
tùy chọn), bạn sẽ làm một cái gì đó như thế này:
iconv -f utf-16le -t utf-8 <win.reg | dos2unix> linux.reg
Để đi theo hướng ngược lại, sau khi xuất và trước khi gửi tệp tới Windows
người dùng, làm một cái gì đó như thế này:
unix2dos linux.reg | iconv -f utf-8 -t utf-16le> win.reg
Để biết thêm thông tin về mã hóa, hãy xem Chiến thắng :: Hivex ::Regedit(3).
Nếu bạn không chắc chắn về cách mã hóa hiện tại, hãy sử dụng hồ sơ(1) lệnh. Các phiên bản gần đây của
Windows regedit.exe tạo tệp UTF-16LE với phần cuối dòng kiểu Windows (CRLF), như
điều này:
$ tập tin phần mềm.reg
software.reg: Văn bản Unicode UTF-16 nhỏ-endian, với các dòng rất dài,
với các đầu cuối dòng CRLF
Tệp này sẽ cần chuyển đổi trước khi bạn có thể - hợp nhất nó.
Hiện tại và vv
Các khóa đăng ký như "CurrentControlSet" không thực sự tồn tại trong Windows Registry tại
cấp độ của tệp hive, và do đó bạn không thể sửa đổi chúng.
"CurrentControlSet" thường là bí danh cho "ControlSet001". Trong một số trường hợp, nó
có thể tham chiếu đến một bộ điều khiển khác. Cách để tìm ra là nhìn vào
Phím "HKLM \ SYSTEM \ Select":
# Virt-win-reg WindowsGuest 'HKLM \ SYSTEM \ Select'
[HKEY_LOCAL_MACHINE \ SYSTEM \ Select]
"Hiện tại" = dword: 00000001
"Mặc định" = dword: 00000001
"Không thành công" = dword: 00000000
"LastKnownGood" = dword: 00000002
"Hiện tại" là tùy chọn mà Windows sẽ chọn khi khởi động.
Tương tự, các khóa "Hiện tại ..." khác trong đường dẫn có thể cần được thay thế.
XÓA ĐĂNG KÝ KHÓA VÀ GIÁ TRỊ
Để xóa toàn bộ khóa đăng ký, hãy sử dụng cú pháp:
[-HKEY_LOCAL_MACHINE \ Foo]
Để xóa một giá trị trong một khóa, hãy sử dụng cú pháp:
[HKEY_LOCAL_MACHINE \ Foo]
"Giá trị" = -
CÁC CỬA SỔ TIPS
Lưu ý rằng một số thủ thuật này sẽ sửa đổi hình ảnh đĩa khách. Khách hàng phải tắt đi,
nếu không bạn sẽ bị hỏng đĩa.
ĐANG CHẠY A PIN SCRIPT KHI A USER NHẬT KÝ IN
Chuẩn bị một tập lệnh hàng loạt DOS, VBScript hoặc tệp thực thi. Tải lên cái này bằng cách sử dụng cá khách(Năm 1). Vì
ví dụ này, tập lệnh được gọi là "test.bat" và nó được tải lên "C: \":
guestfish -i -d WindowsGuest tải lên test.bat /test.bat
Chuẩn bị tệp regedit chứa thay đổi sổ đăng ký:
cat> test.reg << 'EOF'
[HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ RunOnce]
"Kiểm tra" = "c: \\ test.bat"
EOF
Trong ví dụ này, chúng tôi sử dụng khóa "RunOnce" có nghĩa là tập lệnh sẽ chạy chính xác
một lần khi người dùng đầu tiên đăng nhập. Nếu bạn muốn nó chạy mỗi khi người dùng đăng nhập,
thay thế "RunOnce" bằng "Run".
Bây giờ hãy cập nhật sổ đăng ký:
Virt-win-reg - hợp nhất WindowsGuest test.reg
CÀI ĐẶT A Dịch vụ
Phần này giả định rằng bạn đã quen thuộc với các dịch vụ Windows và bạn có một chương trình
mà trực tiếp xử lý Giao thức kiểm soát dịch vụ Windows hoặc bạn muốn chạy bất kỳ chương trình nào
bằng cách sử dụng trình bao bọc dịch vụ như SrvAny hoặc RHSrvAny miễn phí.
Đầu tiên tải lên chương trình và tùy chọn trình bao bọc dịch vụ. Trong trường hợp này, bài kiểm tra
chương trình được gọi là "test.exe" và chúng tôi đang sử dụng trình bao bọc RHSrvAny:
guestfish -i -d WindowsGuest <
tải lên rhsrvany.exe /rhsrvany.exe
tải lên test.exe /test.exe
EOF
Chuẩn bị một tệp regedit chứa các thay đổi sổ đăng ký. Trong ví dụ này, đầu tiên
thay đổi sổ đăng ký là cần thiết cho chính dịch vụ hoặc trình bao bọc dịch vụ (nếu được sử dụng). Các
chỉ cần thay đổi sổ đăng ký thứ hai vì tôi đang sử dụng trình bao bọc dịch vụ RHSrvAny.
cat> service.reg << 'EOF'
[HKLM \ SYSTEM \ ControlSet001 \ services \ RHSrvAny]
"Loại" = dword: 00000010
"Bắt đầu" = dword: 00000002
"ErrorControl" = dword: 00000001
"ImagePath" = "c: \\ rhsrvany.exe"
"DisplayName" = "RHSrvAny"
"ObjectName" = "Dịch vụ mạng"
[HKLM \ SYSTEM \ ControlSet001 \ services \ RHSrvAny \ Parameters]
"CommandLine" = "c: \\ test.exe"
"PWD" = "c: \\ Temp"
EOF
Ghi chú:
· Để sử dụng "ControlSet001", hãy xem phần ở trên trong trang hướng dẫn này. Bạn có thể cần
điều chỉnh điều này theo bộ điều khiển mà khách đang sử dụng.
· "ObjectName" kiểm soát các đặc quyền mà dịch vụ sẽ có. Một sự thay thế là
"ObjectName" = "LocalSystem" sẽ là tài khoản đặc quyền nhất.
· Để biết ý nghĩa của những con số kỳ diệu, hãy xem bài viết Microsoft KB này:
http://support.microsoft.com/kb/103000.
Cập nhật sổ đăng ký:
Virt-win-reg - hợp nhất WindowsGuest service.reg
SHELL BÁO GIÁ
Hãy cẩn thận khi chuyển các tham số có chứa "\" (dấu gạch chéo ngược) trong shell. Thường bạn
sẽ phải sử dụng 'dấu ngoặc đơn' hoặc dấu gạch chéo ngược kép (nhưng không phải cả hai) để bảo vệ chúng khỏi
cái vỏ.
Các đường dẫn và tên giá trị không phân biệt chữ hoa chữ thường.
Sử dụng trực tuyến virtual win-reg bằng các dịch vụ onworks.net