しばたテックブログスマートフォン用の表示で見るしばたテックブログPowerShellを中心に気分で書いている技術ブログです。ShellでPowerShellを起動した場合、通常のPowerShellの起動とは異なる初期処理が行われAzureドライブ(Azure:\で始まるドライブ)にロケーションが移動された状態で開始されます。Coreを起動しても同様)本エントリではこの処理がどの様にして行われているのか解説します。Shell(PowerShell)の場合、シェルの起動時に初期処理が行われています。PowerShellのプロファイルには何も記述されていません。Shell(PowerShell)ではpowershell.exeの引数に初期化処理が記述されています。~\PSCloudShellStartup.ps1"と$env:USERPROFILE\PSCloudShellStartup.ps1を実行する様になっています。Cyan}と記述されており、こちらもPSCloudShellStartup.ps1を呼び出す様になっています。Coreのプロファイル(/opt/microsoft/powershell/<version>/profile.ps1)に直接初期化処理が記述されており、その内容はPSCloudShellStartup.ps1と同一です。現時点のPSCloudShellStartup.ps1(とprofile.ps1)の内容をGistに上げていますのでスクリプトの詳細はそちらで確認してください。GitHub初期化処理は主にAzure関連のモジュールの読み込みと認証プロファイルパスの差し替えprompt関数の差し替えAzureドライブへの移動を行っています。$env:HOME/.config/PowerShell/Microsoft.PowerShell_profile.ps1に差し替えて*1実行します。加えて$PROFILE変数に付与されるNotePropertyからAllUsersAllHostsとAllUsersCurrentHostを削除しています。(正確には$PROFILE変数を上書き定義する際にNotePropertyの追加をしない様にしている)Format-Listを使ってNotePropertyを確認すると以下の様になります。Drive上のVHDでマウントされ永続化対象となっているためです。Shell(PowerShell)がLinuxコンテナになりました。Shell内のPowerShellの今後について元ネタはこちら。広告スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。