| 
			 
					阅读:13567回复:26
				 
				怎么解决安装驱动时提示的“没有找到数字签名”??
					我用InstallShield制作了一个虚拟设备的安装程序!使用DEVCON安装!用是可以用!但每次都需要确认“没有找到数字签名”这个对话框!这是给客户的!我开始的想法是准备将系统,硬件中的签署驱动程序这个默认属性改为"忽略",然后再改为原始值,但没有找到注册表健!!!
 
							那位大虾知道吗?  | 
	|
					
						最新喜欢: | 
	
| 
			 沙发# 
								发布于: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  | 
	|
| 
			 板凳# 
								发布于:2004-06-30 09:13				
			
					xp可以吗?				 
							 | 
	|
| 
			 地板# 
								发布于:2004-06-30 09:50				
			
					XP下还没测试!测试出来再贴出来! ;)				 
							 | 
	|
| 
			 地下室# 
								发布于:2004-07-01 08:47				
			哈哈!搞定了!翻阅了各位大虾的文章!!! 应该是全部都修改成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键的位置是每台机器都不一样的,比较难找。  | 
	|
					
						
  | 
	
| 
			 5楼# 
								发布于:2004-07-02 08:30				
			
					好像打错了!! :D				 
							 | 
	|
| 
			 6楼# 
								发布于:2004-07-04 15:43				
			
					XP下得也解决了!只要找到当前用户得SID!在HKEY_USER下得SID
 
							\\SoftWare\\Microsoft\\Driver Signing\\Policy改为0!! 取SID得代码可以参照MSDN!!!!!!!!!!!!!  | 
	|
| 
			 7楼# 
								发布于:2004-07-07 09:56				
			
					请问怎么找到WinXP当前用户得SID?				 
							 | 
	|
| 
			 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; }  | 
	|
| 
			 9楼# 
								发布于:2004-07-23 17:02				
			
					最好先把注册表中要修改的值读出并保存,驱动安装完后,再恢复回去。要不明明用户在控制面板中为防病毒设置成警告或阻止,你这一改,不恢复回去的话,可能会让用户的系统有感染病毒的危险。				 
							 | 
	|
| 
			 10楼# 
								发布于:2004-07-23 17:25				
			
					肯定是要保存的!
 
							这个在脚本里面都实现了!!!  | 
	|
| 
			 11楼# 
								发布于:2004-07-28 14:26				
			我怎么不行呢?(使用NSIS安装中间层驱动) 是不是设置各个键值的次序也很重要? 应该是按照什么次序?  | 
	|
| 
			 12楼# 
								发布于:2004-07-29 20:52				
			
					一点密技:)
 
							这个是2k下的。  | 
	|
					
 
  | 
	
| 
			 13楼# 
								发布于:2004-07-29 20:54				
			
					这个是xp下的。
 
							在安装程序中检测os的版本后调用相应的程序,再安装你的driver就好了。  | 
	|
					
 
  | 
	
| 
			 14楼# 
								发布于:2004-09-01 15:10				
			
					老大,佩服!
 
							有没有源码?能否告知XP下如何把数字签名对话框调出来并设置成ignore? 这个是xp下的。  | 
	|
| 
			 15楼# 
								发布于:2004-09-28 09:22				
			
					good good,
 
							非常感谢,虽然还没亲自去试, 但是,大家的无私真是令人敬佩。  | 
	|
| 
			 16楼# 
								发布于:2007-04-24 16:17				
			
					上述方法在 XP SP2 都失败了. 各位老大在 SP2 做了测试吗?				 
							 | 
	|
| 
			 17楼# 
								发布于:2007-05-30 10:27				
			
					高手啊!				 
							 | 
	|
| 
			 18楼# 
								发布于:2007-05-31 15:47				
			
					如果是这样啊,没有去到实质的应用,能不能做个应程序啊,添加到DRRIVER 中去,然后每次一的安装就不再有提示				 
							 | 
	|
					
						
  | 
	
| 
			 19楼# 
								发布于:2007-07-08 17:02				
			
					在XP 下没有用吧				 
							 | 
	|
上一页
下一页