私が作成したカスタムモジュール内の関数のみを実行するようにユーザーを制限する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
がポップアップ表示されたら、これらの制約を持つことができるようにしたいどのユーザーが選択しました。私は
Enter-PSSession -computername SRV1-AD -Credential $credential -ConfigurationName HelpDesk
とするために制約を設定し、ユーザーにログインすると、これらは、ユーザーが実行を許可された許可のコマンドレット/機能です。これらは、システムへのリモート接続を可能にするために必要なデフォルトのコマンドレットです。
がどのように私は私のカスタムモジュールは、エンドポイントは、ユーザーが実行できるようにするだけで機能することを可能にすることができますか?またはどのように私のモジュールを設定ファイルにインポートして、HelpDeskエンドポイント設定が使用されるたびに実行されるか。私は設定ファイルにモジュールをインポートする行があるが、インポートモジュールは実際にはモジュールではないことを知っています。モジュールの例はActiveDirectoryです。このために迅速かつ汚れた作業を行うことができるはずです。
UPDATE
これはユーザのセッションに入り、手動で私は私ができるインポート・モジュールを例import-module
& Get-Command
に許可したいものを除き、すべてのコマンドレット/機能を無効にすることだったため、私が見つけ汚いソリューション私のカスタムモジュールをインポートすると、私の機能はユーザに見える唯一のものになります。しかし、これは完璧な解決策ではありません。これは、私がこれを有効にしたいと思うすべてのシステムにモジュールをダウンロードする必要があり、もはや1対多の解決策ではないということを意味します。理想的な解決策は、私のモジュールをローカルに保存し、登録されたエンドポイントとのセッションに入り、私のモジュールを既にユーザーアカウントにインポートさせることです。
Enter-PSSession -computername SRV1-AD -Credential $credential -ConfigurationName HelpDesk
さらに私は
ユーザー@ prasoon-karunan-vは、私は、設定ファイルでは、次のコマンド
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'
私はそれが
は、その後、私はちょうど、モジュールファイルを指したものをインポートするコマンドを言っていなかったので、多分それは働いていないと思った次のエラーをスローしていましたセッションを確立しようとすると、モジュールをインポートして設定ファイルを追加する小さなスクリプトを作成する必要があるかもしれません。それで、ちょうどちょうど、 インポートモジュール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