Bagikan melalui


Menambahkan skrip ekstensibilitas ke pengaturan ulang tombol pendorongan

OEM dapat menyisipkan skrip kustom yang berjalan saat pengguna menjalankan fitur reset tombol dorong: Simpan file saya dan Hapus semuanya.

Anda dapat menggunakan skrip ekstensibilitas atau Menerapkan folder secara otomatis untuk memulihkan penyesuaian umum yang tidak dipulihkan, termasuk:

  • Menu Mulai
  • Taskbar
  • OOBE
  • kustomisasi Unattend.xml

Selain itu, skrip ekstensibilitas dapat membantu melakukan tugas lain, seperti:

Catatan

Jika Anda menyertakan folder Terapkan otomatis, Anda tidak boleh menyertakan skrip ekstensibilitas. Jika Anda menyertakan folder Terapkan otomatis dan skrip ekstensibilitas, folder Terapkan otomatis akan diabaikan.

Tentang menambahkan skrip ekstensibilitas

Untuk menambahkan skrip ekstensibilitas, Anda harus memahami konsep berikut:

Mengaktifkan skrip selama pemulihan

Untuk menambahkan skrip ekstensibilitas ke pengaturan ulang tombol Push, tambahkan semua hal berikut ini di C:\Recovery\OEM folder :

  • File konfigurasi reset tombol tekan (ResetConfig.xml) yang menentukan skrip mana yang akan dijalankan.
  • Skrip ekstensibilitas
  • File apa pun yang diperlukan oleh skrip ekstensibilitas.

Skrip ekstensibilitas

Persyaratan:

  • Skrip diformat sebagai file .cmd atau .exe.
  • Skrip tidak bergantung pada komponen opsional Windows PE yang tidak ada dalam gambar Windows RE default (winre.wim).
  • Skrip tidak bergantung pada biner (misalnya file .exe atau .dll) tidak ada dalam gambar Windows RE default (winre.wim).
  • Skrip berjalan tanpa menampilkan antarmuka pengguna grafis (GUI).
  • Skrip menyelesaikan semua fungsi yang dimaksudkan dalam waktu 5 menit untuk setiap titik ekstensibilitas.
  • Skrip tidak boleh mengubah huruf kandar. Hal ini berpotensi menyebabkan pemulihan gagal.
  • Skrip harus mengembalikan 0 (nol) jika berhasil. Jika reset tombol dorong menerima nilai non-0, langkah-langkah berikut terjadi:
    • Jika menjalankan fitur Pertahankan file saya : Semua perubahan sistem digulung balik. Jika skrip atau file yang dapat dieksekusi dimulai dari menu pengaturan PC Windows, sistem akan memulai ulang di Windows. Jika skrip atau file yang dapat dieksekusi dimulai dari Windows RE atau menu Startup tingkat lanjut, sistem tetap berada di Windows RE dan menampilkan pesan kesalahan.
    • Jika menjalankan fitur Hapus semuanya : Kegagalan diabaikan. Skrip atau file yang dapat dieksekusi berlanjut ke langkah berikutnya dalam proses reset dan mencatat kegagalan.

File konfigurasi reset tombol pendorongan (ResetConfig.xml)

Tambahkan file ResetConfig.xml untuk menunjuk ke skrip ekstensibilitas reset tombol pendorongan Anda.

File ini harus disimpan dengan tipe file UTF-8. Jangan gunakan pengkodian ANSI. Misalnya: di Notepad, klik File, lalu klik Simpan Sebagai. Dalam kotak Pengodean , pilih UTF-8.

Simpan file ini dan salin ke gambar Windows sebagai C:\Recovery\OEM\ResetConfig.xml.

Anda dapat menggunakan file ResetConfig.xml yang sama untuk mengonfigurasi Windows untuk membuat media pemulihan. Untuk informasi selengkapnya, lihat Menyebarkan fitur Push-Button Reset.

Ada empat titik ekstensibilitas yang dapat Anda gunakan untuk menunjuk ke skrip yang berjalan di dekat awal dan akhir operasi Pertahankan file saya atau Hapus semuanya . Untuk penyesuaian umum, Anda biasanya hanya memerlukan satu skrip, seperti yang ditunjukkan pada contoh skrip di bawah ini.

Titik ekstensibilitas

