|
分類:[VB.NET/VB2005 以降]
パソコンOS:Windows XP Professional SP2(32bit)
使用ソフト:Microsoft VisualStudio2005 Professional Edition
メモリー:1GB
CPU:Celeron 1.60GHz
初めまして。ボンと申します。初心者ですがご教授お願い致します。
現在、ネットワークで接続されているサーバーの
HDD、CPU、メモリの容量を取得するwindowsサービスを下記のソースで作成しております。
ですが、「アクセスが拒否されました。 (HRESULT からの例外: 0x80070005 (E_ACCESSDENIED))」
とエラーが出て接続出来ず、難航しております・・・
Dim wSize As Long 'HDD容量
Dim wFree As Long 'HDD空容量
Dim wCpu As Integer 'CPU
Dim wMemory As Long 'MEMORY
Dim wco As New System.Management.ConnectionOptions
wco.Username = wstrUser 'ユーザー名
wco.Password = wstrPass 'パスワード
Dim wsc As New System.Management.ManagementScope("\\" & wstrIp & "\ROOT\CIMV2", wco)
wsc.Connect() '接続
'HDD
Dim oq1 As New System.Management.ObjectQuery("select * from Win32_LogicalDisk")
Using mos As New System.Management.ManagementObjectSearcher(wsc, oq1)
For Each mo As System.Management.ManagementObject In mos.Get()
'Cドライブの容量取得
If mo("NAME").ToString = "C:" Then
wSize = mo("Size")
wFree = mo("FreeSpace")
End If
Next mo
End Using
'CPU
Dim oq2 As New System.Management.ObjectQuery("Select LoadPercentage From Win32_Processor")
Using mos As New System.Management.ManagementObjectSearcher(wsc, oq2)
For Each mo As System.Management.ManagementObject In mos.Get()
wCpu = mo("LoadPercentage")
Next
End Using
'MEMORY
Dim oq3 As New System.Management.ObjectQuery("Select FreePhysicalMemory From Win32_OperatingSystem")
Using mos As New System.Management.ManagementObjectSearcher(wsc, oq3)
For Each mo As System.Management.ManagementObject In mos.Get()
wMemory = mo("FreePhysicalMemory")
Next
End Using
試しにwindowsアプリケーションで同じソースで動かしてみたところ、正常に接続出来ました。
windowsサービスで接続するには、何か特別なやり方があるのでしょうか?
申し訳ありませんが、ご教授お願い致します。
|