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

怎么解决安装驱动时提示的“没有找到数字签名”??

楼主#
更多 发布于:2004-06-29 20:17
我用InstallShield制作了一个虚拟设备的安装程序!使用DEVCON安装!用是可以用!但每次都需要确认“没有找到数字签名”这个对话框!这是给客户的!我开始的想法是准备将系统,硬件中的签署驱动程序这个默认属性改为"忽略",然后再改为原始值,但没有找到注册表健!!!
那位大虾知道吗?

最新喜欢:

yushui213yushui...
force_eagle
驱动小牛
驱动小牛
  • 注册日期2002-05-06
  • 最后登录2009-02-26
  • 粉丝0
  • 关注0
  • 积分387分
  • 威望61点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-29 22:34
哈哈!搞定了!翻阅了各位大虾的文章!!!
修改3个注册表键值!
System:Win2000
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Driver Signing\\Policy的值改为0;
除此之外,HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Non-Driver Signing\\Policy的值要改为1。
HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Driver Signing\\Policy
这个键值改为1!
打工告成!
 :D
supcent
驱动牛犊
驱动牛犊
  • 注册日期2003-12-18
  • 最后登录2005-11-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-30 09:13
xp可以吗?
force_eagle
驱动小牛
驱动小牛
  • 注册日期2002-05-06
  • 最后登录2009-02-26
  • 粉丝0
  • 关注0
  • 积分387分
  • 威望61点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-06-30 09:50
XP下还没测试!测试出来再贴出来! ;)
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
地下室#
发布于:2004-07-01 08:47
哈哈!搞定了!翻阅了各位大虾的文章!!!
修改3个注册表键值!
System:Win2000
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Driver Signing\Policy的值改为0;
除此之外,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Non-Driver Signing\Policy的值要改为1。
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Driver Signing\Policy
这个键值改为1!
打工告成!
 :D



应该是全部都修改成0:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Driver Signing\Policy     (键值改为0)
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Non-Driver Signing\Policy (键值改为0)
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Driver Signing\Policy      (键值改为0)

该方法在Win2000下有效,WinXP下Non-Driver Signing键的位置是每台机器都不一样的,比较难找。
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
force_eagle
驱动小牛
驱动小牛
  • 注册日期2002-05-06
  • 最后登录2009-02-26
  • 粉丝0
  • 关注0
  • 积分387分
  • 威望61点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-07-02 08:30
好像打错了!! :D
force_eagle
驱动小牛
驱动小牛
  • 注册日期2002-05-06
  • 最后登录2009-02-26
  • 粉丝0
  • 关注0
  • 积分387分
  • 威望61点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-07-04 15:43
XP下得也解决了!只要找到当前用户得SID!在HKEY_USER下得SID
\\SoftWare\\Microsoft\\Driver Signing\\Policy改为0!!
取SID得代码可以参照MSDN!!!!!!!!!!!!!
jackboy
驱动牛犊
驱动牛犊
  • 注册日期2003-10-13
  • 最后登录2010-11-10
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望130点
  • 贡献值0点
  • 好评度18点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-07-07 09:56
请问怎么找到WinXP当前用户得SID?
force_eagle
驱动小牛
驱动小牛
  • 注册日期2002-05-06
  • 最后登录2009-02-26
  • 粉丝0
  • 关注0
  • 积分387分
  • 威望61点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-07-08 11:35
