force_eagle
驱动小牛
驱动小牛
  • 注册日期2002-05-06
  • 最后登录2009-02-26
  • 粉丝0
  • 关注0
  • 积分387分
  • 威望61点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
阅读:3707回复:10

解决“没有找到数字签名”提示的InstallShield脚本!

楼主#
更多 发布于:2004-06-30 17:25
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上还有些问题!因为有些能用,有些不能用!! :(还在找这个问题!!!

最新喜欢:

dregsdregs mapoflmapofl
force_eagle
驱动小牛
驱动小牛
  • 注册日期2002-05-06
  • 最后登录2009-02-26
  • 粉丝0
  • 关注0
  • 积分387分
  • 威望61点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-04 15:42
XP下得也解决了!只要找到当前用户得SID!在HKEY_USER下得SID
\\SoftWare\\Microsoft\\Driver Signing\\Policy改为0!!
取SID得代码可以参照MSDN!!!!!!!!!!!!! :D
hnewa
驱动牛犊
驱动牛犊
  • 注册日期2004-06-12
  • 最后登录2004-08-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-14 09:44
厉害着呢。。。我去试试验
xiaotg
驱动牛犊
驱动牛犊
  • 注册日期2003-03-03
  • 最后登录2006-01-21
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望3点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-09-03 14:59
把系统中关于无签名驱动安装的安全选项设一下即可。
OneProg
驱动牛犊
驱动牛犊
  • 注册日期2004-02-09
  • 最后登录2005-11-01
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-09-28 09:11
good good,

顶一下!
Leopard
驱动老牛
驱动老牛
  • 注册日期2001-07-13
  • 最后登录2021-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望53点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
  • 社区居民
  • 忠实会员
5楼#
发布于:2004-10-14 10:09
强!
有时间我试试!
dongchaomissyou
驱动牛犊
驱动牛犊
  • 注册日期2003-07-25
  • 最后登录2005-10-03
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-12-28 09:47
那位老大可以把代码公布下啊,让我们学学
shao1972
驱动牛犊
驱动牛犊
  • 注册日期2004-12-27
  • 最后登录2004-12-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-12-28 17:29
这种办法在2K和XP Home上是有用的,但在XP Professional上和2003上是没有用的。我们到现在还没有2003上的好的解决办法。
force_eagle
驱动小牛
驱动小牛
  • 注册日期2002-05-06
  • 最后登录2009-02-26
  • 粉丝0
  • 关注0
  • 积分387分
  • 威望61点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-12-29 23:48
这种办法在2K和XP Home上是有用的,但在XP Professional上和2003上是没有用的。我们到现在还没有2003上的好的解决办法。


经过测试我是这样的!现在还没有找到解决方法!!!!!!!!!
force_eagle
驱动小牛
驱动小牛
  • 注册日期2002-05-06
  • 最后登录2009-02-26
  • 粉丝0
  • 关注0
  • 积分387分
  • 威望61点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
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

 ;)
cxl7980
驱动牛犊
驱动牛犊
  • 注册日期2003-01-22
  • 最后登录2012-03-07
  • 粉丝0
  • 关注0
  • 积分67分
  • 威望17点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2005-01-16 11:32
老大,xp下好用吗,我试验了还是不行,而且XP下没这个键!
游客

返回顶部