前説
Mac→Windowsへ転換。
Windowsでの有意義なCLIへ。
郷に入りては郷に従え。
Windows Terminal
Viva windows.
#PowerShell
基本的にWindowsTerminalから使う事になる。という前提。
- Tabキーで補完。
- ショートカットキー参考にさせてもらいつつ:https://qiita.com/whim0321/items/6a6b11dea54642bd6724#shortcut-keys
- タブを閉じる:Ctrl + Shift + W
- 先頭に
$
でいつもの感じ。変数展開であろう。- 例)バージョンの確認。
- 一覧)
$PSVersionTable
- 指定)
$PSVersionTable.PSVersion
- 一覧)
- 例)バージョンの確認。
- コマンドレットと呼ばれるコマンドがあり、主に使う。
- sudo => ["-Scope CurrentUser" or "-Scope Process"] or [管理者として実行] //いやそんなあんちょこな理解で、、、いいんだよ
- 新規タブを管理者権限で開くには、そもそも管理者権限で起動しなければならない。
- Scope スコープ
- Scopeは複数ある。
- Scope Process の方がそのプロセス限定の許可だから、とりまリスク的観点からこれ使ってけばいいかな
- Policy ポリシー
- Policyの種類も把握しておいてね。
- 信頼発行元署名があれば実行とか。
- スクリプト禁止とか
- 全て実行可能とか
最初はこの4つだけ実行しよう。↓
- Get-Verb. このコマンドを実行すると、ほとんどのコマンドが従う動詞の一覧が返されます。 また、応答には、これらの動詞の動作が記述されています。 ほとんどのコマンドがこの名前付け規則に従うため、コマンドの動作 (適切なコマンドの選択に役立ちます)、さらにはコマンドを作成する場合の名前付けに関する期待値が設定されます。
- Get-Command. このコマンドでは、コンピューターにインストールされているすべてのコマンドの一覧が取得されます。
-
Get-Member. オブジェクトベースの出力に対して動作し、コマンドで使用できるオブジェクト、プロパティ、およびメソッドを検出できます。
- 使い方が特殊でしたぞ! 例 >
Get-Process | Get-Member
- 使い方が特殊でしたぞ! 例 >
- Get-Help. コマンドの名前を引数として指定してこのコマンドを呼び出すと、コマンドのさまざまな部分について説明するヘルプ ページが表示されます。
PowerShell ギャラリー
MSとPSコミュニティで運用されてる。
有意義なモジュールとスクリプトがある。
感謝と畏敬の念をもって協力的であるべし。
PowerShellGetとNuGetのインストールが必要。
要はパッケージ管理的ツールですね。
↓
PowerShell, NuGet
###PowerShellGet
https://docs.microsoft.com/ja-jp/powershell/scripting/gallery/installing-psget?view=powershell-7.1
PowerShellGet モジュールには、PowerShell ギャラリーやその他のプライベート リポジトリでモジュール、DSC リソース、ロール機能、スクリプトなどのアーティファクトを含む PowerShell パッケージを検索、インストール、更新、公開するためのコマンドレットが含まれています。
NuGet
https://docs.microsoft.com/ja-jp/nuget/what-is-nuget
Microsoft がサポートする .NET (.NET Core を含む) のコード共有メカニズムである NuGet では、.NET 用のパッケージを作成、ホスト、使用する方法が定義されており、それらの各ロール用の ツールが提供されています。
###スクリプトの実行
はじめに。
スクリプトファイル実行時の罠。
ps1ファイルは「UTF-8」だと各方面のブログには書かれていたが、私の環境ではエラーが出た。
「UTF-8(BOM付)」で保存したら正常に実行できました。以上。
スコープとポリシーの確認
スコープ毎にポリシーの設定をするよ。
(全部同じポリシーにはしないでしょう)
CurrentUserと、LocalMachineの2つはレジストリ サブ キーに記録される。(一度設定したら再変更するまでそのままになるよって事。)
ちょいちょいとやって
PS1ファイル と PATH と function
PS1==PowerShellプロファイル
$PSScriptRoot
(ver3~使用可)で現状を確認する。
プロファイルを分離する。
- 分離した参照を追加する