2012-04-03 3 views
-1

Process 클래스를 사용하여 프로세스를 만들었습니다. 이제 모든 새로운 프로세스가 인터넷, l 또는 특수 디렉토리 액세스 권한과 같이 액세스 할 수있는 것을 제한해야합니다. 어떻게 할 수 있습니다. 내 코드는 지금까지 이와 같습니다.System.Diagnostics.Process에서 시작한 프로세스 제한.

Process p = new Process() 
      { 
       StartInfo = new ProcessStartInfo(executablePath) { 
       CreateNoWindow = true, 
       ErrorDialog = false, 
       RedirectStandardError = true, 
       RedirectStandardInput = true, 
       RedirectStandardOutput = true, 
       WindowStyle = ProcessWindowStyle.Hidden, 
       StandardErrorEncoding = Encoding.UTF8, 
       StandardOutputEncoding = Encoding.UTF8, 
       UseShellExecute = false, 
       } 
      }; 
      p.Start(); 

      var outputStreamReader = p.StandardOutput; 
      var inputStreamWriter = p.StandardInput; 
      var errorStreamReader = p.StandardError; 

      p.WaitForExit(); 

      string output = outputStreamReader.ReadToEnd(); 
      string s = ""; 
당신은 제한된 사용자 계정으로 시작하여 프로세스를 제한 할 수 있습니다
+0

출력 스트림이 채워지면 코드가'p.WaitForExit()'에서 교착 상태가 될 수 있습니다. –

+0

예 .. 나는 그것을 놓쳤다. 이것을 지적 해 주신 고맙습니다. 그러나 나는 그 과정을 통해 많은 양의 데이터를 얻지 못할 것이라고 생각한다. wud가 문제가되지 않습니다. –

+0

.net 프로세스입니까? 그것은 당신이나 제 3 자의 것입니까. 당신이 이것을 할 수있는 범위 내에 있습니까? 이런 종류의 보안 제한을 부과하는 사용자/관리자까지해야합니다. –

답변

1

- 당신이 전달 필요를 시작하기 전에 프로세스 중 하나 ProcessStartInfo 또는 직접 Process에 (A SecureString입니다) UserNamePassword .

+0

예 .. 감사합니다. 이것이 실행될 시스템입니다. 사용자 wud 근심을 progrmatically 모든 재활용에 멋진 일을해야 할 enuf .. 할 수 있도록 Windows 또는 .net 프로세스를 액세스 할 수 있도록 돌봐야 할 일부 시스템이 있어야합니다 바랍니다. –

+0

@ParvSharma - 내가 아는 것은 아닙니다. 생성되는 프로세스는 완전히 별개입니다. 그리고 그 세부 사항은 정말로 당신이 질문에서 가져야 만하는 것입니다. – Oded

+0

nd 또한 콘솔 앱을 실행할 때마다 사용자 프로필을로드해야 할 수도 있습니다. wud는 많은 리소스를 차지합니다. –

관련 문제