Add-PSSnapin 'Microsoft.SharePoint.PowerShell'은 ISE에서 실행되지만 .Net Process.Start 명령에서는 실행되지 않습니다.

불안정한

다음 상황으로 추적 한 자동화 문제가 있습니다.

PS 스크립트는 C # 프로그램에서 process.start를 통해로드됩니다. ISE에서 스크립트를 실행하면 정상적으로 실행됩니다. process.start를 통해 실행할 때 다음 명령에서 실패합니다.

Add-PSSnapin 'Microsoft.SharePoint.PowerShell'

오류 :

Add-PSSnapin : No snap-ins have been registered for Windows PowerShell version 4.

.net에서 process.start에 사용하는 명령은 다음과 같습니다.

var Arguments @"-version 4.0 -ExecutionPolicy Bypass -noexit -file """ + filePath + @""" -XmlString """ + args + @""" -Verb RunAs"
var FileName = "powershell.exe"

var process = Process.Start(FileName, Arguments);

filePath는 실행중인 powershell 스크립트의 경로입니다.

이것은 스크립트를 실행하고 실행하려고 시도하지만 스크립트 내부에 위에 표시된 명령에서는 실패합니다. 사용자 계정은 컴퓨터의 관리자 서비스 계정입니다. 문제는 .Net 프로그램이 PowerShell을 시작하는 방법에있는 것 같습니다. 동일한 서비스 계정에서 수동으로 수행하면 ISE 및 콘솔을 통해이 스크립트와 이러한 명령을 실행할 수 있기 때문입니다. .Net 프로그램이 올바른 프로필에서 PowerShell 스크립트를 실행할 수 있도록하는 몇 가지 트릭 조합을 찾을 수없는 것 같습니다.

이견있는 사람?

불안정한

.Net 프로그램을 통해 PowerShell 스크립트를 실행할 때는 PetSerAl의 요청이 현장에있었습니다. .Net 프로그램을 통해 PowerShell 스크립트를 실행할 때는 x86에서 실행되었지만 ISE를 통해 실행할 때는 x64에서 실행되었습니다. x64에 대해 .Net 프로그램을 다시 컴파일했으며 이제 모든 것이 작동합니다.

충고 감사합니다!

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관