Get-date

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Cmdlet Get-Date
Domaine Manipulation des dates et heures
Voir aussi Calendrier.ps1

Get-Date renvoie un objet DateTime représentant la date et l'heure courantes, et sert de base à toute manipulation temporelle.

(Get-Date).GetType()

Manipulation

Get-Date | Get-Member -Force
(Get-Date).get_Minute()

Formats

(Get-Date).GetDateTimeFormats() | Sort-Object -Unique

# Formats standard
# d : date courte      D : date longue
# f : longue + h.abrég  F : longue + h.complète
# g : courte + h.abrég  G : courte + h.complète
# m,M : mois/jour       r,R : RFC
# s : triée             t : heure abrégée   T : heure complète
# u : universelle       U : universelle long   y,Y : mois année
Get-Date -Format r

Format personnalisé : d/dd/ddd/dddd (jour), M/MM/MMM/MMMM (mois), y/yy/yyyy (année), h/hh/H/HH (heure), m/mm (minute), f...ffff (fractions de seconde).

Nommer un fichier avec la date

New-Item -Type file -Name "Rapport_$(Get-Date -Format 'dd-MM-yyyy').txt"

# Format UNIX
Get-Date -UFormat 'Nous sommes le %a %d %Y, et il est %T'

Gestion en variable

$date = Get-Date -Year 2008 -Month 2 -Day 10

$date = Get-Date
$date.AddYears(1).DayOfWeek

$date = [DateTime]'10/03/1974'
$date.DayOfWeek

Comparaison

# Résultat en booléen
$d1 = (Get-Item fichier_1.txt).getCreationTime()
$d2 = (Get-Item fichier_2.txt).getCreationTime()
$d1.CompareTo($d2)

# Résultat en durée
New-TimeSpan $(Get-Date -Year 1985 -Month 10 -Day 6 -Hour 8 -Minute 30) $(Get-Date)
(New-TimeSpan $(Get-Date -Year 1985 -Month 10 -Day 6) $(Get-Date)).TotalSeconds

Modifier la date d'un fichier

$DateChoisie = (Get-Date -Year 1998 -Month 12 -Day 8 -Hour 5 -Minute 18 -Second 56)
$fic = Get-Item ./fichier.txt
$fic.Set_CreationTime($DateChoisie)
$fic.Set_LastAccessTime($DateChoisie)

Dates Active Directory

Active Directory stocke les dates en ticks (dix-millionièmes de seconde) depuis le 1er janvier 1601 à 0h00 (calendrier grégorien).

# Dernière connexion des utilisateurs
$ldapQuery = '(&(objectCategory=user))'
$de = New-Object System.DirectoryServices.DirectoryEntry
$ads = New-Object System.DirectoryServices.DirectorySearcher -ArgumentList $de,$ldapQuery
$complist = $ads.FindAll()

ForEach ($i in $complist) {
    $LastLogon = $i.Properties['lastlogon']
    $LastLogon = [int64]::Parse($LastLogon)
    # Date d'origine 1/1/1601 + ajout des ticks
    $date = (Get-Date -Year 1601 -Month 1 -Day 1 -Hour 0 -Minute 0 -Second 0)
    $date_derniere_connexion = $date.AddTicks($LastLogon)
    Write-Host $i.Properties['name'] ": $date_derniere_connexion"
}

Voir aussi