tech.guitarrapc.cóm

C#, PowerShell, Unity, Cloud, Serverless Technical Update and Features

(New-Object -ComObject Shell.Application).NameSpace()で指定出来るインデックスと名称一覧

以前あげた記事で、(New-Object -ComObject Shell.Application).NameSpace(17)がマイコンピュータであると書きました。
PowerShellでCD ROMドライブのエジェクトをしたい
なぜNameSpace(17)がマイコンピュータと判断出来るのか、インデックスと名称一覧を取得出来る簡単なワンライナーを書きました。

Shell.ApplicationのNameSpace()のインデックスと名称を取得する

以下のワンライナーで取得できます。
0..61 | ForEach-Object { "{0,3} ,$(((New-Object -ComObject Shell.Application).NameSpace($_)).Title)" -F $_ }

PowerShell_Shell_NameSpace

Windows8 x64 / PowerShell V3.0環境での一覧を示しておきます。
  0 ,デスクトップ
  1 ,インターネット
  2 ,プログラム
  3 ,すべてのコントロール パネル項目
  4 ,プリンター
  5 ,マイ ドキュメント
  6 ,お気に入り
  7 ,スタートアップ
  8 ,最近使った項目
  9 ,SendTo
 10 ,ごみ箱
 11 ,スタート メニュー
 12 ,
 13 ,マイ ミュージック
 14 ,マイ ビデオ
 15 ,
 16 ,デスクトップ
 17 ,コンピューター
 18 ,ネットワーク
 19 ,Network Shortcuts
 20 ,Fonts
 21 ,Templates
 22 ,スタート メニュー
 23 ,プログラム
 24 ,スタートアップ
 25 ,パブリック デスクトップ
 26 ,Roaming
 27 ,Printer Shortcuts
 28 ,Local
 29 ,スタートアップ
 30 ,スタートアップ
 31 ,お気に入り
 32 ,Temporary Internet Files
 33 ,Cookies
 34 ,History
 35 ,ProgramData
 36 ,Windows
 37 ,System32
 38 ,Program Files
 39 ,マイ ピクチャ
 40 ,acquire
 41 ,SysWOW64
 42 ,Program Files (x86)
 43 ,Common Files
 44 ,Common Files
 45 ,Templates
 46 ,パブリックのドキュメント
 47 ,管理ツール
 48 ,管理ツール
 49 ,ネットワーク接続
 50 ,
 51 ,
 52 ,
 53 ,パブリックのミュージック
 54 ,パブリックのピクチャ
 55 ,パブリックのビデオ
 56 ,Resources
 57 ,
 58 ,OEM Links
 59 ,一時書き込みフォルダー
 60 ,
 61 ,ネットワーク
この通り、0~61のインデックスに各項目が含まれています。 CD ROMはComputer (日本語環境では、コンピューター)に含まれるので…17ですね!! 他のNew-Object -ComObject Shell.Applicationからアクセスする要素もコレで判断がつくかと思います。