2017-12-30 42 views
-1

내가 만든 사용자 지정 모듈의 함수 만 실행하도록 사용자를 제한하는 PowerShell 끝점 제약 조건을 만들려고합니다.특정 사용자의 제한된 끝점

내가 한 첫번째 일은 import-module mymodule.psm1입니다. 제 호스트 시스템을 사용하여 모듈을 잘 실행할 수 있습니다.

다음 PS 명령은 대괄호 안의 함수 만 사용자가 실행할 수 있도록하는 끝점에 대한 구성 파일을 만듭니다.

New-PSSessionConfigurationFile -VisibleFunctions('Get-Command','Get-Info', 'CreateAD-User','Generate-Html','Change-Logon') -LanguageMode ‘ConstrainedLanguage’ –SessionType ‘RestrictedRemoteServer’ –Path ‘c:\test\helpdesk.pssc’ 

는 다음 나는

Register-PSSessionConfiguration –Name ‘HelpDesk’ -ShowSecurityDescriptorUI –Path ‘c:\test\helpdesk.pssc’ 

와 엔드 포인트를 등록 나는 SecurityDescriptorUI가 팝업되면 이러한 제약을을 가질 수 있도록 할 사용자 선택했습니다. 나는 사용자로 로그인하면 나는 이러한 사용자가 실행할 수있는 허용하는 cmdlet/함수입니다

Enter-PSSession -computername SRV1-AD -Credential $credential -ConfigurationName HelpDesk 

와에 대한 제약을 설정하는. 이 cmdlet은 시스템에 원격 연결을 허용하는 데 필요한 기본 cmdlet입니다.

Image

가 어떻게 내 사용자 지정 모듈은 엔드 포인트 사용자가 실행할 수있는 유일한 기능을 할 수 있도록 할 수 있습니까? 또는 모듈을 구성 파일로 가져 와서 HelpDesk 끝점 구성을 사용할 때마다 어떻게 실행합니까? 구성 파일에는 모듈을 가져올 줄이 있지만 가져 오기 모듈은 실제로 모듈이 아닙니다. 모듈 가져 오기 모듈을 찾을 수 있다면 ActiveDirectory 모듈의 예가 될 것입니다. 이를 위해 빠르고 더러운 작업을 수행 할 수 있어야합니다.

UPDATE 나는이 찾을 더러운 솔루션은 모든 cmdlet을 사용자의 세션에 입력하고 해제하는 것이 었습니다

/I 예를 들어 내가 수동으로 할 수있는 수입 모듈 import-module & Get-Command을 허용 할 제외한 기능 내 맞춤 모듈을 가져 오면 내 기능 만 사용자에게 표시됩니다. 하지만 이것이 완벽한 솔루션은 아닙니다. 왜냐하면 이것이 모든 시스템에 모듈을 다운로드해야한다는 것을 의미하기 때문입니다.이 모듈을 적용하려면 더 이상 일대일 솔루션이 아닙니다. 이상적인 해결책은 내 모듈을 로컬에 저장하고 등록 된 끝점과 세션을 시작한 다음 내 모듈을 이미 사용자 계정으로 가져 오는 것입니다.

Enter-PSSession -computername SRV1-AD -Credential $credential -ConfigurationName HelpDesk 

또한 업데이트

사용자 @의 prasoon-karunan-V는 내가 구성 파일 I에서 다음 명령

New-PSSessionConfigurationFile -VisibleFunctions('Get-Command','Get-Info', 'CreateAD-User','Generate-Html','Change-Logon') -LanguageMode ‘ConstrainedLanguage’ –SessionType ‘RestrictedRemoteServer’ –Path ‘.\EndPoint.pssc’ -ScriptsToProcess C:\Users\Administrator\Desktop\Modules\ImportM.psm1 

을 사용 그래서 모듈을 가져올 -ScriptsToProcess & FunctionDefinitions을 사용 제안 너무 좋아하고 싶은 기능을 설정하십시오.

# Functions defined in this session configuration 
FunctionDefinitions = 'Get-Command','Get-Info', 'CreateAD-User','Generate-Html','Change-Logon' 

나는 그것이

Error1

그럼 난 그냥 모듈 파일을 가리키는했다 아무것도 가져올 명령을 이야기하지 않았기 때문에 어쩌면 그것은 작동하지 않습니다 생각 다음과 같은 오류를 던질 것이다 세션을 설정하려고 할 때, 어쩌면 모듈을 가져 와서 구성 파일을 추가하는 작은 스크립트를 만들어야 할 수도 있습니다. 그래서 정확하게 제가 작은 스크립트를 만들었습니다. 정확히 import 모듈 C : \ Modules \ ImportM.psm1을 작성한 다음 .pssc 파일로 가서이 스크립트를 ScriptsToProcess에 추가했지만 다음 오류가 발생합니다. 제한된 끝점에 대한 세션을 설정하려고하면

Error

언어 모드는 사용자 정의 모듈을 가져올 수 있습니다

LanguageMode = 'RestrictedLanguage' 
+0

를 참조 사용할 언어 모드에 대한 확인 : '이상적인 솔루션은 내 모듈은 로컬로 저장하는 것입니다 ... ', 말하지만,이 모듈을 파일 공유에두고 회사의 모든 호스트가이 모듈을 참조 할 수 있도록 하시겠습니까? 따라서 잠재적으로 각 사용자의 $ 프로필을 소스에 해당 공유 위치로 수정해야하며 사용자가 호스트를 시작하고 모듈을 사용하려고 시도 할 때 해당 공유가 오프라인/사용할 수없는 시나리오를 처리해야합니다. – postanote

+0

세션에 로그인 할 때'-ConfigurationName HelpDesk'를 사용할 때 공유를 사용하거나 설정을 영구적으로 사용하고 싶지 않다면, 제약 조건이 실행될 때 실행합니다. '-ConfigurationName HelpDesk'을 사용하지 않으면 사용자 프로필이 정규 프로필이됩니다. @postanote – Katz

+1

[이 기사를 읽는 것이 좋습니다] (https://docs.microsoft.com/en-us/powershell/jea/role-capabilities). 왜 'JEA'를 쓰지 않는거야? – TheIncorrigible1

답변

0

사용 -ScriptsToProcess 매개 변수로 설정됩니다.

다음을 참조하십시오.

Get-Help New-PSSessionConfigurationFile -Parameter ScriptsToProcess

Get-Help New-PSSessionConfigurationFile -Parameter FunctionDefinitions

업데이트 :

이 그래서 이것에 의해 here

+0

그래서 커스텀 모듈을'ScriptsToProcess'에 추가했습니다.'C : \ Modules \ module1 '모듈의 절대 경로를 사용하여 추가했습니다.psm1'하지만 일단 -CommfigurationName HelpDesk로 로그인을 시도하면 Enter-PSSession과 세션을 설정할 수 없지만 제대로 작동하지 않습니다. 질문을 업데이트하고 오류의 이미지를 추가하겠습니다. – Katz

+0

질문이 업데이트되었습니다. 더 많은 정보가 필요하면 알려주세요. 고마워요! – Katz

+0

@Katz - 내 대답 업데이트 –