Question convertir  System.Int32

Plus d'informations
il y a 9 ans 3 mois #23081 par hays
Réponse de hays sur le sujet Re:convertir  System.Int32
Bonjour Laurent je vous remercie pour votre aide.

finalement j'ai remarqué que je n'avais besoin que de quelques informations, finalement le script change de tête.

en réalité il y a pas grand chose qui a changé du script d'origine :)

quoi qu'il en soit je comprend la phrase

[code:1] découpler le traitement de l'affichage des données du traitement: 1)Get-MesDonnées 2)Format-MesDonnées[/code:1]

espérant savoir le faire a chaque fois.

voici le script


[code:1]import-module activedirectory
$collection = Get-ADOrganizationalUnit -Filter 'Name -like \"OU*\"'# | FT Name, DistinguishedName -A

foreach ($item in $collection)
{
$ouname = $item.Name
$OU = $item.Name
$utilisateurs = Get-ADUser -Filter * -SearchBase $item.DistinguishedName -Properties *
$actifs = $utilisateurs | Where-Object {$_.enabled -eq $true}
$inactifs = $utilisateurs | Where-Object {$_.enabled -eq $false}
$date = Get-Date
$connectes = $actifs | Where-Object {($_.lastlogondate -lt $date.AddMonths(-1)) -and ($_.lastlogondate -ne $null)}
$tableau = @()
foreach ($user in $connectes)
{
$ajout = New-Object Psobject
$ajout | Add-Member -Name \"OU\" -MemberType Noteproperty -value $ouname
if (!$actifs.count)
{
$ajout | Add-Member -Name \"actifs\" -MemberType Noteproperty -value 0
}
else
{
$ajout | Add-Member -Name \"actifs\" -MemberType Noteproperty -value $actifs.count
}
if (!$inactifs.count)
{
$ajout | Add-Member -Name \"inactifs\" -MemberType Noteproperty -value 0
}
else {
$ajout | Add-Member -Name \"inactifs\" -MemberType Noteproperty -value $inactifs.count
}
if (!$connectes.count)
{
$ajout | Add-Member -Name \"depuis_un_mois\" -MemberType Noteproperty -value 0
}
else {$ajout | Add-Member -Name \"un mois\" -MemberType Noteproperty -value $connectes.count}
$tableau += $ajout
}
$tableau

}[/code:1]

et je lance

[code:1].\rapport3.ps1 | Export-Csv -NoTypeInformation -UseCulture -Path ./user.csv -Encoding unicode[/code:1]

reste à trouver une façon de générer un table excel mais c'est une autre histoire

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 3 mois #23100 par hays
Réponse de hays sur le sujet Re:convertir  System.Int32
je vais abusé j'aurais bien une autre question

je m'embêtais à faire une soustraction au début pour récupérer le nombre d'utilisateurs connecté pendant le mois mais j'imagine qu'il y a plus simple ou plus adapté au langage vue que je récupère avec cette commande

[code:1]Where-Object {($_.lastlogondate -lt $date.AddMonths(-1)) -and ($_.lastlogondate -ne $null)}[/code:1]

les utilisateurs qui ne se son pas connecter depuis plus d'un mois je devrais pouvoir récupérer les utilisateurs connectés justement dans le mois sans avoir à faire une soustraction ?

sinon en parallèle pour la création de fichier excel (tableau) j'ai trouvé le module PSExcel-master.zip qui est vraiment cool
espérant que ça aide les débutants comme moi qui passe par la :)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 3 mois #23103 par hays
Réponse de hays sur le sujet Re:convertir  System.Int32
[code:1] Where-Object {($_.lastlogondate -gt $date.AddMonths(-1)) -and ($_.lastlogondate -ne $null)}[/code:1]

finalement je vais réfléchir avant de demander la prochaine fois :unsure: :laugh:

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 3 mois #23118 par hays
Réponse de hays sur le sujet Re:convertir  System.Int32
bonjour,

suite a des versifications je me suis rendu compte que ce que j'avais fait ne renvoyais pas les bonne valeur à chaque fois.

cette variable me renvoyait le type microsoft aduseraccount
[code:1]$connectes = $actifs | Where-Object {($_.lastlogondate -lt $date.AddMonths(-1)) -and ($_.lastlogondate -ne $null)}[/code:1]

et cette variable
[code:1]$connectesMois = $utilisateurs | Where-Object {($_.lastlogondate -gt $date.AddMonths(-1)) -and ($_.lastlogondate -ne $null)}[/code:1]

un type system.array résultat je ne pouvais pas faire variable.count sur la première et selon l'item renvoyé par la collection j'avais un type different faussant les données.count une fois sur trois ou quatre.

