2012-08-07 5 views
0

Outlook Live 용 원격 Powershell 스크립트를 실행하는 C# 라이브러리 I found을 사용하고 있습니다. 그것이 작동한다는 개념 증명으로서 나는이 라이브러리 내에서 public static 메서드를 호출하는 것만으로 원격 Powershell 세션을 열고 스크립트를 실행하는 (그리고 디버깅을 위해 단계별로 실행할 수있는) 단위 테스트를 만들었습니다.Powershell 스크립트는 다른 .NET 솔루션이 아닌 하나의 .NET 솔루션에서 작동합니다.

이것은 우리 솔루션 중 하나에서 훌륭하게 작동하지만 두 솔루션 모두 동일한 두 프로젝트와 테스트 클래스가 있지만 다른 솔루션에서 실행하면 작동하지 않습니다. 하나의 솔루션에서 예외가 발생했습니다

형식 데이터 파일로드에 오류가 있었다

: Microsoft.PowerShell이는 C:\Users\xxxx.xxxx\AppData\Local\Temp\tmp_8c84e626-4399-420b-b874-9feeb3b1e195_tjlxhzzr.rlr\tmp_8c84e626-4399-420b-b874-9feeb3b1e195_tjlxhzzr.rlr.format.ps1xml : 파일은 다음 이유로 인해 검증 예외 생략 : 스크립트의 실행이이 시스템에서 사용할 수 없기 때문에 C:\Users\xxxx.xxxx\AppData\Local\Temp\tmp_8c84e626-4399-420b-b874-9feeb3b1e195_tjlxhzzr.rlr\tmp_8c84e626-4399-420b-b874-9feeb3b1e195_tjlxhzzr.rlr.format.ps1xml로드 할 수없는 파일. 내가 만든

한 시도가 Unrestricted 설정을 가지고는 C# 라이브러리 내부의 PSCommand을 수정했고 그 문제가 해결되지 않았다 ... "보려면 get-help about_signing"자세한 내용을 참조하시기 바랍니다. 그러나 x86 Powershell을 열고 실행할 경우 set-executionpolicy Unrestricted 내 테스트는 두 가지 솔루션에서 모두 실행됩니다. PowerShell의 x64 버전에서 실행 정책을 변경해도 두 가지 솔루션에 아무런 영향을 미치지 않았습니다.

솔루션과 관련된 사용 권한 설정에는 어떤 유형이 있습니까? 어떤 페이지도 로딩하지 않기 때문에 Web.Config 나 Global.asax 어느 것도 중요하지 않습니다. 그래서 동일한 테스트 러너 (Testdriven)를 사용하여 두 가지 솔루션 모두에서 같은 단위 테스트를 실행하고 있기 때문에 그 밖의 효과는 무엇인지 알 수 없습니다 .그물).

아이디어가 있으십니까? 감사. 관리자로

답변

0

실행 보통은 당신이 32 비트 및 64 비트 PSH 마이크로 소프트 \ PowerShell을 \ 1 \ ShellIds \ 별도로

HKEY_LOCAL_MACHINE \ 소프트웨어 내용은 Set-ExecutionPolicy를 실행해야 64 비트 OS에 HKCU 에 설정되어 그렇지 않은 경우 HKLM를 설정 \ Microsoft.PowerShell이 ​​

는 CD "HKLM를 : 소프트웨어 \ 마이크로 소프트 \ 파워 쉘 \ 1 \ ShellIds 마이크로 소프트 PowerShell을 \ \"확인 DIR 이

+0

당신이에 점점하는지 모르겠어요. 제가 말씀 드렸듯이 제 질문에서 그렇게 실행 정책을 별도로 설정해야한다는 것을 알고 있습니다. Powershell을 대화 형으로 실행하지 않기 때문에 그런 의미에서 관리자 옵션으로 실행되지 않습니다. Powershell을 호출하는 C# 코드를 사용하고 있습니다. – kd7iwp

관련 문제