https://bugs.winehq.org/show_bug.cgi?id=36646
Bug ID: 36646 Summary: Windows 7 USB/DVD download tool installer fails, reporting 'Can't recognize 'Wudt.msi' as an internal or external command, or batch script' Product: Wine Version: 1.7.19 Hardware: x86 OS: Linux Status: NEW Severity: normal Priority: P2 Component: cmd Assignee: wine-bugs@winehq.org Reporter: focht@gmx.net
Hello folks,
the bootstrapper 'Windows7-USB-DVD-tool.exe' unpacks an .msi and .cmd file.
Content of 'setup.cmd':
--- snip --- @ECHO OFF Wudt.msi ECHO ON --- snip ---
It expects the command processor to figure out the actual program to run with -> 'msiexec -i <filename>' which fails to do so.
Relevant part of trace log:
--- snip --- $ WINEDEBUG=+tid,+seh,+relay wine ./Windows7-USB-DVD-tool.exe >>log.txt 2>&1 ... 002a:Call KERNEL32.CreateProcessA(00000000,0013ae80 "C:\users\focht\Temp\IXP000.TMP\setup.cmd",00000000,00000000,00000000,00000020,00000000,00000000,0033fad8,0033f8a0) ret=01005018 ... 002c:Call KERNEL32.__wine_kernel_init() ret=7bc5a4b2 002a:Ret KERNEL32.CreateProcessA() retval=00000001 ret=01005018 002a:Call KERNEL32.WaitForSingleObject(00000068,ffffffff) ret=0100502e ... 002c:Starting process L"C:\windows\system32\cmd.exe" (entryproc=0x7ed061d4) ... 002c:trace:cmd:wmain Full commandline 'L"C:\windows\system32\cmd.exe /c C:\users\focht\Temp\IXP000.TMP\setup.cmd"' 002c:trace:cmd:wmain Command line parm: 'L"/c C:\users\focht\Temp\IXP000.TMP\setup.cmd"' ... 002c:trace:cmd:WCMD_run_program Running 'L"Wudt.msi"' (0) ... 002c:trace:cmd:WCMD_run_program Found as L"C:\users\focht\Temp\IXP000.TMP\Wudt.msi" ... 002c:Call shell32.FindExecutableW(00329964 L"C:\users\focht\Temp\IXP000.TMP\Wudt.msi",00000000,0033203c) ret=7ed020d6 002c:Call advapi32.RegOpenKeyExW(80000002,00327964 L"Software\Microsoft\Windows\CurrentVersion\App Paths\C:\users\focht\Temp\IXP000.TMP\Wudt.msi",00000000,00020019,00328164) ret=7eb1952d 002c:Ret advapi32.RegOpenKeyExW() retval=00000002 ret=7eb1952d 002c:Call KERNEL32.SearchPathW(00000000,00329964 L"C:\users\focht\Temp\IXP000.TMP\Wudt.msi",7eb4d076 L".exe",00000100,003281b0,00000000) ret=7eb19928 002c:Ret KERNEL32.SearchPathW() retval=00000027 ret=7eb19928 002c:Call KERNEL32.GetFileAttributesW(003281b0 L"C:\users\focht\Temp\IXP000.TMP\Wudt.msi") ret=7eb19a2b 002c:Ret KERNEL32.GetFileAttributesW() retval=00000020 ret=7eb19a2b 002c:Call KERNEL32.GetProfileStringW(7eb4d89c L"windows",7eb4d8ac L"programs",7eb4d8c0 L"exe pif bat cmd com",003283b0,00000100) ret=7eb19bdd 002c:Ret KERNEL32.GetProfileStringW() retval=00000013 ret=7eb19bdd 002c:Call user32.CharLowerW(003283b0 L"exe pif bat cmd com") ret=7eb19bf6 002c:Ret user32.CharLowerW() retval=003283b0 ret=7eb19bf6 002c:Call advapi32.RegQueryValueW(80000000,003281f6 L".msi",00328db4,00328db0) ret=7eb19d39 002c:Ret advapi32.RegQueryValueW() retval=00000000 ret=7eb19d39 002c:Call advapi32.RegOpenKeyExW(80000000,00328db4 L"Msi.Package",00000000,02000000,0032816c) ret=7eb1964c 002c:Ret advapi32.RegOpenKeyExW() retval=00000000 ret=7eb1964c 002c:Call advapi32.RegCloseKey(00000044) ret=7eb1969a 002c:Ret advapi32.RegCloseKey() retval=00000000 ret=7eb1969a 002c:Call advapi32.RegQueryValueW(80000000,00328db4 L"Msi.Package\shell\open\command",003285b0,00328190) ret=7eb196fd 002c:Ret advapi32.RegQueryValueW() retval=00000000 ret=7eb196fd 002c:Call KERNEL32.SearchPathW(00000000,003281b0 L"C:\users\focht\Temp\IXP000.TMP\Wudt.msi",7eb4d076 L".exe",00000400,00327918,00000000) ret=7eb1897d 002c:Ret KERNEL32.SearchPathW() retval=00000027 ret=7eb1897d 002c:Ret shell32.FindExecutableW() retval=00000021 ret=7ed020d6 ... 002c:Call shell32.SHGetFileInfoW(0033203c,00000000,00329b6c,000002b4,00002000) ret=7ed0211d 002c:Call shlwapi.PathIsRelativeW(0033203c L"msiexec") ret=7eadee1f 002c:Ret shlwapi.PathIsRelativeW() retval=00000001 ret=7eadee1f 002c:Call KERNEL32.GetCurrentDirectoryW(00000104,003295c4) ret=7eadee3c 002c:Ret KERNEL32.GetCurrentDirectoryW() retval=0000001e ret=7eadee3c 002c:Call shlwapi.PathCombineW(003293bc,003295c4 L"C:\users\focht\Temp\IXP000.TMP",0033203c L"msiexec") ret=7eadee5d 002c:Ret shlwapi.PathCombineW() retval=003293bc ret=7eadee5d 002c:Call KERNEL32.GetBinaryTypeW(003293bc L"C:\users\focht\Temp\IXP000.TMP\msiexec",00329134) ret=7eade91b 002c:Ret KERNEL32.GetBinaryTypeW() retval=00000000 ret=7eade91b 002c:Ret shell32.SHGetFileInfoW() retval=00000000 ret=7ed0211d 002c:Call KERNEL32.GetStartupInfoW(00329888) ret=7ed018dd 002c:Ret KERNEL32.GetStartupInfoW() retval=00000011 ret=7ed018dd 002c:Call KERNEL32.CreateProcessW(00329964 L"C:\users\focht\Temp\IXP000.TMP\Wudt.msi",00137ad0 L"Wudt.msi",00000000,00000000,00000001,00000000,00000000,00000000,00329920,00329e24) ret=7ed021b2 002c:Ret KERNEL32.CreateProcessW() retval=00000000 ret=7ed021b2 ... Can't recognize 'Wudt.msi' as an internal or external command, or batch script. --- snip ---
Source: http://source.winehq.org/git/wine.git/blob/0f2bed51bdd73676406e908eb105dde1e...
--- snip --- 1038 void WCMD_run_program (WCHAR *command, BOOL called) 1039 { ... 1170 /* Once found, launch it */ 1171 if (found) { 1172 STARTUPINFOW st; 1173 PROCESS_INFORMATION pe; 1174 SHFILEINFOW psfi; 1175 DWORD console; 1176 HINSTANCE hinst; ... 1192 /* thisDir contains the file to be launched, but with what? 1193 eg. a.exe will require a.exe to be launched, a.html may be iexplore */ 1194 hinst = FindExecutableW (thisDir, NULL, temp); 1195 if ((INT_PTR)hinst < 32) 1196 console = 0; 1197 else 1198 console = SHGetFileInfoW(temp, 0, &psfi, sizeof(psfi), SHGFI_EXETYPE); 1199 1200 ZeroMemory (&st, sizeof(STARTUPINFOW)); 1201 st.cb = sizeof(STARTUPINFOW); 1202 init_msvcrt_io_block(&st); 1203 1204 /* Launch the process and if a CUI wait on it to complete 1205 Note: Launching internal wine processes cannot specify a full path to exe */ 1206 status = CreateProcessW(thisDir, 1207 command, NULL, NULL, TRUE, 0, NULL, NULL, &st, &pe); ... --- snip ---
$ sha1sum Windows7-USB-DVD-tool.exe ed1108a525066d1f850023cb5bfa05fc4ed21983 Windows7-USB-DVD-tool.exe
$ du -sh Windows7-USB-DVD-tool.exe 2.6M Windows7-USB-DVD-tool.exe
$ wine --version wine-1.7.19-70-gd6a59f7
Regards
https://bugs.winehq.org/show_bug.cgi?id=36646
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, Installer URL| |http://www.microsoftstore.c | |om/store/msusa/html/pbPage. | |Help_Win7_usbdvd_dwnTool
https://bugs.winehq.org/show_bug.cgi?id=36646
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |dotnet
https://bugs.winehq.org/show_bug.cgi?id=36646
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |super_man@post.com
--- Comment #1 from super_man@post.com --- still valid 1.7.52
https://bugs.winehq.org/show_bug.cgi?id=36646
Andy karlheinz123ffm@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |karlheinz123ffm@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=36646
winetaste@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |winetaste@gmx.net
--- Comment #2 from winetaste@gmx.net --- Still valid 2.0rc5
https://bugs.winehq.org/show_bug.cgi?id=36646
--- Comment #3 from Anastasius Focht focht@gmx.net --- Hello folks,
revisiting, problem still present.
--- snip --- $ WINEDEBUG=+process wine ./Windows7-USB-DVD-tool.exe ... 0009:trace:process:create_process_impl app (null) cmdline L"C:\users\focht\Temp\IXP000.TMP\setup.cmd" 0009:trace:process:find_exe_file looking for L"C:\users\focht\Temp\IXP000.TMP\setup.cmd" 0009:trace:process:find_exe_file Trying native exe L"C:\users\focht\Temp\IXP000.TMP\setup.cmd" 0009:trace:process:create_process_impl starting L"C:\users\focht\Temp\IXP000.TMP\setup.cmd" as batch binary 0009:trace:process:create_process_impl app L"C:\windows\system32\cmd.exe" cmdline L"C:\windows\system32\cmd.exe /s/c "C:\users\focht\Temp\IXP000.TMP\setup.cmd"" 0009:trace:process:open_exe_file looking for L"C:\windows\system32\cmd.exe" 0009:trace:process:create_process_impl starting L"C:\windows\system32\cmd.exe" as Win32 binary (10000000-100bb000, arch 014c, fakedll) 002e:trace:process:init_current_directory starting in L"C:\users\focht\Temp\IXP000.TMP\" 0x20 002e:trace:process:__wine_kernel_init starting process name=L"C:\windows\system32\cmd.exe" argv[0]=L"C:\windows\system32\cmd.exe" 0009:trace:process:create_process_impl started process pid 002d tid 002e 0009:trace:process:create_process_impl started process pid 002d tid 002e 002e:trace:process:set_entry_point setting FT_Thunk at 0x7b6436fc to 00000000 002e:trace:process:create_process_impl app L"C:\users\focht\Temp\IXP000.TMP\Wudt.msi" cmdline L"Wudt.msi" 002e:trace:process:open_exe_file looking for L"C:\users\focht\Temp\IXP000.TMP\Wudt.msi" 002e:trace:process:create_process_impl starting L"C:\users\focht\Temp\IXP000.TMP\Wudt.msi" as Unix binary Can't recognize 'Wudt.msi' as an internal or external command, or batch script. --- snip ---
Original download(s) seem to be broken but I have a copy in my git-annex for reproduce.
--- snip --- $ git annex get * get Windows7-USB-DVD-tool.exe (from backup...) SHA1E-s2721168--ed1108a525066d1f850023cb5bfa05fc4ed21983.exe 2,721,168 100% 116.54MB/s 0:00:00 (xfr#1, to-chk=0/1) (checksum...) ok get WindowsXP-KB932716-v2-x86-ENU.exe (from backup...) SHA1E-s774184--9f8f8369716f6100ea04b6549aaf8e2a22fb0042.exe 774,184 100% 117.84MB/s 0:00:00 (xfr#1, to-chk=0/1) (checksum...) ok get Wudt.msi (from backup...) SHA1E-s2878976--463b4798752072a0af6dbcd7b98f6d6b1b813b14.msi 2,878,976 100% 108.57MB/s 0:00:00 (xfr#1, to-chk=0/1) (checksum...) ok (recording state in git...) --- snip ---
$ wine --version wine-3.13
Regards
https://bugs.winehq.org/show_bug.cgi?id=36646
Jason Edmeades us@edmeades.me.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- Assignee|wine-bugs@winehq.org |us@edmeades.me.uk CC| |us@edmeades.me.uk
--- Comment #4 from Jason Edmeades us@edmeades.me.uk --- cmd fails to launch programs which need file extension -> executable conversion via the classes registry ley, as it just used CreateProcess. I've got a patch which uses ShellExecuteEx instead which gets this working.
https://bugs.winehq.org/show_bug.cgi?id=36646
Jason Edmeades us@edmeades.me.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |DUPLICATE
--- Comment #5 from Jason Edmeades us@edmeades.me.uk --- This is the same problem as 18154, so closing dup of that.
*** This bug has been marked as a duplicate of bug 18154 ***
https://bugs.winehq.org/show_bug.cgi?id=36646
André H. nerv@dawncrow.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nerv@dawncrow.de Status|RESOLVED |CLOSED
--- Comment #6 from André H. nerv@dawncrow.de --- closing dup
https://bugs.winehq.org/show_bug.cgi?id=36646
--- Comment #7 from Jason Edmeades us@edmeades.me.uk --- https://www.winehq.org/pipermail/wine-devel/2018-September/132656.html
https://bugs.winehq.org/show_bug.cgi?id=36646
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Assignee|us@edmeades.me.uk |wine-bugs@winehq.org
https://bugs.winehq.org/show_bug.cgi?id=36646
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://www.microsoftstore.c |https://web.archive.org/web |om/store/msusa/html/pbPage. |/20130403085818/http://imag |Help_Win7_usbdvd_dwnTool |es2.store.microsoft.com/pro | |d/clustera/framework/w7udt/ | |1.0/en-us/windows7-usb-dvd- | |tool.exe