- 現在との差分 を表示
- ソース を表示
- PowerShell/ConstrainedLanguage へ行く。
1: 2020-02-10 (月) 23:31:16 nobuaki | |||
---|---|---|---|
Line 1: | Line 1: | ||
+ | *PowerShell Constrained Language Modeを学ぶ [#bee6bdd1] | ||
+ | **はじめに [#c5b5a9a4] | ||
+ | |||
+ | PowerShellは強力なスクリプト言語であるがゆえに,ブラックハッカー(クラッカー)にも有用なツールとして悪用されがち. | ||
+ | |||
+ | そこで用意されたのがPowerShell Constrained Language Mode.言語に制約のあるモード.このページでは,これを使って動作確認をして見る. | ||
+ | |||
+ | **ConstrainedLanguageモードに変更する [#rd5a0faa] | ||
+ | |||
+ | 取り急ぎやって見る.Windows PowerShellを起動して,まずは動作確認. | ||
+ | |||
+ | PS C:\Users\ujpadmin> [System.Console]::WriteLine("Hello World")🆑 | ||
+ | Hello World🈁 | ||
+ | PS C:\Users\ujpadmin> | ||
+ | |||
+ | 表示された. | ||
+ | |||
+ | 現在の言語モードを確認. | ||
+ | |||
+ | PS C:\Users\ujpadmin> $ExecutionContext.SessionState.LanguageMode🆑 | ||
+ | FullLanguage🈁 | ||
+ | PS C:\Users\ujpadmin> | ||
+ | |||
+ | FullLanguageなので,「全ての言語が使えるモード」であることが確認できた. | ||
+ | |||
+ | 次に,言語制限モードに変更して,変更されたかを確認. | ||
+ | |||
+ | |||
+ | PS C:\Users\ujpadmin> $ExecutionContext.SessionState.LanguageMode = "ConstrainedLanguage"🆑 | ||
+ | PS C:\Users\ujpadmin> $ExecutionContext.SessionState.LanguageMode🆑 | ||
+ | ConstrainedLanguage🈁 | ||
+ | PS C:\Users\ujpadmin> | ||
+ | |||
+ | ConstrainedLanguage(制限モード)になったことをを確認できた. | ||
+ | |||
+ | 最初に実行したHello Worldを実行して見る. | ||
+ | |||
+ | PS C:\Users\ujpadmin> [System.Console]::WriteLine("Hello World")🆑 | ||
+ | メソッドを呼び出せません。この言語モードでは、メソッドの呼び出しはコアの型のみでサポートされています🈁 | ||
+ | 。 | ||
+ | 発生場所 行:1 文字:1 | ||
+ | + [System.Console]::WriteLine("Hello") | ||
+ | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
+ | + CategoryInfo : InvalidOperation: (:) []、RuntimeException | ||
+ | + FullyQualifiedErrorId : MethodInvocationNotSupportedInConstrainedLanguage | ||
+ | |||
+ | PS C:\Users\ujpadmin> | ||
+ | |||
+ | 制限モードが効いているので,System.Consoleに関するメソッドが呼び出せない. | ||
+ | |||
+ | せっかくなので,元のモードに戻して見る. | ||
+ | |||
+ | PS C:\Users\ujpadmin> $ExecutionContext.SessionState.LanguageMode = "FullLanguage"🆑 | ||
+ | プロパティを設定できません。この言語モードでは、プロパティの設定はコアの型のみでサポートされています🈁 | ||
+ | 。 | ||
+ | 発生場所 行:1 文字:1 | ||
+ | + $ExecutionContext.SessionState.LanguageMode = "FullLanguage" | ||
+ | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
+ | + CategoryInfo : InvalidOperation: (:) []、RuntimeException | ||
+ | + FullyQualifiedErrorId : PropertySetterNotSupportedInConstrainedLanguage | ||
+ | |||
+ | PS C:\Users\ujpadmin> | ||
+ | |||
+ | すでに制限されているので一度制限されたら元に戻せない. | ||
+ | |||
+ | でも良く見れば分かる通り,これはSessionState,セッション毎の設定なので,新しくWindows PowerShellを起動すれば,FullLanguageに戻る. |
- PowerShell/ConstrainedLanguage のバックアップ一覧
- PowerShell/ConstrainedLanguage のバックアップ差分(No. All)
- 1: 2020-02-10 (月) 23:31:16 nobuaki
- 現: 2020-02-11 (火) 00:03:27 nobuaki
Counter: 4163,
today: 1,
yesterday: 5