DOBON.NET どぼん!のVB道掲示板(プログラム)過去ログ

リモートコンピューターのHDD容量を取得する方法

はじめまして
いつも大変参考にさせていただいております

サンプルとして掲示されている、HDD容量取得ですが、
http://dobon.net/vb/dotnet/system/freespace.html
これはを応用してリモートコンピューターのHDD容量を取得することは出来ますでしょうか?
今一リモートコンピューターのプロパティを取得する方法がわかりません
ご存知の方ご教授お願いできますでしょうか?
初心者ですので至らない質問かと思いますがよろしくお願いいたします
>サンプルとして掲示されている、HDD容量取得ですが、
>http://dobon.net/vb/dotnet/system/freespace.html
>これはを応用してリモートコンピューターのHDD容量を取得することは出来ますでしょうか?

私の環境には「リモートコンピュータ」がないのであっているのか分かりませんが、次のようなコードでどうでしょうか?(machinenameを適当に変えてください。)

Dim mo As New System.Management.ManagementObject("\\machinename\root\CIMV2:Win32_LogicalDisk=""C:""")
Console.WriteLine(mo.Properties("FreeSpace").Value)
ご返答ありがとうございます
それでは試してみます、結果は後日・・・
ご教授いただいた内容で動作しました、ありがとうございます
ついでの質問で申し訳ないのですが、
System.Management.ManagementObject("\\machinename\root\CIMV2:Win32_LogicalDisk=""C:""")
この方法だと、リモートコンピューターのドライブ情報が固定になってしまいます
可変になるようにしたいと思い、
サンプルhttp://dobon.net/vb/dotnet/system/getlogicaldrives.html
を組み合わせてみました。
System.Environment.GetLogicalDrivesって、実行しているコンピュータしか
有効でないんですね・・・

リモートのドライブ名を全て取得することは出来ますか?
MSDNライブラリを検索してるのですが、それらしい情報が見当たりません
ご存知でしたら、再度ご教授願いたいです
>リモートのドライブ名を全て取得することは出来ますか?
>MSDNライブラリを検索してるのですが、それらしい情報が見当たりません
>ご存知でしたら、再度ご教授願いたいです

WMIを使えば次のように一度に取得できます。

Dim mc As New System.Management.ManagementClass("\\machinename\root\CIMV2:Win32_LogicalDisk")
Dim moc As System.Management.ManagementObjectCollection = mc.GetInstances()
Dim mo As System.Management.ManagementObject
For Each mo In moc
Try
Console.WriteLine("Name:{0}", mo("Name").ToString())
Console.WriteLine("FreeSpace:{0}", mo("FreeSpace").ToString())
Catch ex As Exception
Console.WriteLine("Error:{0}", ex.Message)
End Try
Next mo

DOBON.NET | プログラミング道 | プログラミング掲示板