extern "C"  __declspec (dllexport) int WINAPI  GetCurSid(LPTSTR lpszBuff )
{
#define MY_BUFSIZE 256 // all allocations should be dynamic
    HANDLE hToken;
    BYTE buf[MY_BUFSIZE];
    PTOKEN_USER ptgUser = (PTOKEN_USER)buf;
    DWORD cbBuffer=MY_BUFSIZE;

    TCHAR szTextualSid[MY_BUFSIZE];
    DWORD cchSid=MY_BUFSIZE;

    BOOL bSuccess;

    //
    // obtain current process token
    //
    if(!OpenProcessToken(
                GetCurrentProcess(), // target current process
                TOKEN_QUERY,         // TOKEN_QUERY access
                &hToken              // resultant hToken
                ))
    {
        //DisplayWinError( TEXT("OpenProcessToken"), GetLastError() );
        return RTN_ERROR;
    }

    //
    // obtain user identified by current process' access token
    //
    bSuccess = GetTokenInformation(
                hToken,    // identifies access token
                TokenUser, // TokenUser info type
                ptgUser,   // retrieved info buffer
                cbBuffer,  // size of buffer passed-in
                &cbBuffer  // required buffer size
                );

    // close token handle.  do this even if error above
    CloseHandle(hToken);

    if(!bSuccess) {
        //DisplayWinError( TEXT("GetTokenInformation"), GetLastError() );
        return RTN_ERROR;
    }

    //
    // obtain the textual representaion of the Sid
    //
    if(!GetTextualSid(
                ptgUser->User.Sid, // user binary Sid
                szTextualSid,      // buffer for TextualSid
                &cchSid            // size/required buffer
                )) {
        //DisplayWinError( TEXT("GetTextualSid"), GetLastError() );
        return RTN_ERROR;
    }

    // display the TextualSid representation
    _tprintf( TEXT("Process Sid: %s\n"), szTextualSid );
strcpy( lpszBuff, szTextualSid );
    return RTN_OK;
}


BOOL
GetTextualSid(
    PSID pSid,          // binary Sid
    LPTSTR TextualSid,  // buffer for Textual representaion of Sid
    LPDWORD cchSidSize  // required/provided TextualSid buffersize in TCHARs
    )
{
    PSID_IDENTIFIER_AUTHORITY psia;
    DWORD dwSubAuthorities;
    DWORD dwCounter;
    DWORD cchSidCopy;
    DWORD cchMaxLen;

    //
    // test if parameters passed in are valid, IsValidSid can not take
    // a NULL parameter
    //
    if(!pSid || !IsValidSid(pSid) || !TextualSid || !cchSidSize)
    {
        SetLastError(ERROR_INVALID_PARAMETER);
        return FALSE;
    }

    // obtain SidIdentifierAuthority
    psia = GetSidIdentifierAuthority(pSid);

    // obtain sidsubauthority count
    dwSubAuthorities = *GetSidSubAuthorityCount(pSid);

    //
    // compute approximate buffer length
    // S-SID_REVISION- + identifierauthority + -subauthorities + NULL
    //
    cchMaxLen = 6 + 14 + (11 * dwSubAuthorities) + 1;

    //
    // check provided buffer length.
    // If not large enough, indicate proper size and setlasterror
    //
    if(*cchSidSize < cchMaxLen) {
        *cchSidSize = cchMaxLen;
        SetLastError(ERROR_INSUFFICIENT_BUFFER);
        return FALSE;
    }

    //
    // prepare S-SID_REVISION-
    //
    cchSidCopy = wnsprintf(TextualSid,
                           cchMaxLen,
                           TEXT("S-%lu-"),
                           SID_REVISION );

    //
    // prepare SidIdentifierAuthority
    //
    if ( (psia->Value[0] != 0) || (psia->Value[1] != 0) ) {
        cchSidCopy += wnsprintf(TextualSid + cchSidCopy,
                    cchMaxLen - cchSidCopy,
                    TEXT("0x%02hx%02hx%02hx%02hx%02hx%02hx"),
                    (USHORT)psia->Value[0],
                    (USHORT)psia->Value[1],
                    (USHORT)psia->Value[2],
                    (USHORT)psia->Value[3],
                    (USHORT)psia->Value[4],
                    (USHORT)psia->Value[5]);
    } else {
        cchSidCopy += wnsprintf(TextualSid + cchSidCopy,
                    cchMaxLen - cchSidCopy,
                    TEXT("%lu"),
                    (ULONG)(psia->Value[5]      )   +
                    (ULONG)(psia->Value[4] <<  8)   +
                    (ULONG)(psia->Value[3] << 16)   +
                    (ULONG)(psia->Value[2] << 24)   );
    }

    //
    // loop through SidSubAuthorities
    //
    for(dwCounter = 0 ; dwCounter < dwSubAuthorities ; dwCounter++) {
        cchSidCopy += wnsprintf(TextualSid + cchSidCopy,
                    cchMaxLen - cchSidCopy,
                    TEXT("-%lu"),
                    *GetSidSubAuthority(pSid, dwCounter) );
    }

    //
    // tell the caller how many chars we provided, not including NULL
    //
    *cchSidSize = cchSidCopy;

    return TRUE;
}
zkhezkhe
驱动牛犊
驱动牛犊
  • 注册日期2003-04-18
  • 最后登录2008-11-21
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-07-23 17:02
最好先把注册表中要修改的值读出并保存,驱动安装完后,再恢复回去。要不明明用户在控制面板中为防病毒设置成警告或阻止,你这一改,不恢复回去的话,可能会让用户的系统有感染病毒的危险。
force_eagle
驱动小牛
驱动小牛
  • 注册日期2002-05-06
  • 最后登录2009-02-26
  • 粉丝0
  • 关注0
  • 积分387分
  • 威望61点
  • 贡献值0点
  • 好评度33点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-07-23 17:25