Fitur Pertahankan file saya dapat diringkas dalam langkah-langkah berikut:

  1. BOOT PC ke Lingkungan Pemulihan Windows (Windows RE).
  2. EXTENSIBILITY POINT A (BasicReset_BeforeImageApply): Tambahkan skrip di sini untuk menyalin file, driver, atau pengaturan yang tidak dimigrasikan secara default saat pengguna menjalankan fitur Pertahankan file saya .
  3. Akun pengguna, pengaturan, dan data dikumpulkan dan dipindahkan ke lokasi sementara.
  4. Salinan baru OS dibangun di lokasi sementara menggunakan file dari Windows Component Store.
  5. Kustomisasi yang disimpan dalam paket provisi di bawah C:\Recovery\Customizations diterapkan ke OS baru.
  6. Driver disalin dari OS yang ada dan disuntikkan ke OS baru.
  7. Aplikasi Windows yang telah diinstal sebelumnya dipulihkan dari lokasi pencadangannya.
  8. Pengaturan penting sistem diterapkan ke OS baru.
  9. OS yang ada dipindahkan ke C:\Windows.old.
  10. OS baru dipindahkan ke akar volume OS.
  11. EXTENSIBILITY POINT B (BasicReset_AfterImageApply): Tambahkan skrip di sini untuk memulihkan file kustomisasi (unattend.xml, layoutmodification.xml), atau memulihkan file dan pengaturan yang mungkin telah Anda cadangkan pada titik ekstensibilitas A.
  12. PC di-boot ulang ke OS baru.
  13. Selama boot pertama, data dan pengaturan pengguna diterapkan kembali.

Fitur Hapus semuanya dapat diringkas dalam langkah-langkah berikut:

  1. BOOT PC ke Lingkungan Pemulihan Windows (Windows RE).
  2. Akun pengguna, data, dan aplikasi Windows yang diinstal dan aplikasi desktop Windows dihapus dari volume OS.
  3. Volume data diformat (jika diminta oleh pengguna).
  4. Penghapusan data dilakukan pada OS dan volume data (jika diminta oleh pengguna).
  5. EXTENSIBILITY POINT C (FactoryReset_AfterDiskFormat): Tambahkan skrip di sini untuk mengonfigurasi ulang partisi data jika diperlukan. Penting: Jangan ubah partisi Windows.
  6. Salinan baru OS dibangun di lokasi sementara menggunakan file dari Windows Component Store.
  7. Kustomisasi yang disimpan dalam paket provisi di bawah C:\Recovery\Customizations diterapkan ke OS baru.
  8. Driver disalin dari OS yang ada dan disuntikkan ke OS baru.
  9. Aplikasi Universal Windows yang telah diinstal sebelumnya dipulihkan dari lokasi pencadangannya.
  10. OS yang ada dihapus.
  11. OS baru dipindahkan ke akar volume OS.
  12. EXTENSIBILITY POINT D (FactoryReset_AfterImageApply): Tambahkan skrip di sini untuk memulihkan file kustomisasi (unattend.xml, layoutmodification.xml).
  13. PC di-boot ulang ke OS baru.
  14. OOBE dimulai.

Contoh: Pulihkan Penyesuaian Menu Mulai, Taskbar, OOBE, dan unattend.xml

Di bawah ini adalah contoh skrip dan sampel file ResetConfig.xml yang bekerja sama untuk memulihkan kustomisasi umum selama pengaturan ulang tombol Dorong pada Windows 11. Anda dapat menguji pemulihan tombol Push menggunakan sampel ini. Untuk menguji dengan sampel ini:

  • Simpan yang berikut ini ke C:\Recovery\OEM dalam folder:
    • Contoh skrip, CommonCustomizations.cmd
    • File konfigurasi reset tombol dorong, ResetConfig.xml
    • Salinan file konfigurasi menu Mulai (LayoutModification.json)
    • Salinan file konfigurasi Taskbar (TaskbarLayoutModification.xml)
    • Salinan file unattend.xml

Di bawah ini adalah contoh skrip dan sampel file ResetConfig.xml yang bekerja sama untuk memulihkan kustomisasi umum selama pengaturan ulang tombol Push pada Windows 10. Anda dapat menguji pemulihan tombol Push menggunakan sampel ini. Untuk menguji dengan sampel ini:

  • Simpan yang berikut ini ke C:\Recovery\OEM dalam folder:
    • Contoh skrip, CommonCustomizations.cmd
    • File konfigurasi reset tombol dorong, ResetConfig.xml
    • Salinan file konfigurasi menu Mulai (LayoutModification.xml)
    • Salinan file konfigurasi Taskbar (TaskbarLayoutModification.xml)
    • Salinan file unattend.xml
  • Salin seluruh folder OOBE dan subfoldernya, %WINDIR%\System32\Oobe\Info\ ke dalam C:\Recovery\OEM\OOBE\Info.

CommonCustomizations.cmd

File ini menyalin file kustomisasi dari folder Pemulihan ke OS yang dipulihkan.

rem CommonCustomizations.cmd

