c# - Why does DirectoryEntry("WinNT://") not show group everyone? -


the below function (is supposed to) lists groups on local machine.
question: why "everyone" group not show ?
if change directory permissions user, see "everyone" group, must there, somewhere.

    public shared function getallgroups() datatable         return getallgroups(system.environment.machinename)     end function       ' tools.permissions.local.getallgroups() '     public shared function getallgroups(byval strdomain string) datatable         dim dt new datatable         dim dr datarow = nothing          try             dim bexception boolean = false             dim delocalmachine system.directoryservices.directoryentry = new system.directoryservices.directoryentry("winnt://" + strdomain)             'dim derootobject system.directoryservices.directoryentry = getdirectoryentry(strpath, strusername, strpassword, bexception) '             if bexception                 return nothing             end if               each child system.directoryservices.directoryentry in delocalmachine.children                 try                      if stringcomparer.ordinalignorecase.equals(child.schemaclassname, "group")                          if not dt.columns.contains("members")                             dt.columns.add("members", gettype(system.string))                         end if                          each strpropertyname string in child.properties.propertynames                             if not dt.columns.contains(strpropertyname)                                 dt.columns.add(strpropertyname, gettype(system.string))                             end if                         next strpropertyname                          dr = dt.newrow                          dim strmembers string = ""                         each member object in directcast(child.invoke("members"), ienumerable)                             using memberentry new system.directoryservices.directoryentry(member)                                  try                                     strmembers += memberentry.properties("name").value.tostring() + environment.newline                                     console.writeline(memberentry.path)                                 catch exfixmeisnotnullnotworking exception                                  end try                              end using                         next                          dr("members") = strmembers                          each strpropertyname string in child.properties.propertynames                              if stringcomparer.ordinalignorecase.equals(strpropertyname, "objectsid")                                 dim strsid string = ""                                 try                                     dim sidthissid 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 security.principal.ntaccount = ctype(sidthissid.translate(gettype(security.principal.ntaccount)), security.principal.ntaccount) '                                 catch ex 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 exception ' don't finish because 1 fails                     console.writeline(ex.message.tostring & vblf & vblf & ex.stacktrace.tostring, msgboxstyle.critical, "fehler ...")                 end try             next         catch ex exception             console.writeline(ex.message.tostring & vblf & vblf & ex.stacktrace.tostring, msgboxstyle.critical, "fehler ...")         end try          return dt     end function ' listeverything 

the everyone group isn't standard group rather implicit group or built-in principal. if open local "users , groups" won't see listed there either. same true of other "groups" such authenticated users. if want access these need use system.security.principal.wellknownsidtype enumeration. windows 2008 article relevant older versions of windows, too.


Comments

Popular posts from this blog

apache - Add omitted ? to URLs -

redirect - bbPress Forum - rewrite to wwww.mysite prohibits login -

php - How can I stop spam on my custom forum/blog? -