우리는 플랫폼에서 네이티브 코드를 호출하는 .NET 라이브러리, 특히 LoadLibrary()를 호출합니다. 이 코드는 잠시 동안 자리를 잡았지만 새로운 사용자는 Windows Server 2008 R2 시스템의 터미널 서비스 사용자로 실행될 때 (로드 라이브러리가 호출 될 때) 명백하게 실행되지 않는 것으로 나타났습니다. 이것은 표준 사용자로 실행될 때 발생하지만 의심스러운 관리자로 실행될 때는 발생하지 않습니다. 또한 Windows Server 2003 컴퓨터에서 실행될 때도 작동합니다.터미널 서비스를 사용하는 Windows Server 2008에서 표준 사용자로 실행되는 프로세스에서 호출하면 LoadLibrary가 실패 함
이제 Windows Server 2008 R2 시스템에서의 실행을 테스트했지만 이전에는 문제가 없었습니다.
여기에 UAC가 출전 할 것이라 의심됩니다. 우리는 그들에게 Process Monitor를 사용하게하고, DeviceIOControl()이 제어 코드 IOCTL_MOUNTDEV_QUERY_DEVICE_NAME과 함께 호출 될 때 그 결과가 유효하지 않은 것으로 나타났습니다. 또한 매핑 된 드라이브에 대해 의심이가는 경우가 있는데, 내 컴퓨터의 매핑 된 드라이브에서 동일한 코드를 실행해도 문제가 없습니다.
누구도 비슷한 기계를 세우지 않아도되지만 우리가 집에서 이것을 복제 할 수있는 가능성은 희박합니다.
"표준 사용자로 실행될 때"를 의미합니까, 아니면 "관리자가 아닌 권한 상승으로 실행될 때"를 의미합니까? 표준 사용자를 실제로 의미하는 경우 UAC는 관련되지 않습니다. (Server 2003을 표준 사용자로 사용해 보셨습니까?) 응용 프로그램에 진단 기능을 추가 할 수 있다면 LoadLibrary()에 전달되는 경로와 반환되는 오류 코드를 다시 확인하는 것이 좋습니다. –