肯定是要保存的!
这个在脚本里面都实现了!!!
zhangapache
驱动牛犊
驱动牛犊
  • 注册日期2003-07-20
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望26点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-07-28 14:26


我怎么不行呢?(使用NSIS安装中间层驱动)
是不是设置各个键值的次序也很重要?
应该是按照什么次序?
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
12楼#
发布于:2004-07-29 20:52
一点密技:)

这个是2k下的。
附件名称/大小 下载次数 最后更新
2004-07-29_Sign2k.exe (36KB)  162
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
13楼#
发布于:2004-07-29 20:54
这个是xp下的。

在安装程序中检测os的版本后调用相应的程序,再安装你的driver就好了。

附件名称/大小 下载次数 最后更新
2004-07-29_SignXp.exe (20KB)  296
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
zkhezkhe
驱动牛犊
驱动牛犊
  • 注册日期2003-04-18
  • 最后登录2008-11-21
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-09-01 15:10
老大,佩服!
有没有源码?能否告知XP下如何把数字签名对话框调出来并设置成ignore?
这个是xp下的。

在安装程序中检测os的版本后调用相应的程序,再安装你的driver就好了。

 
OneProg
驱动牛犊
驱动牛犊
  • 注册日期2004-02-09
  • 最后登录2005-11-01
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-09-28 09:22
good good,

非常感谢,虽然还没亲自去试,
但是,大家的无私真是令人敬佩。
qin0036
驱动牛犊
驱动牛犊
  • 注册日期2006-11-13
  • 最后登录2008-11-18
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2007-04-24 16:17
上述方法在 XP SP2 都失败了. 各位老大在 SP2 做了测试吗?
wanted999
驱动牛犊
驱动牛犊
  • 注册日期2006-03-28
  • 最后登录2012-08-13
  • 粉丝0
  • 关注0
  • 积分519分
  • 威望429点
  • 贡献值0点
  • 好评度48点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2007-05-30 10:27
高手啊!
yilou
驱动小牛
驱动小牛
  • 注册日期2004-02-17
  • 最后登录2008-03-20
  • 粉丝0
  • 关注0
  • 积分320分
  • 威望32点
  • 贡献值0点
  • 好评度32点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2007-05-31 15:47
如果是这样啊,没有去到实质的应用,能不能做个应程序啊,添加到DRRIVER 中去,然后每次一的安装就不再有提示
希望能帮到你,希望能得到你的帮助!
kevinbobo
驱动牛犊
驱动牛犊
  • 注册日期2007-06-11
  • 最后登录2010-02-23
  • 粉丝0
  • 关注0
  • 积分101分
  • 威望21点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2007-07-08 17:02
在XP 下没有用吧
上一页
游客

返回顶部