rem Define %TARGETOS% as the Windows folder (This later becomes C:\Windows) 
for /F "tokens=1,2,3 delims= " %%A in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RecoveryEnvironment" /v TargetOS') DO SET TARGETOS=%%C

rem Define %TARGETOSDRIVE% as the Windows partition (This later becomes C:)
for /F "tokens=1 delims=\" %%A in ('Echo %TARGETOS%') DO SET TARGETOSDRIVE=%%A

rem Add back Windows settings, Start menu, Taskbar, and OOBE.xml customizations
copy "%TARGETOSDRIVE%\Recovery\OEM\Unattend.xml" "%TARGETOS%\Panther\Unattend.xml" /y
copy "%TARGETOSDRIVE%\Recovery\OEM\LayoutModification.json" "%TARGETOSDRIVE%\Users\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.json" /y
copy "%TARGETOSDRIVE%\Recovery\OEM\TaskbarLayoutModification.xml" "%TARGETOS%\OEM\TaskbarLayoutModification.xml" /y
xcopy "%TARGETOSDRIVE%\Recovery\OEM\OOBE\Info" "%TARGETOS%\System32\Oobe\Info\" /s

rem Recommended: Create a pagefile for devices with 1GB or less of RAM.
wpeutil CreatePageFile /path=%TARGETOSDRIVE%\PageFile.sys /size=256

EXIT 0
rem CommonCustomizations.cmd

rem Define %TARGETOS% as the Windows folder (This later becomes C:\Windows) 
for /F "tokens=1,2,3 delims= " %%A in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RecoveryEnvironment" /v TargetOS') DO SET TARGETOS=%%C

rem Define %TARGETOSDRIVE% as the Windows partition (This later becomes C:)
for /F "tokens=1 delims=\" %%A in ('Echo %TARGETOS%') DO SET TARGETOSDRIVE=%%A

rem Add back Windows settings, Start menu, Taskbar, and OOBE.xml customizations
copy "%TARGETOSDRIVE%\Recovery\OEM\Unattend.xml" "%TARGETOS%\Panther\Unattend.xml" /y
copy "%TARGETOSDRIVE%\Recovery\OEM\LayoutModification.xml" "%TARGETOSDRIVE%\Users\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.xml" /y
copy "%TARGETOSDRIVE%\Recovery\OEM\TaskbarLayoutModification.xml" "%TARGETOS%\OEM\TaskbarLayoutModification.xml" /y
xcopy "%TARGETOSDRIVE%\Recovery\OEM\OOBE\Info" "%TARGETOS%\System32\Oobe\Info\" /s

rem Recommended: Create a pagefile for devices with 1GB or less of RAM.
wpeutil CreatePageFile /path=%TARGETOSDRIVE%\PageFile.sys /size=256

EXIT 0

ResetConfig.xml

Catatan

Contoh ini menunjuk ke skrip yang sama dua kali, sehingga dapat digunakan oleh fitur Pertahankan file saya atau Hapus semuanya .

<?xml version="1.0" encoding="utf-8"?>
<!-- ResetConfig.xml -->
<Reset>
  <Run Phase="BasicReset_AfterImageApply">
    <Path>CommonCustomizations.cmd</Path>
    <Duration>2</Duration>
  </Run>
  <Run Phase="FactoryReset_AfterImageApply">
    <Path>CommonCustomizations.cmd</Path>
    <Duration>2</Duration>
  </Run>
  <!-- May be combined with Recovery Media Creator
       configurations – insert SystemDisk element here -->
</Reset>

Mempertahankan dan mengambil file

Dengan fitur Pertahankan file saya , Anda dapat menggunakan contoh skrip untuk mempertahankan file yang jika tidak akan dihapus, dengan menempatkannya di lokasi sementara dalam memori. Anda tidak dapat menyimpan file dengan fitur Hapus semuanya .

Anda dapat menggunakan lokasi berikut untuk penyimpanan, jika diperlukan.

  • Windows PE RAM drive (X:). Drive virtual ini dibuat oleh Windows PE, dan tetap aktif selama proses Pertahankan file saya . Anda dapat menggunakannya dengan fitur Pertahankan file saya untuk menyimpan data sebelum partisi di-refresh, dan untuk memulihkan data setelah refresh partisi selesai. Jumlah memori yang tersedia terbatas pada jumlah RAM pada sistem, dikurangi jumlah RAM yang diperlukan untuk alat Windows RE ketika diperluas sepenuhnya. Untuk petunjuk tentang pemasangan Windows RE dan menentukan ukuran file yang sepenuhnya diperluas, lihat Menyesuaikan Windows RE.

  • Partisi OEM yang ditunjuk. Anda dapat meninggalkan ruang tambahan pada partisi. Misalnya, Anda dapat meninggalkan ruang pada partisi gambar pemulihan, dan menggunakan skrip untuk menetapkan huruf drive untuk sementara waktu lalu menyimpan file ke partisi tersebut. Namun, jika pengguna Anda menggunakan media pemulihan untuk mempartisi ulang disk, data pada partisi ini mungkin hilang selama proses pemulihan.

