내가 만든 사용자 지정 모듈의 함수 만 실행하도록 사용자를 제한하는 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입니다.
가 어떻게 내 사용자 지정 모듈은 엔드 포인트 사용자가 실행할 수있는 유일한 기능을 할 수 있도록 할 수 있습니까? 또는 모듈을 구성 파일로 가져 와서 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'
나는 그것이
그럼 난 그냥 모듈 파일을 가리키는했다 아무것도 가져올 명령을 이야기하지 않았기 때문에 어쩌면 그것은 작동하지 않습니다 생각 다음과 같은 오류를 던질 것이다 세션을 설정하려고 할 때, 어쩌면 모듈을 가져 와서 구성 파일을 추가하는 작은 스크립트를 만들어야 할 수도 있습니다. 그래서 정확하게 제가 작은 스크립트를 만들었습니다. 정확히 import 모듈 C : \ Modules \ ImportM.psm1을 작성한 다음 .pssc 파일로 가서이 스크립트를ScriptsToProcess
에 추가했지만 다음 오류가 발생합니다. 제한된 끝점에 대한 세션을 설정하려고하면
언어 모드는 사용자 정의 모듈을 가져올 수 있습니다
LanguageMode = 'RestrictedLanguage'
를 참조 사용할 언어 모드에 대한 확인 : '이상적인 솔루션은 내 모듈은 로컬로 저장하는 것입니다 ... ', 말하지만,이 모듈을 파일 공유에두고 회사의 모든 호스트가이 모듈을 참조 할 수 있도록 하시겠습니까? 따라서 잠재적으로 각 사용자의 $ 프로필을 소스에 해당 공유 위치로 수정해야하며 사용자가 호스트를 시작하고 모듈을 사용하려고 시도 할 때 해당 공유가 오프라인/사용할 수없는 시나리오를 처리해야합니다. – postanote
세션에 로그인 할 때'-ConfigurationName HelpDesk'를 사용할 때 공유를 사용하거나 설정을 영구적으로 사용하고 싶지 않다면, 제약 조건이 실행될 때 실행합니다. '-ConfigurationName HelpDesk'을 사용하지 않으면 사용자 프로필이 정규 프로필이됩니다. @postanote – Katz
[이 기사를 읽는 것이 좋습니다] (https://docs.microsoft.com/en-us/powershell/jea/role-capabilities). 왜 'JEA'를 쓰지 않는거야? – TheIncorrigible1