阅读:4019回复:10
解决“没有找到数字签名”提示的InstallShield脚本!
STRING g_svDriverSigning, g_svNonDriverSigning, g_svUserDriverSigning;
NUMBER g_nvSize, g_nvUserSize, g_nvNonSize; /* 未签名的驱动程序安装操作 0 默认继续 1 允许安装但发出警告 2 禁止安装 */ function NonDriverSigning(bEnable) STRING szKey, svValue, szValue; STRING szKeyName; NUMBER nvType,nvSize; begin RegDBSetDefaultRoot( HKEY_CURRENT_USER ); //--------------------------------------- //设置HKCU下的未签名的驱动程序安装操作 szKey = "Software\\\\Microsoft\\Driver Signing\\\\"; szKeyName = "Policy"; nvType = REGDB_NUMBER; if ( bEnable ) then //保存原值 if ( RegDBGetKeyValueEx( szKey, szKeyName, nvType, g_svUserDriverSigning, g_nvUserSize ) < 0 ) then g_svUserDriverSigning = "0"; g_nvUserSize = -1; endif; //设置为"默认继续" szValue = "0"; nvSize = -1; else //恢复原值 szValue = g_svUserDriverSigning; nvSize = g_nvUserSize; endif; //设置键值 if (RegDBSetKeyValueEx ( szKey , szKeyName , nvType , szValue , nvSize ) < 0) then //return -1; ; endif; RegDBSetDefaultRoot( HKEY_LOCAL_MACHINE); //--------------------------------------- //设置HKLM下的未签名的驱动程序安装操作 szKey = "Software\\\\Microsoft\\\\Driver Signing\\\\"; szKeyName = "Policy"; nvType = REGDB_BINARY; if ( bEnable ) then //保存原值 if ( RegDBGetKeyValueEx( szKey, szKeyName, nvType, g_svDriverSigning, g_nvSize ) < 0 ) then g_svDriverSigning = "\\0\\0\\0\\0"; g_nvSize = 4 ; endif; //设置为"默认继续" szValue = "\\0\\0\\0\\0"; nvSize = 4; else //恢复原值 szValue = g_svDriverSigning; nvSize = g_nvSize; endif; //设置键值 if (RegDBSetKeyValueEx (szKey, szKeyName, REGDB_BINARY, szValue, nvSize) < 0) then return -1; endif; //--------------------------------------- //设置HKLM下的未签名的非驱动程序安装操作 szKey = "Software\\\\Microsoft\\\\Non-Driver Signing\\\\"; szKeyName = "Policy"; nvType = REGDB_BINARY; if ( bEnable ) then //保存原值 if ( RegDBGetKeyValueEx( szKey, szKeyName, nvType, g_svNonDriverSigning, g_nvNonSize ) < 0 ) then g_svNonDriverSigning = "\\0\\0\\0\\0"; g_nvNonSize = 4; endif; //设置为"默认继续" szValue = "\\0\\0\\0\\0"; nvSize = 4; else //恢复原值 szValue = g_svNonDriverSigning; nvSize = g_nvNonSize; endif; //设置键值 if (RegDBSetKeyValueEx (szKey, szKeyName, REGDB_BINARY, szValue, nvSize) < 0) then return -1; endif; return 0; end; //============================================ prototype NonDriverSigning(BOOL); 在2000上可以安全解决!在XP上还有些问题!因为有些能用,有些不能用!! :(还在找这个问题!!! |
|
沙发#
发布于:2004-07-04 15:42
XP下得也解决了!只要找到当前用户得SID!在HKEY_USER下得SID
\\SoftWare\\Microsoft\\Driver Signing\\Policy改为0!! 取SID得代码可以参照MSDN!!!!!!!!!!!!! :D |
|
板凳#
发布于:2004-07-14 09:44
厉害着呢。。。我去试试验
|
|
地板#
发布于:2004-09-03 14:59
把系统中关于无签名驱动安装的安全选项设一下即可。
|
|
地下室#
发布于:2004-09-28 09:11
good good,
顶一下! |
|
5楼#
发布于:2004-10-14 10:09
强!
有时间我试试! |
|
6楼#
发布于:2004-12-28 09:47
那位老大可以把代码公布下啊,让我们学学
|
|
7楼#
发布于:2004-12-28 17:29
这种办法在2K和XP Home上是有用的,但在XP Professional上和2003上是没有用的。我们到现在还没有2003上的好的解决办法。
|
|
8楼#
发布于:2004-12-29 23:48
这种办法在2K和XP Home上是有用的,但在XP Professional上和2003上是没有用的。我们到现在还没有2003上的好的解决办法。 经过测试我是这样的!现在还没有找到解决方法!!!!!!!!! |
|
9楼#
发布于:2005-01-15 12:21
总算找到解决的注册表健了!!
User Key: [HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows NT\Driver Signing] Value Name: BehaviorOnFailedVerify Data Type: REG_DWORD (DWORD Value) Value Data: (0 = Ignore, 1 = Warn, 2 = Block) 微软的官方说明! http://www.microsoft.com/resources/documentation/Windows/2000/server/reskit/en-us/Default.asp?url=/resources/documentation/Windows/2000/server/reskit/en-us/regentry/93271.asp ;) |
|
10楼#
发布于:2005-01-16 11:32
老大,xp下好用吗,我试验了还是不行,而且XP下没这个键!
|
|