résultat j'ai fait différemment voici le code modifier qui renvoi bien les bonne données à cjhaque fois

[code:1]
import-module activedirectory
$collection = Get-ADOrganizationalUnit -Filter 'Name -like \"OU*\"'# | FT Name, DistinguishedName -A
[datetime]$dat1601 = '01/01/1601'
$tableau = @()
foreach ($item in $collection)
{

$ouname = $item.Name
$OU = $item.Name
$utilisateurs = Get-ADUser -Filter * -SearchBase $item.DistinguishedName -Properties *
$actifs = $utilisateurs | Where-Object {$_.enabled -eq $true}
$inactifs = $utilisateurs | Where-Object {$_.enabled -eq $false}
$date = Get-Date
$connectes = $utilisateurs | Where-Object {($_.lastlogondate -lt $date.AddMonths(-1)) -and ($_.lastlogondate -ne $null) -and ($_.lastlogondate -ne $dat1601)}
$conn_depuis_un_mois = $utilisateurs | Where-Object {($_.lastlogondate -lt $date.AddMonths(-1)) -and ($_.lastlogondate -ne $null)}
$connectesMois = $utilisateurs | Where-Object {($_.lastlogondate -gt $date.AddMonths(-1)) -and ($_.lastlogondate -ne $null)}

$tableau1 = @()
$tableau2 = @()
$tableau3 = @()
$tableau4 = @()

foreach ($user in $actifs)
{
$ajout4 = New-Object Psobject
if (!$user)
{
$ajout4 | Add-Member -Name \"Nom\" -MemberType Noteproperty -value $user.name
}
else
{
$ajout4 | Add-Member -Name \"Nom\" -MemberType Noteproperty -value $user.name
#$count_connectes++
$tableau4 += $ajout4
}
}

foreach ($user_inactifs in $inactifs)
{
$ajout1 = New-Object Psobject
if (!$user_inactifs)
{
$ajout1 | Add-Member -Name \"Nom\" -MemberType Noteproperty -value $user_inactifs.name
}
else
{
$ajout1 | Add-Member -Name \"Nom\" -MemberType Noteproperty -value $user_inactifs.name
#$count_connectes++
$tableau1 += $ajout1
}

}

foreach ($item_depuis_un_mois in $conn_depuis_un_mois)
{
$ajout2 = New-Object Psobject
if (!$item_depuis_un_mois)
{
$ajout2 | Add-Member -Name \"Nom\" -MemberType Noteproperty -value $item_depuis_un_mois.name
}
else
{
$ajout2 | Add-Member -Name \"Nom\" -MemberType Noteproperty -value $item_depuis_un_mois.name
$tableau2 += $ajout2
}
#$count_connectes++

#$count_depuis_un_mois++
}

foreach ($item_connectesMois in $connectesMois)
{
$ajout3 = New-Object Psobject
if (!$item_connectesMois)
{
$ajout3 | Add-Member -Name \"Nom\" -MemberType Noteproperty -value $item_connectesMois.name
}
else {
$ajout3 | Add-Member -Name \"Nom\" -MemberType Noteproperty -value $item_connectesMois.name
$tableau3 += $ajout3
}
#$count_connectesMois++
}


$ajoutext = New-Object Psobject
$ajoutext | Add-Member -Name \"OU\" -MemberType Noteproperty -value $ouname

if (!$tableau1.count)
{
$ajoutext | Add-Member -Name \"desactivé\" -MemberType Noteproperty -value 0
}
else
{
$ajoutext | Add-Member -Name \"desactivé\" -MemberType Noteproperty -value $tableau1.count
}

if (!$tableau2.count)
{
$ajoutext | Add-Member -Name \"conn_depuis_un_mois\" -MemberType Noteproperty -value 0
}
else
{
$ajoutext | Add-Member -Name \"conn_depuis_un_mois\" -MemberType Noteproperty -value $tableau2.count
}

if (!$tableau3.count)
{
$ajoutext | Add-Member -Name \"connectesMois\" -MemberType Noteproperty -value 0
}
else
{
$ajoutext | Add-Member -Name \"connectesMois\" -MemberType Noteproperty -value $tableau3.count
}

if (!$tableau4.count)
{
$ajoutext | Add-Member -Name \"actifs\" -MemberType Noteproperty -value 0
}
else
{
$ajoutext | Add-Member -Name \"actifs\" -MemberType Noteproperty -value $tableau4.count
}

$tableau += $ajoutext


}
$tableau

[/code:1]

je suis certain qu'il y a mieux à faire d’ailleurs je suis preneur pour toute évolution.

en espérant que ça pourra aider tout débutant comme moi qui cherche à récupérer les même données.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.036 secondes
Propulsé par Kunena