2013-01-02 5 views
1

Invoke-Command/Enter-PSSession을 통해 로컬 또는 원격으로 스크립트를 실행하는지에 따라 다른 동작을하는 매우 간단한 powershell 스크립트가 있습니다. 다른 스크립트는 정상적으로 작동합니다. 원격 세션의 환경과이 차이를 일으키는 로컬 세션의 차이점에 대해 궁금합니다.powershell - 로컬 및 원격 실행 간의 차이

답변

2

원격 끝점이 자격 증명을 사용하도록 설정되었다고 가정하면 원격 세션에 사용 가능한 다른 모듈 집합 (또는 다른 버전)이있을 수 있으며 원격 세션에 대해 실행되도록 구성된 프로필 스크립트가있을 수 있으며 환경은 다음과 같습니다. 가능성이 다르다. 또한 원격 엔드 포인트는 언어 모드를 제한 할뿐만 아니라 명령 (응용 프로그램 포함)에 대한 액세스를 제한하도록 구성 할 수 있습니다. 스크립트는 가시성을 제한하기 위해 다양한 변수와 함수를 사용할 수도 있습니다. 세션 상태를 보면 당신은 원격 엔드 포인트 예컨대 :

PS> $ExecutionContext.SessionState 


Drive       : System.Management.Automation.DriveManagementIntrinsics 
Provider      : System.Management.Automation.CmdletProviderManagementIntrinsics 
Path       : System.Management.Automation.PathIntrinsics 
PSVariable     : System.Management.Automation.PSVariableIntrinsics 
LanguageMode     : FullLanguage 
UseFullLanguageModeInDebugger : False 
Scripts      : {*} 
Applications     : {*} 
Module      : 
InvokeProvider    : System.Management.Automation.ProviderIntrinsics 
InvokeCommand     : System.Management.Automation.CommandInvocationIntrinsics 

constrained endpoints에 대한 추가 정보를 원하시면이 문서를 참조하십시오를 구성 할 때 불통 될 수있는 속성의 일부를 볼 수 있습니다. 모든 말했듯이, 그것은 일반적으로 제한되지 않는 기본 끝점을 사용하고있는 것 같습니다. 또 다른 차이는 비트 일 수 있습니다. 예를 들어, x86 셸에서 실행 중이지만 64 비트 끝점에 연결하거나 그 반대 일 수 있습니다. 32 비트 엔드 포인트에 연결해야하는 경우 다음을 시도하십시오.

PS> $s = New-PSSession -cn localhost -ConfigurationName microsoft.powershell32 
PS> icm -Session $s { [IntPtr]::Size } 
4 
PS> Remove-PSSession $s 
관련 문제