前提・実現したいこと
指定されたドライブの情報を返す関数を作っているのですが
結果をリストテーブル? で返したいです。
そのあと受け取った側で特定の項目の値を取得したいです。
試したこと
ちゃんとしたリストテーブルの作り方が分からず
困っていたところ
ハッシュテーブルからリストテーブルに変換する方法が見つかったので
ハッシュテーブルの作り方を調べてとりあえず作ってみました。が、
例えば、受け取った結果から Name の情報だけ抜き出そうとしても
取得できません。
どうしたらいいでしょうか。
あと、もっとちゃんとしたリストテーブルの作り方があるのであれば
教えて頂きたいです。
pwoeshell
1function _Get_DriveInfo ([string]$Name) { 2[OutputType([System.Management.Automation.PSDriveInfo])] 3#引数で指定されたドライブの情報を返す# 4 [System.Management.Automation.PSDriveInfo]$Info = Get-PSDrive | Where-Object{$_.Name -eq $Name} 5 if($Info -eq $null) 6 { 7 return $null 8 } 9 $NetDriveRoot = $($(Get-WMIObject -query $("Select * From Win32_LogicalDisk Where DeviceID='" + $Name + ":' and DriveType = 4")).ProviderName) 10 if($NetDriveRoot -eq $null) 11 { 12 $SubstDrive = $(subst) | Where-Object{$_.substring(0,$_.indexof(':')) -eq $Name} 13 if ($SubstDrive -eq $null) 14 { 15 $DriveInfo = @{Name = $Name ; Root = $Info.Root ; Type = "Hardware"} 16 } 17 else 18 { 19 $DriveInfo = @{Name = $Name ; Root = $($SubstDrive -split '\:\\: => ')[1] ; Type = "Phantom"} 20 } 21 } 22 else 23 { 24 $DriveInfo = @{Name = $Name ; Root = $NetDriveRoot ; Type = "Remote"} 25 } 26 $DriveInfo | %{New-Object psobject -Property $_} | Format-Table -Property Name,Root,Type 27} 28 29$DriveInfo = _Get_DriveInfo -Name "C" 30 31#ちゃんとコンソールに表示される 32$DriveInfo 33 34#結果が返ってこない.... 35$DriveInfo.Name 36 37#リストが空.... 38$(_Get_DriveInfo -Name "C") | Select-Object -Property Name
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/14 09:49
2018/09/14 10:03
2018/09/14 10:22
2018/09/14 11:12
2018/10/10 00:40