Sysprep ו-Golden Image ב-Windows 11
תהליך עבודה מעשי לאיש IT: בניית Reference Image, ניקוי המערכת, ביטול הצפנה, יצירת Unattend.xml אינטראקטיבית, Sysprep, לכידת WIM ופריסה למחשב חדש.
1. הכנת Reference Image וכניסה ל-Audit Mode
- צרו VM ב-Hyper-V או VMware והתקינו Windows 11 נקי.
- כאשר Windows מגיע למסך בחירת מדינה, אל תמשיכו ב-OOBE.
- לחצו Ctrl + Shift + F3. המחשב יאתחל ל-Audit Mode.
- סגרו את חלון Sysprep שמופיע אוטומטית.
- התקינו תוכנות, עדכוני Windows והגדרות מערכת.
- צרו Checkpoint לפני שלב הניקוי וה-Sysprep.
/generalize לפני שמעבירים Image למחשב אחר, גם אם החומרה זהה.
2. לפני Sysprep: BitLocker, ניקוי ו-Pending Reboot
בדיקת BitLocker וביטול הצפנה
לפני Sysprep ודאו שכונן המערכת מפוענח לחלוטין.
manage-bde -status C:
אם הכונן מוצפן:
manage-bde -off C:
manage-bde -status C:
ניקוי Windows לפני Capture
המטרה היא להסיר קבצים זמניים ורכיבי Update ישנים בלי לפגוע ב-Image.
# Component Store
DISM.exe /Online /Cleanup-Image /StartComponentCleanup
# קבצים זמניים
Get-ChildItem "$env:WINDIR\Temp" -Force -ErrorAction SilentlyContinue |
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
Get-ChildItem "$env:TEMP" -Force -ErrorAction SilentlyContinue |
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue
# סל מחזור
Clear-RecycleBin -Force -ErrorAction SilentlyContinue
# ביטול Hibernation, מסיר hiberfil.sys
powercfg.exe /h off
כאשר ה-Image נבדק סופית ואתם לא צריכים להסיר עדכונים ישנים:
DISM.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase
/ResetBase לא ניתן להסיר עדכונים שהפכו לחלק מה-Base. הריצו אותו רק על Image סופי שנבדק.
בדיקת Restart ממתין
$Pending = @(
Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending"
Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired"
[bool](Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" -ErrorAction SilentlyContinue).PendingFileRenameOperations
)
if ($Pending -contains $true) {
Write-Host "RESTART REQUIRED" -ForegroundColor Yellow
} else {
Write-Host "OK - No pending restart" -ForegroundColor Green
}
אם נדרש Restart, אתחלו וחזרו ל-Audit Mode לפני Sysprep.
3. מחולל Unattend.xml אינטראקטיבי
המחולל יוצר Answer File נקי ל-specialize ול-oobeSystem.
הוא אינו משתמש ב-SkipMachineOOBE. כברירת מחדל הוא גם מוסיף ניקוי אוטומטי של Unattend.xml לאחר הפריסה.
שפה וזהות
רישוי Windows
משתמש מקומי
רשת ופרופיל
OOBE וניקוי אחרי הפריסה
<!-- XML יופיע כאן -->
הגדרות חשבון וניקוי Unattend.xml לאחר OOBE
ברירת המחדל היא המשתמש User בקבוצת Administrators. כאשר האפשרות מסומנת, המחולל מוסיף פקודת FirstLogon אחת שמגדירה שאין לחייב שינוי סיסמה ושהסיסמה לא תפוג. כאשר נבחר ניקוי, אותה פקודה מוחקת את קובצי ה-Answer File לאחר OOBE, ללא סקריפט חיצוני.
net user "User" /logonpasswordchg:no
Set-LocalUser -Name "User" -PasswordNeverExpires $true4. הרצת Sysprep
שמרו את הקובץ שהמחולל יצר כ-C:\Unattend.xml, ואז הריצו כ-Administrator:
%WINDIR%\System32\Sysprep\Sysprep.exe /generalize /oobe /shutdown /unattend:C:\Unattend.xml
אם Sysprep נכשל
C:\Windows\System32\Sysprep\Panther\setuperr.log
C:\Windows\System32\Sysprep\Panther\setupact.log
במקרה של AppX, זהו את ה-Package המדויק בלוג. אל תסירו את כל אפליקציות Store בצורה עיוורת.
5. Capture של ה-Image ב-WinPE
ראשית בדקו איזו אות קיבל כונן Windows:
diskpart
list volume
exit
בדוגמה Windows הוא W: וכונן היעד הוא D::
dism.exe /Capture-Image /ImageFile:D:\Win11_Golden.wim /CaptureDir:W:\ /Name:"Windows 11 Golden" /Compress:max /CheckIntegrity /Verify
ניקוי נוסף של קובץ WIM, אופציונלי
לאחר Capture אפשר לייצא את Index 1 לקובץ WIM חדש. זה יוצר WIM נקי ומאורגן מחדש:
dism.exe /Export-Image /SourceImageFile:D:\Win11_Golden.wim /SourceIndex:1 /DestinationImageFile:D:\Win11_Golden_Final.wim /Compress:max /CheckIntegrity
6. פריסה למחשב חדש, UEFI/GPT
list disk שזה הדיסק הנכון.
select disk 0
clean
convert gpt
create partition efi size=300
format quick fs=fat32 label="System"
assign letter=S
create partition msr size=16
create partition primary
shrink minimum=1500
format quick fs=ntfs label="Windows"
assign letter=W
create partition primary
format quick fs=ntfs label="Recovery"
assign letter=R
set id="DE94BBA4-06D1-4D40-A16A-BFD50179D6AC"
gpt attributes=0x8000000000000001
exit
dism.exe /Apply-Image /ImageFile:D:\Win11_Golden_Final.wim /Index:1 /ApplyDir:W:\ /CheckIntegrity /Verify
bcdboot.exe W:\Windows /s S: /f UEFI
Windows Recovery
mkdir R:\Recovery\WindowsRE
copy W:\Windows\System32\Recovery\winre.wim R:\Recovery\WindowsRE\winre.wim
W:\Windows\System32\reagentc.exe /setreimage /path R:\Recovery\WindowsRE /target W:\Windows
7. Checklist קצר לפני Capture
| בדיקה | מצב רצוי |
|---|---|
| BitLocker | Fully Decrypted |
| Windows Update | אין עדכון או Restart ממתין |
| Component Store | נוקה ב-StartComponentCleanup |
| Temp ו-Recycle Bin | נוקו |
| Hibernation | כבוי לפני Capture |
| Unattend.xml | נוצר ונבדק |
| Checkpoint | נוצר לפני Sysprep |
| Sysprep | /generalize /oobe /shutdown |
| לאחר Shutdown | Boot ישירות ל-WinPE |
| לאחר Deployment | Unattend.xml נמחק אוטומטית |