Query Active Directory for all accounts with expiry date set - batch-file

I'm trying to run a script in order to have a list of Users with the expiry date set, So where expiry date Doesn't equal "never" (from what i understand of AD)
I'm doing it for all disabled users with the following code
dsquery user -limit 0 -disabled
I understand there's some filters you can use with dsquery to get this?
edit: i know that i could look for all users. get the expire date attribute and filter after that. but i assume anything built into dsquery would be more efficient.
Thanks for any assistance.

Using LDIFDE.EXE yout can use :
ldifde -f c:\temp\expiry.ldf -d "OU=SomeOU,DC=Domain,DC=domainRoot" -r "(&(objectclass=user)(!(accountExpires=9223372036854775807)))" -l accountExpires
accountExpires is he date when the account expires. This value represents the number of 100-nanosecond intervals since January 1, 1601 (UTC). A value of 0 or 0x7FFFFFFFFFFFFFFF (9223372036854775807) indicates that the account never expires.
You will find here a graphical tool that allow you to read te value.

Related

Default Azure ADDS password policy maximum age set to 10 years

According to this document, the defaults for Azure AD user account passwords are as follows:
Account lockout duration: 30
Number of failed logon attempts allowed: 5
Reset failed logon attempts count after: 2 minutes
Maximum password age (lifetime): 90 days
The same document also details the steps to add a fine-grained policy. Checking the default policy that was created, it looks like this:
which shows that the Enforce maximum password age value is set to 36500.
Is the maximum password age actually 10 years? Or, is it just showing this value since it has not been set, and its actually 90 days, as per the Microsoft doc?
The default value of Maximum Password Age is 90 days as per Microsoft document but it is showing for you 36500 days because someone from member of the AAD DC Administrators group has created a custom password policy and it has applied to all users. That could be the reason you are seeing this as 36500 days.
Note: Password policies can only be applied to groups
Please refer the section of Create a custom password policy of the same document you were.

Is it possible to specify time zone for DB data source in PHPStorm?

I have UTC time zone set in my PostgreSQL and SELECT NOW() shows me the right date in psql console.
I use PHPStorm for development and its database console for accessing my database, but it uses different time zone (Europe/Moscow, which is the time zone of my Mac), and SELECT NOW() shows me the time in this time zone (and by the way, the date is wrong, because the Europe/Moscow time zone recently changed its offset to +3 from +4).
I have not found any information on how to tell PHPStorm to use the time zone configured in postgresql.conf instead of system's time zone. Is it possible?
verify your timezone with query
SELECT * FROM pg_timezone_names
now add phpstorm.vmoptions the config off timezone
-Duser.timezone=posix/America/Sao_Paulo
Apply changes, disconect, synchronize and verify whithselect now()
Well, I've found a solution, but it will affect every time-specific behavior in IDE, e.g. console logs will show datetime in UTC.
The idea is to pass a timezone to VM options. For that we need to modify a file and restart IDE.
For Mac OS X for the latest version of PHPStorm:
cp /Applications/PhpStorm.app/Contents/bin/phpstorm.vmoptions ~/Library/Preferences/PhpStorm2016.1/
Then add -Duser.timezone=UTC to the file, so that it looks something like that:
-Xms128m
-Xmx750m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=240m
-XX:+UseCompressedOops
-Duser.timezone=UTC
After phpstorm.vmoptions file modification with -Duser.timezone=UTC line I've seen correct return only from NOW() function but incorrect from the queries to a table like SELECT timestamp FROM ...
Only adding a variable timezoneAsRegion with false value to Advanced tab of connection without any phpstorm.vmoptions changes helped me to return correct timezone from the table.
Documentation link: https://www.jetbrains.com/help/phpstorm/2016.1/data-sources-and-drivers-dialog.html#advancedTab

Changing ADUC Account expiration date via command saves wrong date

I am trying to make a simple batch file to change a user's ADUC expiration to a specified date.
Using the below command the date always appears in ADUC as one day prior to what I set:
net user myname /expires:09/17/13 /domain
In ADUC, the date will be: 09/16/2013. No matter what, the date that appears in ADUC is one day before the day I set.
The documentation I found for this indicates
Note that the account expires at the beginning of the specified date.
So does this mean, If i wanted the account to be expired today, I would send the command for today and ADUC would interpret that as yesterday?
Thanks in advance, I just want to get this right.
As a wild guess, since you're UTC-savvy - is the date UTC date, so 130917T0000Z=130916T1900 local?

Check the expire date of every rows

I'll try to explain my problem:
I have one model Attorney with have many rows.
Every attorney have a date to expire in a date coloumn. Ex: 15/09/2013
I need to check, every day, if some attorney will expire in 30 days.
In other words, I need to check, every day, the date of every attorney registered and if the date of expire is less than 30 days, and grab the id of the attorney in this situation and execute an action.
I have nothing. How I do this?
You will probably need to use a cron job to execute these task every day.
To check if a record will expire in 30 days, you could use php strtotime to calc the final date. Then, you should compare if the expire date is lower or equals:
date('Y-m-d', strtotime( date('Y-m-d') . ' +30 day' ));
try the cron job for linux ;or schedule for windows . they will check the date field and do an action depend on your conditions , here is a link for example :
http://blog.nexcess.net/2013/05/09/cron-job-for-the-last-day-of-the-month/

What time zone does a scheduled job use for Preferred Start Time

We have a scheduled job that runs on the 1st of each month with a Preferred Start Time of 1am. The job was scheduled using the Salesforce interface (Develop | Apex Classes | Schedule Apex). When it runs, it sets a month field for records based on the System date (System.today();). Occasionally, the month is set wrongly, and I suspect it's due to the date variable set to the System date.
If I set the job to run at 1am, logged in as my User (with a time-zone set to CDT), using the interface, what value would be returned by System.today()? Would the current CDT date be returned, or the GMT date?
Scheduled jobs run as "system", but I think there's still a user context, which means Date.today() or System.today() would be in CDT.
Update:
Just tested this and DateTime.now() returns GMT values.
Another update:
The docs say Date.today() returns the date in the current user's time zone. Based on the test below, the system knows who the user is, and it knows the user's time zone, so Date.today() would be the current date in the user's time zone. I confirmed this by setting my time zone to +10, and the system returned 2012-03-15 for the date.
// Brisbane +10 time zone
global void execute(SchedulableContext SC) {
System.debug(DateTime.now()); // 2012-03-14 19:24:39
System.debug(DateTime.now().formatLong()); // 3/15/2012 5:24:39 AM AEST
System.debug(Date.today()); // 2012-03-15 00:00:00
System.debug(UserInfo.getUserName()); // dev1#jeremyross.org
}
From the APEX dev guide:
The System.Schedule method uses the user's timezone for the basis of all schedules.

Resources