Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
#!/usr/local/bin/perl -w #-*-perl-*- # use strict; use Win32API::Net; use vars qw ( %UserInfo @WhoList ); use Win32::NetAdmin; my ($VERSION) = '$Revision: 1.0 $' =~ /([.\d]+)/; my $warnings = 0; # Print a usuage message on a unknown option. $SIG {__WARN__} = sub { if (substr ($_ [0], 0, 14) eq "Unknown option") {die "Usage"}; require File::Basename; $0 = File::Basename::basename ($0); $warnings = 1; warn "$0: @_"; }; $SIG {__DIE__} = sub { require File::Basename; $0 = File::Basename::basename ($0); if (substr ($_ [0], 0, 5) eq "Usage") { die <<EOF; $0 (NT Perl bin utils) $VERSION $0 [ userid ] [ -h ] EOF } die "$0: @_"; }; die "Usage" if ( $ARGV[0] && $ARGV[0] eq "-h" ); my $Server = ""; # localhost only my $Level = "11"; # make UserGetInfo() return lastLogon my $Filter = "0"; # I do not know what this does and why # it must be numeric. Win32::NetAdmin::GetUsers ( $Server, $Filter, \@WhoList ) or die "$^E\n" unless $ARGV[0]; if ( exists $ARGV[0] ) { $WhoList[0] = $ARGV[0] if Win32::NetAdmin::UsersExist ( $Server, $ARGV[0] ) or exit; } foreach my $UserName ( @WhoList ) { my ( $LastLogin, $NameLength ) = UserGetInfo( $UserName ); printf "%s %$ {NameLength}s: %s\n", $UserName, "Last login", $Last +Login; } sub UserGetInfo { my $userid = shift ( @_ ); my $length = 25 - length $userid; my $last; if ( Win32API::Net::UserGetInfo ( $Server, $userid, $Level, \%UserInfo ) ) { if ( $UserInfo{lastLogon} == 0 ) { $last = "never"; } else { $last = localtime ( $UserInfo{lastLogon} ); } } else { $last = "unknown"; } return ( $last, $length ); } =pod =head1 NAME B<lastlogin> -- show the last date on which each person logged in. =head1 SYNOPSIS B<lastlogin> [ I<userid> ] [ -h ] =head1 DESCRIPTION B<lastlogin> displayes the last logon date for each user in the local +host's user database. =head2 OPTIONS The following options are supported: =over 4 =item userid List the lastlogon information for a single user. =item -h Display syntax. =back =head1 EXAMPLE Below are exampls of B<lastlogin>: C:\> lastlogin Guest Guest Last login: never C:\> lastlogin Administrator Last login: Thu Jun 22 09:39:28 2000 Guest Last login: never IUSR_IKIRU Last login: Mon Jun 19 08:16:13 2000 IWAM_IKIRU Last login: never sfuuser Last login: never =head1 ENVIRONMENT The working of B<lastlogin> is not influenced by any environment varia +bles. =head1 BUGS B<lastlogin> isn't as nice as I would like, but Win32 isn't Unix, now +is it? This I<really> doesn't like Samba domain controllers, which i +s why I added the 'unknown' entry in the output. Samba causes problems, which is why an entry might return "unknown". =head1 STANDARDS It does not make sense to talk about standards in a B<lastlogin> manua +l page. =head1 REVISION HISTORY lastlogin Revision 1.0 2000/06/22 12:13:22 idnopheq Initial revision =head1 AUTHOR The Perl implementation of B<lastlogin> was written by Dexter Coffin, +I<idnopheq@home.com>. =head1 COPYRIGHT and LICENSE This program is copyright by Dexter Coffin 2000. This program is free and open software. You may use, copy, modify, dis +tribute, and sell this program (and any modified variants) in any way you wish, provided you do not restrict others from doing the same. =head1 SEE ALSO =head1 NEXT TOPIC =cut

In reply to lastlogin for NT/2K by idnopheq

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others avoiding work at the Monastery: (7)
As of 2024-04-18 07:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found