UJP - 技術情報2 バックアップ : PowerShell/ConstrainedLanguage のバックアップ差分(No.1)

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

1: 2020-02-10 (月) 23:31:16 nobuaki ソース バックアップ No.1 を復元して編集
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に戻る.


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 4163, today: 1, yesterday: 5

広告スペース
Google