DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ワークグループ名の取得

環境/言語:[WindowsXP Pro VB2008 .NET3.5 ]
分類:[.NET]

自分の所属しているワークグループ名を取得したいです
ネットでいろいろ調べましたがよくわかりません
ドメイン名ではないです
どなたかお願いします
■No25383に返信(hirosさんの記事)
> 自分の所属しているワークグループ名を取得したいです

《案1》
Imports System.Management
Module Module1
    Sub Main()
        Dim s = "SELECT PartOfDomain, Domain FROM Win32_ComputerSystem"
        For Each q In New ManagementObjectSearcher(s).Get()
            If CBool(q("PartOfDomain")) Then
                MsgBox(q("Domain"), vbSystemModal, "domain")
            Else
                MsgBox(q("Domain"), vbSystemModal, "workgroup")
            End If
        Next
    End Sub
End Module


《案2》
Imports System.ComponentModel
Imports System.Runtime.InteropServices
Module Module1
    Private Enum NETSETUP_JOIN_STATUS
        Unknown = 0
        Unjoined = 1
        Workgroup = 2
        Domain = 3
    End Enum
    Private Declare Unicode Function NetGetJoinInformation Lib "netapi32" ( _
        ByVal computerName As String, _
        ByRef buffer As IntPtr, _
        ByRef status As NETSETUP_JOIN_STATUS) As Integer
    Private Declare Function NetApiBufferFree Lib "netapi32" ( _
        ByRef buffer As IntPtr) As Integer

    Sub Main()
        Dim pBuffer As IntPtr = IntPtr.Zero
        Dim domainName As String = Nothing
        Dim status As NETSETUP_JOIN_STATUS = NETSETUP_JOIN_STATUS.Unknown
        Try
            Dim nerr As Integer = NetGetJoinInformation(Nothing, pBuffer, status)
            If nerr <> 0 Then
                Throw New Win32Exception()
            End If
            domainName = Marshal.PtrToStringUni(pBuffer)
        Finally
            If Not IntPtr.Zero.Equals(pBuffer) Then
                NetApiBufferFree(pBuffer)
                pBuffer = IntPtr.Zero
            End If
        End Try
        'MsgBox(status.ToString() & vbCrLf & domainName, vbSystemModal)
        If status = NETSETUP_JOIN_STATUS.Workgroup Then
            MsgBox(domainName, vbSystemModal, "Workgroup")
        Else
            MsgBox(domainName, vbSystemModal, "Domain")
        End If
    End Sub
End Module
■No25385に返信(魔界の仮面弁士さんの記事)
> ■No25383に返信(hirosさんの記事)
>>自分の所属しているワークグループ名を取得したいです

ありがとうございます 案1で解決しました!
解決済み!

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