2012-06-11 3 views
1

특별한 사용자 자격 증명으로 ListEventReceiver에서 PowerShell 스크립트를 실행해야합니다. 나는 스크립트를 excecute하기 위해 아주 잘 작동하는 Runspace을 찾았지만 어떻게 보안을 유지할 수 있습니까? (코드에 암호 없음) "run as"?Sharepoint에서 powershellscript를 실행하십시오.

파이프 라인

string cmdArg = "C:\\Users\\Administrator\\Documents\\userExist.ps1 " + mailstring; 
Runspace runspace = RunspaceFactory.CreateRunspace(); 
runspace.Open(); 
Pipeline pipeline = runspace.CreatePipeline(); 

pipeline.Commands.AddScript(cmdArg); 
pipeline.Commands[0].MergeMyResults(PipelineResultTypes.Error, PipelineResultTypes.Output); 
Collection<PSObject> results = pipeline.Invoke(); 
var error = pipeline.Error.ReadToEnd(); 
runspace.Close(); 

나는 약 보안 저장소 서비스를 읽을 수 있지만 나는 그것이 전체 서비스 페이지 또는 목록만을위한 단일 기능을 사용할 수 없습니다 생각?

이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

+1

C# 코드에서 powershell 스크립트가 수행하는 모든 작업을 수행하지 않을 강력한 이유가 있습니까? PowerShell에서 할 수있는 대부분의 작업은 C#에서 직접 수행 할 수 있으며 C# 권한 승격은 쉽습니다. – Servy

+0

@Servy 이미 존재하는 거대한 powershellscript가 있기 때문에 그것을 사용하는 것을 선호합니다. – HW90

+0

비밀 정보를 저장하는 한 web.config connectionStrings 섹션에서는 웹 응용 프로그램의 컨텍스트에서 실행되는 SharePoint 코드를 매우 편리한 옵션 중 하나로 제공합니다. 연결 문자열 용으로 설계되었지만 궁극적으로 암호화 기능이 내장 된 키/값 저장소 일뿐입니다. –

답변

0

다른 ID로 스크립트를 실행하는 것에 대해서는 RunWithElevatedPrivileges을 아직 사용해 보지 않으셨습니까? 이것이 트릭을 수행하지 않는다면 원하는 작업을 완료하기 위해 응용 프로그램 풀의 계정 권한을 부여하는 것이 좋습니다.

+0

예 이미 RunWithElevatedPrivileges를 시도했지만 성공하지 못했습니다. 응용 프로그램 풀 계정은 ours 환경에서 해당 사용 권한을 가져올 수 없습니다. – HW90

+0

이것이 마치 "사용자 X로 코드를 실행하려면 어떻게해야합니까?" 이 게시물은 해당 질문을 해결합니다. http://stackoverflow.com/questions/1168571/run-code-as-a-different-user-c –

관련 문제