- 題名: ワークグループ名の取得
- 日時: 2009/09/11 13:15:43
- ID: 25383
- この記事の返信元:
- (なし)
- この記事への返信:
- [25385] Re[1]: ワークグループ名の取得2009/09/11 15:29:31
- ツリーを表示
■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
分類:[.NET]
自分の所属しているワークグループ名を取得したいです
ネットでいろいろ調べましたがよくわかりません
ドメイン名ではないです
どなたかお願いします