<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Benutzerkonten auflisten]]></title><description><![CDATA[<p>Moin,<br />
langsam bin ich am Verzweifeln. Ich weiß, dass ich mit GetUserName den aktuell eingeloggten User ermitteln kann. Wie aber kann ich alle Benutzerkonten ermitteln?</p>
<p>Flo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/101010/benutzerkonten-auflisten</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 19:05:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/101010.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 12 Feb 2005 14:21:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Benutzerkonten auflisten on Sat, 12 Feb 2005 14:21:25 GMT]]></title><description><![CDATA[<p>Moin,<br />
langsam bin ich am Verzweifeln. Ich weiß, dass ich mit GetUserName den aktuell eingeloggten User ermitteln kann. Wie aber kann ich alle Benutzerkonten ermitteln?</p>
<p>Flo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/721482</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/721482</guid><dc:creator><![CDATA[Florianer]]></dc:creator><pubDate>Sat, 12 Feb 2005 14:21:25 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzerkonten auflisten on Sat, 12 Feb 2005 14:45:02 GMT]]></title><description><![CDATA[<p>Guck dir mal mein Programm XP Usermanager an: <a href="http://xpusermanager.luckie-online.de" rel="nofollow">http://xpusermanager.luckie-online.de</a> Ist zwar in Delphi geschrieben aber die APIs sind die gleichen. Interassent sind für dich die Dateien: NTUser.pas und eventuell noch MpuWinNT.pas.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/721501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/721501</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Sat, 12 Feb 2005 14:45:02 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzerkonten auflisten on Sat, 12 Feb 2005 16:34:57 GMT]]></title><description><![CDATA[<p>hmm... ok, ich bin jetzt wesentlich weiter... dennnoch taucht ein Fehler auf, bei dem ich grad net weiß, wie ich ihn beheben soll...</p>
<pre><code class="language-cpp">wchar_t *servername = L&quot;\\\\AMD3200&quot;;
  DWORD read, totalremaining, resumeh, rc, i;

  resumeh = 0;
  USER_INFO_1 *buf, *cur;

  resumeh = 0;
  do
  {
    buf = NULL;
    rc = NetUserEnum(servername , 0, FILTER_NORMAL_ACCOUNT, (BYTE **) &amp;buf, 1024, &amp;EntriesRead, &amp;EntriesTotal, &amp;resumeh);
//    rc = NetUserEnum(PWideChar(&quot;\\AMD3200&quot;), 0, FILTER_NORMAL_ACCOUNT, (BYTE **) &amp;buf, 1024, &amp;EntriesRead, &amp;EntriesTotal, &amp;resumeh);
    if ( rc != ERROR_MORE_DATA &amp;&amp; rc != ERROR_SUCCESS ){
       break;
    }
    for ( i = 0, cur = buf; i &lt; read; ++ i, ++ cur ){
        //print_user( cur-&gt;usri1_name, cur-&gt;usri1_flags );
        String UserName = cur-&gt;usri1_name;
        clbUsers-&gt;Items-&gt;Add( (UserName) );//cur-&gt;usri1_flags );
    }
    if ( buf != NULL )
       NetApiBufferFree( buf );
  }
  while ( rc == ERROR_MORE_DATA );
</code></pre>
<p>Solange in usril_name was drin steht, gehts. Das is dummerweise nur einmal. Dann taucht in der ComboListBox Administrator auf. Beim nächsten Durchlauf ist die Var leer?, also &quot;&quot; steht bei der Info da... und dann steigt er beim Zuweis auf UserName aus... wieso, was kann ich machen, was mach ich falsch?</p>
<p>Flo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/721593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/721593</guid><dc:creator><![CDATA[Florianer]]></dc:creator><pubDate>Sat, 12 Feb 2005 16:34:57 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzerkonten auflisten on Sat, 12 Feb 2005 20:08:58 GMT]]></title><description><![CDATA[<p>So... nach vielem Ändern hab ich nun diesen wunderbaren Code</p>
<pre><code class="language-cpp">clbUsers-&gt;Clear();
  /*typedef*/
  struct TUserInfo1{
    LPWSTR usri1_name;
    LPWSTR usri1_password;
    DWORD  usri1_password_age;
    DWORD  usri1_priv;
    LPWSTR usri1_home_dir;
    LPWSTR usri1_comment;
    DWORD  usri1_flags;
    LPWSTR usri1_script_path;
  };
  TUserInfo1* PUserInfo1;

  Pointer ui1, pWork;
  DWORD EntriesRead, EntriesTotal;
  DWORD NetError;
  Integer Loop;

//  TStringArray Result;
  String Result[1];
  const WideString Server = &quot;\\\\AMD3200&quot;;
  DWORD filter = FILTER_NORMAL_ACCOUNT;
  DWORD resumeh;
  USER_INFO_1 *buf, *cur;

  pWork = NULL;
  if( Server.Length() != 0){
    try{
//    NetError = NetUserEnum(PWideChar(Server), 0, filter,           ui1,&amp;MAX_PREFERRED_LENGTH, &amp;EntriesRead, &amp;EntriesTotal,       NULL);
//    rc =       NetUserEnum(servername ,       0, FILTER_NORMAL_ACCOUNT, (BYTE **) &amp;buf, 1024, &amp;read,        &amp;totalremaining, &amp;resumeh );
//    NetError = NetUserEnum(PWideChar(Server), 0, filter,                (BYTE **) &amp;ui1, 1024, &amp;EntriesRead, &amp;EntriesTotal,   &amp;resumeh);
      NetError = NetUserEnum(PWideChar(Server), 0, filter,                (BYTE **) &amp;buf, 1024, &amp;EntriesRead, &amp;EntriesTotal,   &amp;resumeh);

//      if( (NetError == NERR_SUCCESS) &amp;&amp; (EntriesRead &gt; 0)){
      if( (NetError == ERROR_SUCCESS) &amp;&amp; (EntriesRead &gt; 0)){
        pWork = &amp;ui1;
        Result-&gt;SetLength(EntriesRead);
        for( Loop = 0, cur = buf; Loop &lt; (int)(EntriesRead-1); buf+= sizeof(Pointer), Loop++){
//          Result[Loop] = PUserInfo1(ui1)^.usri1_name;
//          Result[Loop] = PUserInfo1(ui1)-&gt;usri1_name;
//          Result[Loop] = PUserInfo1-&gt;usri1_name; // ui1-&gt;usri1_name;
//          clbUsers-&gt;Items-&gt;Add( Result[Loop] );
          clbUsers-&gt;Items-&gt;Add( cur-&gt;usri1_name );

//          Inc(Integer(ui1), sizeof(Pointer));
          Integer(ui1) += sizeof(Pointer);
        }
      }
    }
    __finally
    {
      NetApiBufferFree(pWork);
    }
  }
</code></pre>
<p>Ich hab versucht, dein Delphi-Code nach C++ zu portieren. Allerdings ist mir nicht so ganz klar, was an der Original-Result-Stelle passiert. Wahrscheinlich hab ich jetzt gnadenlos in dem Code rumgepfuscht... Steht in der For-Schleife der buf += drin, bekomm ich 2mal Hilfeassistent ausgegeben; stell ich den cur rein, kommt der Hilfeassistent nur einmal, beim 2. Durchlauf schmiert's mir wieder ab... eigentlich das gleiche Problem, wie mit dem 'alten' Code. Nur, vorher stand Administrator drin und schmierte ab. Klär mich bitte auf... ich hab jetzt erst mal Hunger... vor lauter programmieren hab ich heute seit 11 Uhr nur nen Liter Milch intus...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/721774</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/721774</guid><dc:creator><![CDATA[Florianer]]></dc:creator><pubDate>Sat, 12 Feb 2005 20:08:58 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzerkonten auflisten on Sun, 13 Feb 2005 14:41:32 GMT]]></title><description><![CDATA[<p>Äh sorry, aber das C-Gewurschtel übersteigt doch etwas meine C-Kenntnisse. Allerdings solltets du die Struktur nicht noch mal selber deklarieren müssen, die sollte schon in einer Header-Datei deklariert sein. Ich musste sie nur selber deklarieren, weil Delphi sie nicht kannte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/722236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/722236</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Sun, 13 Feb 2005 14:41:32 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzerkonten auflisten on Sun, 13 Feb 2005 19:34:28 GMT]]></title><description><![CDATA[<p>boar... ich glaub ich krieg die Motten! Ich habs.... wie's scheint. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> kann mich wer schlagen...?</p>
<p>Im letzten Codefragment hab ich USER_INFO_1 *buf definiert... sprech aber Level 0 statts 1 an. Alle USER_INFO_x Zahlen, sowie usriX_name Zahl und das Level müssen gleich sein.... unglaublich... demnach hab ich schon seit 2 Tagen eigentlich nen richtigen Code, nur die falschen Levelangaben, deswegen ich ein Absturz nach dem andren hatte... *puhh* ne 0 statts ne 1... meine Güte... das is ja net zu fassen... ich glaub, ich muss gleich weinen, ne ne ne... ok. Ich würd sagen, damit komm ich jetzt erst mal nen rießen Schritt weiter...</p>
<p>Flo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/722484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/722484</guid><dc:creator><![CDATA[Florianer]]></dc:creator><pubDate>Sun, 13 Feb 2005 19:34:28 GMT</pubDate></item><item><title><![CDATA[Reply to Benutzerkonten auflisten on Mon, 14 Feb 2005 00:36:52 GMT]]></title><description><![CDATA[<p>eine Frage hätt ich jetzt doch noch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Ich hab mich jetzt doch erst mal für das INFO_USER_2 entschieden (also Level 2), mal schaun, ob das hinterher auf nem eingeschränkten Benutzerkonto immer noch tut. Als Auflistung der Benutzerkonten bekomme ich nun</p>
<p>Administrator<br />
ASPNET<br />
Florian<br />
Kasia<br />
LNSS_MONITOR...</p>
<p>heraus, wenn ich mit</p>
<pre><code class="language-cpp">NetError = NetUserEnum(ServerName, 2, filter, (BYTE **) &amp;buf, 2048, &amp;EntriesRead, &amp;EntriesTotal, &amp;resumeh);

        for( Loop = 0, cur = (USER_INFO_2*)buf; Loop &lt; EntriesRead; ++cur, ++Loop){
          if( (cur-&gt;usri2_priv == 1)|(cur-&gt;usri2_priv == 2)){
            clbUsers-&gt;Items-&gt;Add( cur-&gt;usri2_name );
            CheckListBox1-&gt;Items-&gt;Add(cur-&gt;usri2_priv);
          }
</code></pre>
<p>in der <strong>if</strong> Typ 0 filtere. Das ist mir eigentlich nicht genug. Das Prog soll, wie schon erwähnt, die Konten auf einen eingeschränkten Konto ermitteln können, aber nur eingeschränkte und vollwertige Konten ausgeben, die als Personen sich anmelden. Also, Florian als Admin und Kasia als eingeschränktes Konto sollen angezeigt werden... der Rest net. Ich hab nur das Problem: Wie kann ich erkennen, was ich filtern muss?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/722669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/722669</guid><dc:creator><![CDATA[Florianer]]></dc:creator><pubDate>Mon, 14 Feb 2005 00:36:52 GMT</pubDate></item></channel></rss>