3 Replies Latest reply on Jun 7, 2006 5:31 AM by DSMForum

    [SOLVED] Abrfage ob User am Rechner angemeldet ist

    DSMForum Master
      Hallo NG,

      Mit welchem Befehl würdet ihr mit einem per Service geflaggten Projekt
      abfragen, ob ein User am Rechner angemeldet ist oder nicht?

      Danke für einen Tipp

      lg
      Thomas
        • 1. Re: [SOLVED] Abrfage ob User am Rechner angemeldet ist
          DSMForum Master
          Halloele,


          tomaldo wrote:
          > Hallo NG,
          >
          > Mit welchem Befehl würdet ihr mit einem per Service geflaggten Projekt
          > abfragen, ob ein User am Rechner angemeldet ist oder nicht?


          Mit den NetInstall WMI-Befehlen und der "UserName" Property von
          "Win32_ComputerSystem".
          Die ergibt laut MS-Doku stets den interaktiven Benutzer.

          Allerdings durfte ich (und wohl auch schon ein paar Leidensgenossen im
          Internet...) feststellen, dass diese WMI-Funktion nicht zuverlässig
          funktioniert. Daher bestimme ich ebenfalls mit WMI (Win32_Process)
          im Falle, dass die "UserName" property leer ist, zusätzlich noch,
          ob die "explorer.exe" läuft ...

          Axel
          • 2. Re: [SOLVED] Abrfage ob User am Rechner angemeldet ist
            GeorgGrubener Rookie
            Hallo,
            mit folgendem Script helfe ich mir, um festzustellen, ob ein Benutzer angemeldet ist:
            !userloggedon variable set to 'no'
            Set('userloggedon','no')
            !
            !Get the username of the last user to log onto the machine
            RegReadValue('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','DefaultUserName','lastusr')
            !
            !check for the existence of the last user's NTUSER.DAT
            !If it is not there no user is logged on and the profile has been deleted (per policy setting)
            If Exist('%SystemDrive%\Dokumente und Einstellungen\%lastusr%
            tuser.dat')
            ! If the profile exist but NTUSER.DAT is not in use, then the users is not logged in
            If IsFileInUse('%SystemDrive%\Dokumente und Einstellungen\%lastusr%
            tuser.dat')
            !  The profile exist and NTUSER.DAT is in user. This means a user is logged in
            Set('userloggedon','yes')
            !
            !This var is originally set to 'no' and then changed to 'yes' only if a user is logged on
            If %userloggedon%='yes'
            ! Determine if the logged on user would like to reboot
            MsgBoxEx('Do you want to reboot?','reboot','',mbYesNo)
            If %reboot%='No'
            !  The user doesn't want to reboot, then clear any reboot flag and record the project as installed
            ClearRestartFlags
            ExitProc(Done)
            !
            !In the event that no user is logged on or the user clicked 'Yes' to reboot the machine will now reboot
            InitiateSystemShutDown('0',issRebootAfterShutdown)

            EndProc

            Ich hoffe, es hilft weiter.

            Gruß
            Georg
            • 3. Re: [SOLVED] Abrfage ob User am Rechner angemeldet ist
              DSMForum Master
              Hallo Axel und Georg,
              Danke für die Tipps ich werde sie demnächst ausprobieren.

              Grüße
              Thomas


              Georg Gräbener schrieb:
              > Hallo,
              > mit folgendem Script helfe ich mir, um festzustellen, ob ein Benutzer angemeldet ist:
              > !userloggedon variable set to 'no'
              > Set('userloggedon','no')
              > !
              > !Get the username of the last user to log onto the machine
              > RegReadValue('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','DefaultUserName','lastusr')
              > !
              > !check for the existence of the last user's NTUSER.DAT
              > !If it is not there no user is logged on and the profile has been deleted (per policy setting)
              > If Exist('%SystemDrive%\Dokumente und Einstellungen\%lastusr%
              tuser.dat')
              > ! If the profile exist but NTUSER.DAT is not in use, then the users is not logged in
              >  If IsFileInUse('%SystemDrive%\Dokumente und Einstellungen\%lastusr%
              tuser.dat')
              > !  The profile exist and NTUSER.DAT is in user. This means a user is logged in
              >   Set('userloggedon','yes')
              > !
              > !This var is originally set to 'no' and then changed to 'yes' only if a user is logged on
              > If %userloggedon%='yes'
              > ! Determine if the logged on user would like to reboot
              >  MsgBoxEx('Do you want to reboot?','reboot','',mbYesNo)
              >  If %reboot%='No'
              > !  The user doesn't want to reboot, then clear any reboot flag and record the project as installed
              >   ClearRestartFlags
              >   ExitProc(Done)
              > !
              > !In the event that no user is logged on or the user clicked 'Yes' to reboot the machine will now reboot
              > InitiateSystemShutDown('0',issRebootAfterShutdown)
              >
              > EndProc
              >
              > Ich hoffe, es hilft weiter.
              >
              > Gruß
              > Georg