title: Why does DirectoryEntry("WinNT://") not show group everyone?
body: <p>The below function (is supposed to) lists all groups on the local machine.<br />
  Now the question: Why does the "everyone" group not show up ?<br />
  If I change directory permissions as user, I see the "everyone" group, so it must be there, somewhere.</p>
  
  <pre><code>    Public Shared Function GetAllGroups() As DataTable
          Return GetAllGroups(System.Environment.MachineName)
      End Function
  
  
      ' Tools.Permissions.Local.GetAllGroups() '
      Public Shared Function GetAllGroups(ByVal strDomain As String) As DataTable
          Dim dt As New DataTable
          Dim dr As DataRow = Nothing
  
          Try
              Dim bException As Boolean = False
              Dim deLocalMachine As System.DirectoryServices.DirectoryEntry = New System.DirectoryServices.DirectoryEntry("WinNT://" + strDomain)
              'Dim deRootObject As System.DirectoryServices.DirectoryEntry = GetDirectoryEntry(strPath, strUserName, strPassword, bException) '
              If bException Then
                  Return Nothing
              End If
  
  
              For Each child As System.DirectoryServices.DirectoryEntry In deLocalMachine.Children
                  Try
  
                      If StringComparer.OrdinalIgnoreCase.Equals(child.SchemaClassName, "group") Then
  
                          If Not dt.Columns.Contains("Members") Then
                              dt.Columns.Add("Members", GetType(System.String))
                          End If
  
                          For Each strPropertyName As String In child.Properties.PropertyNames
                              If Not dt.Columns.Contains(strPropertyName) Then
                                  dt.Columns.Add(strPropertyName, GetType(System.String))
                              End If
                          Next strPropertyName
  
                          dr = dt.NewRow
  
                          Dim strMembers As String = ""
                          For Each member As Object In DirectCast(child.Invoke("Members"), IEnumerable)
                              Using memberEntry As New System.DirectoryServices.DirectoryEntry(member)
  
                                  Try
                                      strMembers += memberEntry.Properties("Name").Value.ToString() + Environment.NewLine
                                      Console.WriteLine(memberEntry.Path)
                                  Catch exFixMeIsNotNullNotWorking As Exception
  
                                  End Try
  
                              End Using
                          Next
  
                          dr("Members") = strMembers
  
                          For Each strPropertyName As String In child.Properties.PropertyNames
  
                              If StringComparer.OrdinalIgnoreCase.Equals(strPropertyName, "objectSid") Then
                                  Dim strSID As String = ""
                                  Try
                                      Dim sidThisSid As New System.Security.Principal.SecurityIdentifier(child.Properties(strPropertyName).Value, 0)
                                      strSID = sidThisSid.ToString()
                                      ' http://stackoverflow.com/questions/1040623/convert-a-username-to-a-sid-string-in-c-net '
                                      '  NTAccount ntAccount = (NTAccount)sid.Translate( typeof( NTAccount ) ); '
                                      ' Dim ntAccount As Security.Principal.NTAccount = CType(sidThisSid.Translate(GetType(Security.Principal.NTAccount)), Security.Principal.NTAccount) '
                                  Catch ex As Exception
  
                                  End Try
  
                                  dr(strPropertyName) = strSID
                              Else
                                  dr(strPropertyName) = child.Properties(strPropertyName).Value.ToString()
                              End If
  
  
  
                          Next strPropertyName
                          dt.Rows.Add(dr)
  
                      End If
  
                  Catch ex As Exception ' Don't finish just because one fails
                      Console.WriteLine(ex.Message.ToString &amp; vbLf &amp; vbLf &amp; ex.StackTrace.ToString, MsgBoxStyle.Critical, "FEHLER ...")
                  End Try
              Next
          Catch ex As Exception
              Console.WriteLine(ex.Message.ToString &amp; vbLf &amp; vbLf &amp; ex.StackTrace.ToString, MsgBoxStyle.Critical, "FEHLER ...")
          End Try
  
          Return dt
      End Function ' ListEverything
  </code></pre>