Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What is going on with this article?
@SilkyFowl

Object Browser In PowerShellを見つけた話

More than 1 year has passed since last update.

初めに

Poswershellで少し凝ったことをしたくなった場合、CUIに表示された文字列の実態はオブジェクトであると認識することはとても重要です。

PowerShell は、.NET 上に構築されたタスクベースのコマンド ライン シェルおよびスクリプト言語です。 PowerShell は、システム管理者およびパワー ユーザーが、オペレーティング システム (Linux、macOS、および Windows) とプロセスを管理するタスクを迅速に自動化するのに役立ちます。
PowerShell スクリプト - PowerShell | Microsoft Docs

最近、その助けになるであろうスクリプトが公開されていることを知りました。
Powershell版ObjectBrowserです。ここからダウンロードできます。
PowerShell Object Browser

解説はこちら
How to Create and Use an Object Browser In PowerShell

使い方

スクリプトを開いたpowershellプロセスで使えるクラスを表示

操作a

操作A.gif

色んなことがわかりますが、特にValuesタブ最終行のUnderlyingSystemTypeがとても助かります……

任意のObjectを表示

操作1.gif
操作2.gif

調べたいObjectがある時はPowershellタブから追加できます。
Add-Node [Object]$Object [String]$Name
Remove-Node [Object]$Node

応用:コマンド結果の比較

操作i.gif
操作ii.gif
パイプライン処理の結果とコレクションメソッド処理の結果を比較しています。

何に使うの?

VScodeのデバッグ機能や、gm -InputObject $Foo -Force | Out-GridViewだと、深い階層の情報を調べるのはなかなかメンドクサイです……
そんな時にお世話になっています。
応用.jpg

たとえば、Nugetからダウンロードしてきたライブラリの使いかたを調べる助けになったりしてます。

Powershell 7で使うためには

Powershell7で動かすには L5260以降のGenerate-PSObjectExplorerFormの修正が必要です。
参考 : Windows フォームに関する破壊的変更 - .NET Core | Microsoft Docs
- System.Windows.Forms.MainMenuSystem.Windows.Forms.MenuStrip
- System.Windows.Forms.MenuItemSystem.Windows.Forms.ToolStripMenuItem
- $MainMenu.MenuItems.Add$MainMenu.Items.Add
- $mnuView.MenuItems.Add$mnuView.DropDownItems.Add
- L5821 $Form.ShowDialog()| Out-Null の前行に $Form.Controls.Add($MainMenu)を追加

// Add the MenuStrip last.
// This is important for correct placement in the z-order.
MenuStrip クラス (System.Windows.Forms) | Microsoft Docs コード例より

余談

  • 起動する際、Start-ThreadJobを使うといい感じでした。
  • 二次配布、GitHubの使い方とかそこらへんが疎いので勉強中です。
3
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
SilkyFowl
Powershell,あとはC#,VBA,SQLを少々.....

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
3
Help us understand the problem. What is going on with this article?