여기에 상황이 생겼습니다. 당신이 저를 도와주실 수 있기를 바랍니다. 특정 사용자 계정으로 Windows Server 2012 R2에서 실행되는 데이터베이스가 있습니다. 동일한 사용자 계정이 Windows 서비스를 실행하고 있습니다. 이 서비스는 일부 작업을 수행하고 DB에서 일부 업데이트를 수행합니다. 이것은 지금까지 꽤 잘 작동합니다.
이제 이 서비스는 어느 시점에서 외부 프로세스를 실행해야 합니다. 그리고 저는 ProcessStartInfo
And 를 사용하여 그렇게 합니다 Process.Start
. 다음과 같은 예외가 발생합니다.
System.ComponentModel.Win32Exception (0x80004005): System.Diagnostics.Process.Start(ProcessStartInfo startInfo)의 System.Diagnostics.Process.Start()에서 System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)에서 액세스가 거부되었습니다.
이에 따르면스택오버플로 답변이 사용자(Active Directory 사용자)를 서버에 추가해야 합니다. 현재로서는 사용자가 서버에 액세스할 수 없습니다.
그리고 저는 실제로 이런 방식을 유지하고 사용자에게 서버에 액세스하지 않고 프로세스(프로그램)를 시작할 수 있는 액세스 권한만 부여하고 싶습니다.
그게 가능합니까, 아니면 내가 잘못된 길을 가고 있습니까?
제어판 >> 사용자 계정 >> 사용자 계정 관리 >> 추가...가 작업을 수행할 수도 있지만 액세스 수준 목록에서 어떤 액세스 수준을 선택해야 할지 모르겠습니다.
답변1
좋아, 내 생각엔 예외가 약간 오해의 소지가 있는 것 같아. 사용자가 응용 프로그램을 실행할 수 없는 것처럼 보였지만 실제 문제는 사용자가 응용 프로그램이 있는 디렉터리에 대한 액세스 권한이 없다는 것입니다.
Read & Execute
사용자에게 권한을 허용하도록 폴더의 보안 설정을 변경하면 이 문제가 해결됩니다.
이렇게 하면 사용자를 서버에 추가할 필요가 없습니다.