Windows 10,Windows Server 2016安装Websetup兼容性问题解决办法

在Windows 10 或者Windows Server 2016 上使用打包好的websetup进行安装时,由于兼容性原因,会出现以下提示:

如果当时不方便冲突新打包时,可通过暂时修改IIS的兼容性到windows 7,即可顺利安装。修改方法已经做成下面的批处理文件。

注意:使用下面的批处理时,必须保证IIS已经安装好。否则不保证成功。

@echo off
setlocal enabledelayedexpansion
title 迷路轮回专用IIS兼容性修改
mode con cols=80 lines=22
call :os& call :query
set "aa=!value:0x=!"& call :chan !aa!
for /l %%i in (6,-1,1) do ( call :main
if %%i==6 (call :echo)
if %%i==5 (call :chang)
if %%i LSS 5 echo=谢谢使用,%%i秒后自动退出!
choice /t 1 /d y /n >nul )
exit
:chang
reg add HKLM\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters /v MajorVersion /t REG_DWORD /d !vers! /f
call :query & set "aa=!value:0x=!"& call :chan !aa! & goto :eof
:echo
if !var!==7 ( set vers=10& echo=按下任意键,将修改兼容性为windows 10
			) else (
					if !var!==10 ( 
						set vers=7& echo=按下任意键,将修改兼容性为windows 7
					) else ( 
							echo=当前环境无需修改兼容性
							)
					)
			)
pause >nul& goto :eof
:os
for /f "skip=1 tokens=1*" %%a in ('wmic os get caption') do (set os=%%b)& goto :eof
:query
for /f "tokens=2*" %%i in (
'reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters^|findstr MajorVersion'
) do set "value=%%j"& goto :eof
:chan ::十六进制转换为10进制
set "var="& for /f "delims=" %%i in ("%1") do (
    set str=%%i
    set Ln=&set "Sn=!str!"
    for %%j in (16)do if "!Sn:~%%j!" NEQ "" set/aLn+=%%j&set Sn=!Sn:~%%j!
    set Sn=!Sn!FEDCBA9876543210&set/aLn+=0x!Sn:~16,1!
    for /l %%j in (0 2 !Ln!) do (
        set /a "D=0x!str:~%%j,2!"
        set var=!var!!D!
    )
)
goto :eof
:main
cls & echo= & echo= & echo=
echo=			    迷路轮回专用IIS兼容性修改工具
echo= & echo=
echo  ==============================================================================
echo= & echo=& echo= 	当前操作系统为:!os!
echo=& echo= 	注册表中的IIS版本为:!var!(即兼容性为windows !var!)
echo= & echo=& echo= 				迷路轮回 2017-02-09 www.xyx115.com
echo  ==============================================================================
set /p=				        <nul& goto :eof

如果安装websetup时,提示权限不足,可参考下一篇文章的解决办法。

Leave a Comment

电子邮件地址不会被公开。 必填项已用*标注