IgorYanovich
А если я укажу метку флешке Winpe, и скрипт её перестанет форматировать, я смогу на ней найти вот эти файлы:
Нет, сами они там не появятся, но давайте по порядку.
Для начала все же зачистите целевой диск, присвойте флешке метку и попробуйте установить, получится - вопрос исчерпан, ТМЗ
Если не выйдет, переходим к диску Х - это РАМ-драйв.
В командной строке пишем
copy x:\имя_файла_с_расширением s:\
S - судя по вашим веселым картинкам, эту букву скрипт присваивает флешке. Содержимое файлов кидаете сюда при помощи тега "code"
картинки и рар-архивы оно несколько неудобно
А если я укажу метку флешке Winpe, и скрипт её перестанет форматировать, я смогу на ней найти вот эти файлы:
Нет, сами они там не появятся, но давайте по порядку.
Для начала все же зачистите целевой диск, присвойте флешке метку и попробуйте установить, получится - вопрос исчерпан, ТМЗ
Если не выйдет, переходим к диску Х - это РАМ-драйв.
В командной строке пишем
copy x:\имя_файла_с_расширением s:\
S - судя по вашим веселым картинкам, эту букву скрипт присваивает флешке. Содержимое файлов кидаете сюда при помощи тега "code"
001 | @ echo off |
002 | @rem This script is called by x:\Windows\System32\Startnet.cmd - WinPE |
003 | @ echo . |
004 | @ echo . |
005 | @ echo . |
006 | @ echo Running Intel Optimization powercfg for improved imaging times |
007 | @ echo . |
008 | @ echo call powercfg /s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c |
009 | call powercfg /s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c |
010 | @ echo . |
011 | @ echo . |
012 | @ echo . |
013 | @rem ***************************************************************** |
014 | @rem List all the disks, then search the volumes of each one to see |
015 | @rem which disks may have "Winpe" in the label. We will ignore that |
016 | @rem disk and use the first disk without the Winpe label that we find. |
017 | @rem ***************************************************************** |
018 | @ echo .>x:\listdisk.txt |
019 | @ echo list disk>>x:\listdisk.txt |
020 | @ echo exit >>x:\listdisk.txt |
021 | echo x:\listdisk.txt |
022 | @ echo call diskpart /s x:\listdisk.txt |
023 | call diskpart /s x:\listdisk.txt>x:\Disks.txt |
024 | @ echo . |
025 | @rem Set Disk equal to blank to start |
026 | set disk= |
027 | @ echo . |
028 | @rem |
029 | @rem This line will write a diskpart script to select the disk and detail it's contents. |
030 | @rem We use this output to find a disk that does NOT have Winpe as the volume label. |
031 | @rem That disk will have the OS installed to it. This way you can exclude USB from diskpart. |
032 | @rem |
033 | @rem This works around the issue where the USB key is sometimes enumerated as disk 0 and the |
034 | @rem SSD is disk 1. |
035 | @rem |
036 | for /f "skip=8 tokens=2" %%A in (x:\Disks.txt) do ( |
037 | @ echo sel disk %%A>x:\Par.txt |
038 | @ echo det disk>>x:\Par.txt |
039 | @ echo exit >>x:\Par.txt |
040 | if NOT "%%A" == "DiskPart..." call :ListPar %%A |
041 | ) |
042 | if "%Disk%" == "" echo No disk found without a volume label of "Winpe" && set disk=0 |
043 | @ echo Using Disk "%Disk%" |
044 | @ echo . |
045 | @ echo . |
046 | @ echo . |
047 | @ echo ***************************************************************** |
048 | @rem Map drive letter for Install.wim |
049 | @ echo ***************************************************************** |
050 | @ echo .>x:\ListVol.txt |
051 | @ echo List volume>>x:\ListVol.txt |
052 | @ echo exit >>x:\ListVol.txt |
053 | @ echo call diskpart /s x:\ListVol.txt |
054 | call diskpart /s x:\ListVol.txt>x:\Output.txt |
055 | @ echo . |
056 | @ echo . |
057 | @rem Go through each drive letter, looking for the images\Install.txt file |
058 | for /f "skip=8 tokens=3" %%A in (x:\Output.txt) do ( |
059 | if exist %%A:\images\install.txt set InstallPath=%%A:\images&& echo "Found device with images folder and install.txt file" |
060 | ) |
061 | if exist Z:\images\install.txt set InstallPath=Z:\images&& echo "Found device with images folder and install.txt file" |
062 | @ echo . |
063 | @ echo . |
064 | @ echo . |
065 | @rem ***************************************************************** |
066 | @rem Detect if System is booted into UEFI mode or Bios mode |
067 | @rem ***************************************************************** |
068 | for /f "tokens=2* delims= " %%A in ( 'reg query HKLM\System\CurrentControlSet\Control /v PEFirmwareType' ) do set Firmware=%%B |
069 | @ echo . |
070 | if %Firmware%==0x1 goto :Biosmode |
071 | if %Firmware%==0x2 goto :UEFImode |
072 | Goto : END |
073 | :UEFImode |
074 | @ echo . |
075 | @rem ************************ |
076 | @rem UEFI SECTION |
077 | @rem ************************ |
078 | @ echo The PC is booted in UEFI mode |
079 | @ echo .>x:\winpart.txt |
080 | @ echo select disk "%Disk%" >>x:\winpart.txt |
081 | if EXIST %InstallPath%\winpart\UEFI.txt type %InstallPath%\winpart\UEFI.txt >> x:\WinPart.txt && Goto :WINPARTSECTION |
082 | @ echo clean>>x:\winpart.txt |
083 | @ echo convert gpt>>x:\winpart.txt |
084 | @ echo create partition efi size=100>>x:\winpart.txt |
085 | @ echo format quick fs=fat32 label= "System" >>x:\winpart.txt |
086 | @ echo assign letter= "S" >>x:\winpart.txt |
087 | @ echo create partition msr size=16>>x:\winpart.txt |
088 | @ echo create partition primary>>x:\winpart.txt |
089 | @ echo format quick fs=ntfs label= "Windows" >>x:\winpart.txt |
090 | @ echo assign letter= "W" >>x:\winpart.txt |
091 | @ echo shrink desired=450>>x:\winpart.txt |
092 | @ echo create partition primary>>x:\winpart.txt |
093 | @ echo format quick fs=ntfs label= "Recovery" >>x:\winpart.txt |
094 | @ echo assign letter= "R" >>x:\winpart.txt |
095 | @ echo set id= "de94bba4-06d1-4d40-a16a-bfd50179d6ac" >>x:\winpart.txt |
096 | @ echo gpt attributes=0x8000000000000001>>x:\winpart.txt |
097 | @ echo exit >>x:\WinPart.txt |
098 | Goto :WINPARTSECTION |
099 | |
100 | :Biosmode |
101 | @rem ************************ |
102 | @rem BIOS SECTION |
103 | @rem ************************ |
104 | @ echo The PC is booted in BIOS mode |
105 | @ echo .>x:\winpart.txt |
106 | @ echo select disk "%Disk%" >>x:\winpart.txt |
107 | if EXIST %InstallPath%\winpart\BIOS.txt type %InstallPath%\winpart\BIOS.txt >> x:\WinPart.txt && Goto :WINPARTSECTION |
108 | @ echo clean>>x:\winpart.txt |
109 | @ echo create partition primary size=100>>x:\winpart.txt |
110 | @ echo active>>x:\winpart.txt |
111 | @ echo format quick fs=fat32 label= "System" >>x:\winpart.txt |
112 | @ echo assign letter= "S" >>x:\winpart.txt |
113 | @ echo create partition primary>>x:\winpart.txt |
114 | @ echo format quick fs=ntfs label= "Windows" >>x:\winpart.txt |
115 | @ echo assign letter= "W" >>x:\winpart.txt |
116 | @ echo shrink minimum=450>>x:\winpart.txt |
117 | @ echo create partition primary>>x:\winpart.txt |
118 | @ echo format quick fs=ntfs label= "Recovery" >>x:\winpart.txt |
119 | @ echo set id=27>>x:\winpart.txt |
120 | @ echo assign letter= "R" >>x:\winpart.txt |
121 | @ echo exit >>x:\winpart.txt |
122 | @ echo . |
123 | Goto :WINPARTSECTION |
124 | |
125 | :WINPARTSECTION |
126 | @ echo Winpart.txt now contains..... |
127 | @ echo . |
128 | type x:\winpart.txt |
129 | @ echo . |
130 | @ echo . |
131 | @ echo ***************************************************************** |
132 | @ echo Setting up the partition table |
133 | @ echo ***************************************************************** |
134 | @ echo call diskpart /s x:\winpart.txt |
135 | diskpart /s x:\winpart.txt |
136 | @ echo . |
137 | @ echo . |
138 | @ echo Making directories... |
139 | set ScratchDrive=R |
140 | md %ScratchDrive%:\recycler\scratch |
141 | if %errorlevel% NEQ 0 echo "Failed to make %ScratchDrive%:\recycler\scratch directory" && goto :error |
142 | @ echo check compact mode |
143 | if EXIST %InstallPath%\Config.txt ( |
144 | set COMPACT=/compact |
145 | ) else ( |
146 | set COMPACT= |
147 | ) |
148 | @ echo . |
149 | @ echo ***************************************************************** |
150 | @ echo Applying the Windows image from the USB |
151 | @ echo ***************************************************************** |
152 | if EXIST %InstallPath%\Install.ffu ( |
153 | @ echo Install.ffu FOUND at %InstallPath%\Install.ffu |
154 | @ echo call DISM /Apply-ffu /ImageFile:%InstallPath%\Install.ffu /ApplyDrive:\\.PhysicalDrive0 |
155 | call DISM /Apply-ffu /ImageFile:%InstallPath%\Install.ffu /ApplyDrive:\\.PhysicalDrive0 |
156 | if %errorlevel% NEQ 0 echo "Failed to apply ffu images" && goto :error |
157 | ) else ( |
158 | echo "Install.ffu NOT found." |
159 | if EXIST %InstallPath%\Install.sfu ( |
160 | echo "Find Install.sfu" |
161 | call DISM /Apply-ffu /ImageFile:%InstallPath%\Install.sfu /SFUFile:flash*.sfu /ApplyDrive:\\.PhysicalDrive0 |
162 | rem if %errorlevel% NEQ 0 echo "Failed to apply swm images" && goto :error |
163 | ) else ( |
164 | echo "Install.sfu NOT found." |
165 | ) |
166 | ) |
167 | if EXIST %InstallPath%\Install.wim ( |
168 | @ echo Install.wim FOUND at %InstallPath%\install.wim |
169 | @ echo call DISM /Apply-Image /ImageFile: "%InstallPath%\install.wim" /ApplyDir:w: /Index:1 /ScratchDir:%ScratchDrive%:\recycler\SCRATCH %COMPACT% /EA |
170 | call DISM /Apply-Image /ImageFile: "%InstallPath%\install.wim" /ApplyDir:w: /Index:1 /ScratchDir:%ScratchDrive%:\recycler\SCRATCH %COMPACT% /EA |
171 | if %errorlevel% NEQ 0 echo "Failed to apply wim images" && goto :error |
172 | ) else ( |
173 | echo "Install.wim NOT found." |
174 | echo "Find Install.swm" |
175 | if NOT EXIST %InstallPath%\Install.swm echo "Install.swm NOT found." && goto :Error |
176 | Dism /apply-image /imagefile: "%InstallPath%\install.swm" /swmfile: "%InstallPath%\install*.swm" /ApplyDir:w: /Index:1 /ScratchDir:%ScratchDrive%:\recycler\SCRATCH %COMPACT% /EA |
177 | rem if %errorlevel% NEQ 0 echo "Failed to apply swm images" && goto :error |
178 | ) |
179 | |
180 | @ echo . |
181 | @ echo . |
182 | @ echo ***************************************************************** |
183 | @ echo Copying over NON Scanstate Packages, if they exist. |
184 | @ echo IF YOU COPY OVER SCANSTATE PPKG, THIS CAUSE IMAGE TO FAIL DURING RECOVERY |
185 | @ echo ***************************************************************** |
186 | |
187 | @ echo . |
188 | @ echo ***************************************************************** |
189 | @ echo Setting the boot environment |
190 | @ echo ***************************************************************** |
191 | @ echo call w:\WINDOWS\SYSTEM32\BCDBOOT w:\WINDOWS /s s: /f all |
192 | w:\WINDOWS\SYSTEM32\BCDBOOT w:\WINDOWS /s s: /f all |
193 | if %errorlevel% NEQ 0 echo "Failed to set boot information" && goto :error |
194 | @ echo . |
195 | @ echo . |
196 | @ echo . |
197 | @ echo . |
198 | @ echo ***************************************************************** |
199 | @rem Move WinRE to Recovery Partition |
200 | @ echo ***************************************************************** |
201 | @ echo . |
202 | |
203 | ) |
204 | @ echo . |
205 | @ echo reset attributes now |
206 | attrib r:\Recovery\Windowsre\winre.wim +s +h +a +r |
207 | @ echo . |
208 | @ echo . |
209 | @ echo . |
210 | @ echo ***************************************************************** |
211 | @ echo Setting the recovery environment |
212 | @ echo ***************************************************************** |
213 | |
214 | @ echo . |
215 | @ echo ***************************************************************** |
216 | @ echo Copying over Unattend.xml to use on factory floor if it exists |
217 | @ echo ***************************************************************** |
218 | @ echo ***************************************************************** |
219 | @ echo Copy over a custom unattend.xml if it exists to Windows\Panther |
220 | @ echo ***************************************************************** |
221 | @ echo . |
222 | @ echo . |
223 | |
224 | @ echo ***************************************************************** |
225 | @ echo Unzip TEST_TOOL |
226 | @ echo ***************************************************************** |
227 | :unzip_testtool |
228 | |
229 | @ echo ***************************************************************** |
230 | @ echo Unzip OA3Tool |
231 | @ echo ***************************************************************** |
232 | |
233 | @ echo ***************************************************************** |
234 | @ echo START_TEST.cmd |
235 | @ echo ***************************************************************** |
236 | |
237 | |
238 | @ echo . |
239 | @ echo ***************************************************************** |
240 | @ echo Hide Reocvery & Set Permission |
241 | @ echo |
242 | |
243 | @ echo . |
244 | @ echo . |
245 | |
246 | @ echo . |
247 | @ echo ***************************************************************** |
248 | @ echo Call public .bat |
249 | @ echo |
250 | call %InstallPath%\Public\Public.bat |
251 | @ echo . |
252 | @ echo . |
253 | @ echo BootOrderFlagSet.exe ? |
254 | @ echo ?-help info |
255 | @ echo 1-set Manager to the first bootorder |
256 | @ echo 2-set USB to the first bootorder |
257 | @ echo 3-set Network to the first bootorder |
258 | @ echo 4-set Network 0 for ipv4 to the first bootorder |
259 | @ echo r-read the bootorder |
260 | @ echo if EXIST %WinpeSource%Scripts\%PROCESSOR_ARCHITECTURE%\BootOrderFlagSet.exe call %WinpeSource%Scripts\%PROCESSOR_ARCHITECTURE%\BootOrderFlagSet.exe 0 |
261 | if EXIST %WinpeSource%Scripts\%PROCESSOR_ARCHITECTURE%\BootOrderFlagSet.exe call %WinpeSource%Scripts\%PROCESSOR_ARCHITECTURE%\BootOrderFlagSet.exe 0 |
262 | if %errorlevel% NEQ 0 echo "Error when run %WinpeSource%Scripts\%PROCESSOR_ARCHITECTURE%\BootOrderFlagSet.exe 0" && goto :error |
263 | @ echo . |
264 | @ echo . |
265 | @ echo . |
266 | @ echo |
267 | echo BaseBoardProduct=%BaseBoardProduct% |
268 | echo InstallName=%InstallName% |
269 | for /f "tokens=*" %%i in ( 'type "%WinPESource%Images\install.txt"' ) do if NOT "%%i" == "" type "%WinPESource%Images\install.txt" > w:\windows\system32\version.txt |
270 | |
271 | type w:\windows\system32\version.txt | find /i "Version:" |
272 | if NOT "%WinPESource%" =="Z:\" ( |
273 | if NOT "%BaseBoardProduct%" == "%InstallName%" echo "Apply sucessfuly, but %BaseBoardProduct% & %InstallName% not match" && goto WARN |
274 | ) |
275 | @ echo . |
276 | @ echo ***************************************************************** |
277 | @ echo Image deployment COMPLETE. Type EXIT from Command |
278 | @ echo Prompt to restart or turn off device. |
279 | @ echo ***************************************************************** |
280 | color 2f |
281 | goto : END |
282 | |
283 | :WARN |
284 | @ echo . |
285 | @ echo An warning has been detected. |
286 | @ echo . |
287 | color 0E |
288 | pause |
289 | goto : END |
290 | |
291 | :ERROR |
292 | @ echo . |
293 | @ echo An error has been detected. |
294 | @ echo . |
295 | color 4f |
296 | pause |
297 | goto : END |
298 | |
299 | :ListPar |
300 | @REM This section is to bring a disk number and use it to List Partitions |
301 | @ echo . |
302 | set TempDisk=%1 |
303 | diskpart /s x:\Par.txt>x:\ParOutput.txt |
304 | for /f "skip=26 tokens=4" %%A in (x:\ParOutput.txt) do ( |
305 | if /i NOT "%%A" == "Winpe" set Disk=%TempDisk% |
306 | ) |
307 | Goto :EOF |
308 | |
309 | : END |
310 | @rem |
311 | @rem Get finish time so we can evaluate total WinPE phase time. |
312 | @rem |
313 | call |time>x:\StopTime.txt |
314 | @rem |
315 | @rem Now parse both files to display the Start and Finish Time |
316 | @rem |
317 | @ echo . |
318 | @ echo . |
319 | for /f "tokens=5" %%A in (x:\starttime.txt) do echo Script Start Time is %%A |
320 | for /f "tokens=5" %%A in (x:\stoptime.txt) do echo Script Stop Time is %%A |
321 | @ echo . |
322 | pause |
323 | exit 0 |