2017-12-30 46 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がポップアップ表示されたら、これらの制約を持つことができるようにしたいどのユーザーが選択しました。私は

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

とするために制約を設定し、ユーザーにログインすると、これらは、ユーザーが実行を許可された許可のコマンドレット/機能です。これらは、システムへのリモート接続を可能にするために必要なデフォルトのコマンドレットです。

Image

がどのように私は私のカスタムモジュールは、エンドポイントは、ユーザーが実行できるようにするだけで機能することを可能にすることができますか?またはどのように私のモジュールを設定ファイルにインポートして、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' 

私はそれが

Error1

は、その後、私はちょうど、モジュールファイルを指したものをインポートするコマンドを言っていなかったので、多分それは働いていないと思った次のエラーをスローしていましたセッションを確立しようとすると、モジュールをインポートして設定ファイルを追加する小さなスクリプトを作成する必要があるかもしれません。それで、ちょうどちょうど、 インポートモジュール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 'のモジュールへの絶対パスを使って追加しました。私は '-ConfigurationName HelpDesk'でログインしようとするとEnter-PSSessionとのセッションを確立できませんが、それがなければ正常に動作します。質問を更新し、エラーの画像を追加します。 – Katz

+0

私は質問を更新しました。あなたがもっと情報を必要とするかどうか教えてくださいありがとう! – Katz

+0

@Katz - 私の答えを更新しました –

関連する問題