Windows 배치 (.bat) 파일에 서명하는 방법? “게시자를 확인할 수 없습니다.이 소프트웨어를 실행 하시겠습니까?” 따라서

Windows 7을 실행 중이고 배치 파일을 실행하려고하면 “게시자를 확인할 수 없습니다.이 소프트웨어를 실행 하시겠습니까?”

따라서 코드 서명 인증서로 서명하려고하면 “SignTool 오류 :이 파일 형식을 인식 할 수 없으므로 서명 할 수 없습니다.”라고 표시됩니다.

그래서 나는 바위 사이에 힘든 장소에 갇혀 있습니다. 메시지를 제거 할 수있는 방법이 있습니까?

스크린 샷



답변

네트워크 위치에서 배치 파일 (또는 다른 실행 파일)을 실행하면 비슷한 메시지가 나타납니다. 이 경우 로컬 드라이브로 이동하는 것이 좋습니다. 다른 대안은 로컬 드라이브에서 별도의 배치 파일을 사용하여 네트워크에서 파일을 시작하는 것입니다. 실행 배치 파일에는 한 줄만 있으면됩니다.

@call \\network\folder\batch.bat

Windows는 로컬 파일을 닫지 않으며 해당 파일이 실행되면 문제없이 네트워크 버전을 호출 할 수 있습니다.


답변

배치 파일에 서명하지 않습니다. 배치 파일이 서명 해야하는 다른 것을 호출하는 것처럼 들립니다.

편집 : 이제 배치 파일을 게시 했으므로 네트워크 위치 때문임을 알 수 있습니다. 또는 때로는 네트워크 위치에서 파일을 복사 하는 경우에만 발생합니다 . 후자의 경우 Windows가 대체 인터넷 스트림을 통해 다른 인터넷 영역에 있도록 파일에 태그를 지정했기 때문입니다. 이 두 가지 방법 중 하나를 해결할 수 있습니다.

  1. 인트라넷 영역의 Internet Explorer에서 보안 영역을 변경하십시오.
  2. type 명령을 사용하여 파일의 대체 데이터 스트림을 제거하십시오. Sysinternals의 streams.exe도 있습니다.
    type thefile.bat > %temp%\newfile.bat & type %temp%\newfile.bat > thefile.bat

답변

현재보고있는 것은 다운로드 한 파일을 열려고 할 때마다 Windows가 제공하는 일반적인 프롬프트입니다. 파일을 다운로드 할 때 파일이 인터넷에서 제공되어 잠재적으로 위험하다는 것을 나타내는 플래그로 태그가 지정됩니다. 이러한 파일을 실행하려고하면 Windows는 신뢰할 수 있는지 확인하기 위해 유효한 서명이 있는지 확인합니다.

당신이 할 수있는 일은 파일의 속성에서 차단 해제 버튼 을 사용하여 파일에서 플래그를 제거하는 것입니다. 그 후에 Windows는 실행할 때마다 당신을 홀로 남겨 둡니다.


문제는 배치 파일이 실행할 수있는 텍스트 파일이라는 것입니다. 텍스트 파일에 서명하는 것이 가능하지만 배치 파일의 경우 이진 데이터를 파일에 추가하면 결국 배치 파일의 경우 횡설수설로 인해 명령 해석기가이를 실행하려고 할 때 문제가 발생할 수 있습니다. 서명이 손상되어 서명을 주석 처리 할 수 ​​없습니다.

따라서 배치 파일 서명이 작동하지 않습니다.

시스템을 실행하려고 할 때 시스템에서 프롬프트를 표시하는 이유를 파악해야합니다. 기본적으로 Windows는 배치 파일을 실행하기 전에 묻지 않으므로 특수 정책이나 보안 프로그램이 차단 파일을 차단해야합니다. 보안 프로그램을 확인하여 제외를 비활성화하거나 추가 할 수있는 확인 설정이 있는지 확인하십시오.

또한 배치 파일의 내용을 검사하여 서명되지 않은 실행 파일이 실행 중인지 확인합니다 (다시 기본적으로 Windows는 실행 파일을 다운로드하지 않았거나 높은 권한이 필요하지 않은 경우 실행 파일을 요구하지 않으므로 설정을 확인하십시오).


답변

.bat 파일을 PowerShell 스크립트로 변환 할 수도 있으며 signtool은 이러한 파일 서명을 지원합니다.