این دستور virt-win-reg است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
virt-win-reg - ورودی های رجیستری ویندوز را از یک مهمان ویندوز صادر و ادغام کنید
خلاصه
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" تلاش می کند
شما را از انجام این کار باز می دارد، اما همه موارد را نمی گیرد.
تغییر رجیستری ویندوز یک عملیات ذاتا پرخطر است. فرمت است
به طور عمدی مبهم و بدون سند، و تغییرات رجیستری می تواند سیستم را ترک کند
غیر قابل راه اندازی بنابراین هنگام استفاده از --ادغام گزینه، مطمئن شوید که یک نسخه پشتیبان قابل اعتماد دارید
برای اولین بار.
شرح
این برنامه می تواند ورودی های رجیستری ویندوز را از مهمان ویندوز صادر و ادغام کند.
اولین پارامتر نام مهمان libvirt یا تصویر دیسک خام یک مهمان ویندوز است.
If --ادغام is نه مشخص شده است، سپس کلید رجیستری انتخاب شده نمایش/صادرات می شود
(به صورت بازگشتی). مثلا:
$ virt-win-reg Windows7 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft'
همچنین می توانید مقادیر منفرد را از داخل کلیدهای رجیستری نمایش دهید، به عنوان مثال:
$ cvkey='HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
$ virt-win-reg Windows7 $cvkey ProductName
ویندوز 7 Enterprise
با --ادغام، می توانید یک فایل regedit متنی را در رجیستری ویندوز ادغام کنید:
$ virt-win-reg - ادغام Windows7 changes.reg
توجه داشته باشید
این برنامه فقط برای دسترسی ساده به رجیستری در نظر گرفته شده است. اگر می خواهید انجام دهید
مسائل پیچیده با رجیستری، پیشنهاد می کنیم فایل های Registry hive را از اینجا دانلود کنید
مهمان استفاده می کند libguestfs(3) یا ماهی مهمان(1) و به صورت محلی به آنها دسترسی داشته باشید، به عنوان مثال. استفاده كردن کندو(3)
hivexsh(1) یا hivexregedit(1).
OPTIONS
--کمک
نمایش راهنمایی مختصر
- نسخه
نمایش شماره نسخه و خروج
- رفع اشکال
پیام های اشکال زدایی را فعال کنید.
-c URI
-- اتصال URI
اگر از libvirt استفاده می کنید، به داده شده متصل شوید URI. اگر حذف شد، به آن متصل می شویم
هایپروایزر پیش فرض libvirt
اگر مستقیماً دستگاههای بلوک مهمان را مشخص کنید، libvirt اصلاً استفاده نمیشود.
--قالب خام
فرمت تصاویر دیسک داده شده در خط فرمان را مشخص کنید. اگر این حذف شده است
فرمت به طور خودکار از محتوای تصویر دیسک شناسایی می شود.
اگر تصاویر دیسک از libvirt درخواست شده باشد، این برنامه از libvirt برای این درخواست می کند
اطلاعات در این حالت مقدار پارامتر فرمت نادیده گرفته می شود.
اگر با تصاویر دیسک مهمان با فرمت خام غیرقابل اعتماد کار می کنید، باید از فرمت آن اطمینان حاصل کنید
همیشه مشخص می شود.
--ادغام
در حالت ادغام، این یک فایل regedit متنی را در رجیستری ویندوز ادغام می کند
ماشین مجازی. اگر این پرچم است نه با توجه به نمایشگرهای virt-win-reg یا صادرات
در عوض ورودی های رجیستری.
توجه داشته باشید که --ادغام is ناامن برای استفاده در ماشین های مجازی زنده، و منجر به دیسک می شود
فساد. با این حال صادرات (بدون این پرچم) همیشه امن است.
- رمزگذاری UTF-16LE|ASCII
هنگام ادغام (فقط)، ممکن است لازم باشد رمزگذاری رشته هایی را که باید در آنها استفاده شود مشخص کنید
فایل کندو این به تفصیل در "ENCODING STRINGS" در توضیح داده شده است
برد::Hivex::REGEDIT(3).
پیش فرض استفاده از UTF-16LE است که باید با نسخه های اخیر ویندوز کار کند.
--unsafe-printable-strings
هنگام صادرات (فقط)، رشته ها را UTF-16LE فرض کنید و در عوض آنها را به صورت رشته چاپ کنید.
از دنباله های هگز. در صورت وجود، نقطه کد صفر نهایی را از رشته ها حذف کنید.
این ناامن است و وفاداری رشته ها را در رجیستری اصلی حفظ نمی کند
به دلایل مختلف:
· فرض می کند که رمزگذاری اصلی UTF-16LE است. رشته های ASCII و رشته ها در سایر
رمزگذاری ها با این تبدیل خراب می شوند.
· فرض می کند که هر چیزی که نوع 1 یا 2 دارد واقعاً یک رشته است و این
هر چیز دیگری یک رشته نیست، اما فیلد نوع در رجیستری واقعی نیست
قابل اعتماد.
· از دست دادن اطلاعات در مورد اینکه آیا یک نقطه کد صفر دنبال رشته در
رجیستری یا نه
همه اینها به این دلیل اتفاق می افتد که خود رجیستری حاوی هیچ اطلاعاتی در مورد نحوه رشته ها نیست
کدگذاری میشوند (به «رمزگذاری رشتهها» مراجعه کنید برد::Hivex::REGEDIT(3).
شما فقط باید از این گزینه برای هک کردن سریع و رفع اشکال رجیستری استفاده کنید
مطالب، و هرگز اگر قرار است خروجی به برنامه دیگری ارسال شود، از آن استفاده کنید
در رجیستری دیگر ذخیره می شود.
پشتیبانی سیستم های
این برنامه در حال حاضر از مهمانان مشتق شده از ویندوز NT پشتیبانی می کند که با ویندوز XP شروع می شوند
حداقل به ویندوز 8.
کلیدهای رجیستری زیر پشتیبانی می شوند:
"HKEY_LOCAL_MACHINE\SAM"
"HKEY_LOCAL_MACHINE\SECURITY"
"HKEY_LOCAL_MACHINE\SOFTWARE"
"HKEY_LOCAL_MACHINE\SYSTEM"
"HKEY_USERS\.DEFAULT"
"HKEY_USERS\SID"
جایی که SID یک SID کاربر ویندوز است (به عنوان مثال "S-1-5-18").
"HKEY_USERS\نام کاربری"
جایی که نام کاربری یک نام کاربری محلی است (این یک پسوند libguestfs است).
میتوانید از «HKLM» بهعنوان مختصر «HKEY_LOCAL_MACHINE» و «HKU» برای «HKEY_USERS» استفاده کنید.
کلیدهای تحت اللفظی "HKEY_USERS\$SID" و "HKEY_CURRENT_USER" پشتیبانی نمی شوند (هیچ
"کاربر فعلی").
WINDOWS 8
"راه اندازی سریع" ویندوز 8 می تواند از ویرایش رجیستری virt-win-reg جلوگیری کند.
"WINDOWS HIBERNATION و WINDOWS 8 FAST STARTUP" را در مهمانان(3).
رمزگذاری
"virt-win-reg" انتظار دارد که فایلهای regedit قبلاً در محلی دوباره رمزگذاری شده باشند
رمزگذاری معمولا در هاست های لینوکس، این به معنای UTF-8 با انتهای خط به سبک یونیکس است. از آنجا که
فایلهای regedit ویندوز اغلب به صورت UTF-16LE با انتهای خط به سبک ویندوز هستند، شاید لازم باشد
برای رمزگذاری مجدد کل فایل قبل یا بعد از پردازش.
برای رمزگذاری مجدد یک فایل از فرمت ویندوز به لینوکس (قبل از پردازش آن با --ادغام
گزینه)، شما چیزی شبیه به این انجام می دهید:
iconv -f utf-16le -t utf-8 < win.reg | dos2unix > linux.reg
برای رفتن در جهت مخالف، پس از صادرات و قبل از ارسال فایل به ویندوز
کاربر، این کار را انجام دهید:
unix2dos linux.reg | iconv -f utf-8 -t utf-16le > win.reg
برای اطلاعات بیشتر در مورد رمزگذاری، رجوع کنید به برد::Hivex::REGEDIT(3).
اگر در مورد رمزگذاری فعلی مطمئن نیستید، از آن استفاده کنید پرونده(1) فرمان نسخه های اخیر از
Windows regedit.exe یک فایل UTF-16LE با انتهای خط به سبک ویندوز (CRLF) تولید می کند، مانند
این:
$ file software.reg
software.reg: متن یونیکد UTF-16 کوچک، با خطوط بسیار طولانی،
با پایانه های خط CRLF
این فایل قبل از اینکه بتوانید نیاز به تبدیل دارد --ادغام آن است.
CurrentControlSet و غیره.
کلیدهای رجیستری مانند "CurrentControlSet" واقعاً در رجیستری ویندوز وجود ندارند.
سطح فایل hive، و بنابراین شما نمی توانید آنها را تغییر دهید.
"CurrentControlSet" معمولاً نام مستعار "ControlSet001" است. در برخی شرایط آن را
ممکن است به مجموعه کنترل دیگری اشاره داشته باشد. راه پیدا کردن این است که نگاه کنید
کلید "HKLM\SYSTEM\Select":
# virt-win-reg WindowsGuest 'HKLM\SYSTEM\Select'
[HKEY_LOCAL_MACHINE\SYSTEM\Select]
"Current"=dword:00000001
"پیش فرض"=dword:00000001
"شکست خورد"=dword:00000000
"LastKnownGood"=dword:00000002
"Current" همان چیزی است که ویندوز هنگام بوت شدن انتخاب می کند.
به طور مشابه، سایر کلیدهای "Current..." در مسیر ممکن است نیاز به تعویض داشته باشند.
در حال حذف ثبت کلیدها و ارزش
برای حذف کل کلید رجیستری، از نحو استفاده کنید:
[-HKEY_LOCAL_MACHINE\Foo]
برای حذف یک مقدار در یک کلید، از نحو استفاده کنید:
[HKEY_LOCAL_MACHINE\Foo]
"ارزش" =-
WINDOWS TIPS
توجه داشته باشید که برخی از این نکات تصویر دیسک مهمان را تغییر می دهند. مهمان باید خاموش شود،
در غیر این صورت، شما دچار فساد دیسک خواهید شد.
دویدن A دسته اسکریپت WHEN A USER سیاهههای مربوط IN
یک اسکریپت دسته ای DOS، VBScript یا قابل اجرا آماده کنید. این را با استفاده از ماهی مهمان(1). برای
به این مثال اسکریپت "test.bat" نامیده می شود و در "C:\" آپلود می شود:
guestfish -i -d WindowsGuest آپلود test.bat /test.bat
یک فایل regedit حاوی تغییرات رجیستری آماده کنید:
cat > test.reg <<'EOF'
[HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce]
"Test"="c:\\test.bat"
EOF
در این مثال از کلید "RunOnce" استفاده می کنیم که به این معنی است که اسکریپت دقیقا اجرا می شود
یک بار وقتی اولین کاربر وارد می شود. اگر می خواهید هر بار که کاربر وارد می شود اجرا شود،
RunOnce را با Run جایگزین کنید.
اکنون رجیستری را به روز کنید:
virt-win-reg --merge WindowsGuest test.reg
نصب A SERVICE
این بخش فرض می کند که شما با سرویس های ویندوز آشنا هستید و یا یک برنامه دارید
که مستقیماً پروتکل کنترل سرویس ویندوز را کنترل می کند یا می خواهید هر برنامه ای را اجرا کنید
با استفاده از بسته بندی سرویس مانند SrvAny یا RHSrvAny رایگان.
ابتدا برنامه و به صورت اختیاری پوشش سرویس را آپلود کنید. در این مورد آزمون
برنامه "test.exe" نام دارد و ما از بسته بندی RHSrvAny استفاده می کنیم:
guestfish -i -d WindowsGuest <
rhsrvany.exe /rhsrvany.exe را آپلود کنید
test.exe /test.exe را آپلود کنید
EOF
یک فایل regedit حاوی تغییرات رجیستری آماده کنید. در این مثال، اولین
تغییر رجیستری برای خود سرویس یا پوشش سرویس (در صورت استفاده) مورد نیاز است. در
تغییر رجیستری دوم فقط به این دلیل لازم است که من از بسته بندی سرویس RHSrvAny استفاده می کنم.
cat > service.reg <<'EOF'
[HKLM\SYSTEM\ControlSet001\services\RHSrvAny]
"نوع"=dword:00000010
"شروع"=dword:00000002
"ErrorControl"=dword:00000001
"ImagePath"="c:\\rhsrvany.exe"
"DisplayName"="RHSrvAny"
"ObjectName"="NetworkService"
[HKLM\SYSTEM\ControlSet001\services\RHSrvAny\Parameters]
"CommandLine"="c:\\test.exe"
"PWD"="c:\\ Temp"
EOF
یادداشت:
· برای استفاده از "ControlSet001" به بخش بالا در این صفحه راهنما مراجعه کنید. ممکن است نیاز داشته باشید
این را با توجه به مجموعه کنترلی که توسط مهمان استفاده می شود تنظیم کنید.
· "ObjectName" امتیازاتی را که سرویس خواهد داشت را کنترل می کند. یک جایگزین است
"ObjectName"="LocalSystem" که ممتازترین حساب خواهد بود.
· برای معنی اعداد جادویی، این مقاله مایکروسافت KB را ببینید:
http://support.microsoft.com/kb/103000.
رجیستری را به روز کنید:
virt-win-reg --merge WindowsGuest service.reg
پوسته نقل قول
هنگام ارسال پارامترهای حاوی "\" (اسلش معکوس) در پوسته مراقب باشید. معمولا شما
برای محافظت از آنها باید از "نقل قول های تک" یا دو بک اسلش (اما نه هر دو) استفاده کنید
پوسته.
نام مسیرها و مقادیر به حروف بزرگ و کوچک حساس نیست.
با استفاده از خدمات onworks.net از virt-win-reg آنلاین استفاده کنید