
보고서를 자동으로 이메일로 보내는 레거시 VB6 애플리케이션이 있습니다. 서버의 예약된 작업에서 실행됩니다. 때때로 사용자가 exe를 실행합니다. exe는 우리가 잠글 수 없는 폴더에 있고 여기에 들어갈 수 없는 복잡한 이유로 해당 폴더에 남아 있어야 합니다. 사용자가 예약된 작업에서 exe를 실행하면서 exe를 실행하지 못하게 하는 방법이 있습니까? exe의 소스 코드를 수정할 수 있으므로 누군가가 방법을 찾는 데 도움을 줄 수 있다면 그렇게 하는 것이 좋습니다. 또는 작업 스케줄러(또는 3명의 개발자로 구성된 팀)만 실행할 수 있도록 exe에 대한 권한을 설정하는 방법이 있다면 그것도 작동할 것입니다.
답변1
여기에는 두 가지 옵션이 있습니다.
소스코드 수정
소스코드 수정이 가능합니다. 당신이 해야 할 일은 프로그램에 매개변수가 필요한지 확인하는 것뿐입니다. 존재하지 않으면 아무 일도 일어나지 않습니다. 사용자는 매개변수를 제출하지 않는 exe를 두 번 클릭합니다. 다음과 같은 팝업을 만들 수도 있습니다. 이 프로그램은 예약되어야 합니다.
이 작업은 다음을 사용하여 수행할 수 있습니다.GetCommandlineArgs.
이것의 단점은 어떤 이유로 누군가가 비밀 명령줄 인수를 잊어버리면 어느 시점에서 사람들이 그것을 사용하지 않을 수 있다는 것입니다(예를 들어 회사를 떠나면 IT는 다른 회사에서 수행됩니다 등).
.exe 파일에 대한 특정 액세스 권한 설정
또 다른 옵션은 .exe 파일에 대한 권한을 설정하는 것입니다. 관리자만 파일을 열 수 있도록 할 수도 있고, 나머지는 거부할 수도 있습니다. 거부는 허용 권한보다 우선하므로 관리 액세스도 거부할 수도 있습니다. 또한 충분한 지식과 권한이 있는 사용자는 이 작업을 취소한 다음 실행 파일을 시작할 수 있습니다. 또한 실행 파일을 로컬로 복사하는 경우 권한을 제거한 다음 프로그램을 시작할 수 있습니다.