Contoh skrip ini mempertahankan file log Windows. Simpan skrip ini di C:\Recovery\OEM folder .

Contoh ResetConfig.xml yang mempertahankan file

<?xml version="1.0" encoding="utf-8"?>
<!-- ResetConfig.xml -->
   <Reset>
      <Run Phase="BasicReset_BeforeImageApply">
         <Path>SaveLogFiles.cmd</Path>
         <Duration>4</Duration>
      </Run>      
      <Run Phase="BasicReset_AfterImageApply">
         <Path>RetrieveLogFiles.cmd</Path>
         <Duration>2</Duration>
      </Run>
      <!-- May be combined with Recovery Media Creator
       configurations – insert SystemDisk element here -->
   </Reset>

Contoh skrip ekstensibilitas yang mempertahankan file

SaveLogFiles.cmd: Menyimpan file log ke folder sementara dalam memori

:rem == SaveLogFiles.cmd

:rem == 1. Use the registry to identify the location of
:rem       the new operating system and the primary hard
:rem       drive. For example, 
:rem       %TARGETOS% may be defined as C:\Windows
:rem       %TARGETOSDRIVE% may be defined as C:
for /F "tokens=1,2,3 delims= " %%A in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RecoveryEnvironment" /v TargetOS') DO SET TARGETOS=%%C

for /F "tokens=1 delims=\" %%A in ('Echo %TARGETOS%') DO SET TARGETOSDRIVE=%%A

:rem == 2. Copy old Windows logs to a temporary folder in memory
mkdir X:\Temp
xcopy %TARGETOS%\Logs\*.* X:\temp\OldLogs /cherkyi

EXIT 0

Contoh skrip ekstensibilitas yang mengambil file

RetrieveLogFiles.cmd: Mengambil file yang disimpan dalam memori oleh skrip SaveLogFiles.cmd.

:rem == RetrieveLogFiles.cmd

:rem == This sample script retrieves the files that 
:rem    were saved in memory by 
:rem    SaveLogFiles.cmd,
:rem    and adds them back to the system.

:rem == 1. Use the registry to identify the location of
:rem       the new operating system and the primary drive.
:rem        
:rem       %TARGETOS% is the Windows folder 
:rem          (This later becomes C:\Windows)
:rem       %TARGETOSDRIVE% is the Windows partition 
:rem          (This later becomes C:)
for /F "tokens=1,2,3 delims= " %%A in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RecoveryEnvironment" /v TargetOS') DO SET TARGETOS=%%C
for /F "tokens=1 delims=\" %%A in ('Echo %TARGETOS%') DO SET TARGETOSDRIVE=%%A

:rem == 2. Copy the old logs to the new OS 
:rem       at C:\Windows\OldLogs
mkdir %TARGETOS%\OldLogs
xcopy X:\Temp\OldLogs\* %TARGETOS%\OldLogs /cherkyi

EXIT 0

Metode alternatif: salin skrip setelah penyebaran

Beberapa saat setelah pengguna Anda menyelesaikan OOBE, skrip pemulihan dipindahkan dari C:\Recovery\OEM folder ke partisi pemulihan, di R:\RecoveryImage\.

Jika reset tombol pendorongan digunakan sebelum operasi ini berlangsung, skrip ini mungkin tidak berjalan. Untuk mencegah kemungkinan itu, Anda dapat menyalin file pemulihan langsung ke partisi pemulihan, R:\RecoveryImage\ setelah gambar Anda disebarkan.

Langkah berikutnya

Sekarang setelah Anda menyesuaikan pengalaman reset tombol pendorongan, Anda dapat menyebarkan gambar pemulihan untuk reset tombol pendorongan (Install.wim) ke partisi gambar pemulihan.

Untuk menyalin skrip Diskpart, file ResetConfig.xml, dan gambar pemulihan reset tombol tekan (install.wim) ke partisi gambar pemulihan PC tujuan, ikuti instruksi dalam topik Sebarkan Push-Button Reset Fitur .

Gambaran Umum Pengaturan Ulang Tombol Pendorongan

Membuat Media untuk Menjalankan Fitur Reset Push-Button

Menyebarkan fitur Push-Button Reset

Opsi Command-Line REAgentC

ResetKonfigurasi Referensi XML