- forum
- PowerShell
- Entraide pour les débutants
- Script pour afficher le dernier utilisateur qui a ouvert un fichier
Question
Script pour afficher le dernier utilisateur qui a ouvert un fichier
- Roxyy
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 1 an 1 semaine #33638
par Roxyy
Bonjour !
Je suis en alternance et mon tuteur aimerait que je fasse un script qui permet à nos users de spécifier un fichier, et que cela leur renvoie le dernier utilisateur qui l'a ouvert ( notamment pour des soucis de fichier qui sont bloqués ou qui ne sont pas modifiables).
J'ai réussi à faire un premier script qui me donne malheureusement uniquement les groupes de l'utilisateur qui a ouvert en dernier le fichier spécifié.
Cependant j'aimerais que cela affiche le nom d'utilisateur.
Quelqu'un peut m'aider ?
Merci
Je suis en alternance et mon tuteur aimerait que je fasse un script qui permet à nos users de spécifier un fichier, et que cela leur renvoie le dernier utilisateur qui l'a ouvert ( notamment pour des soucis de fichier qui sont bloqués ou qui ne sont pas modifiables).
J'ai réussi à faire un premier script qui me donne malheureusement uniquement les groupes de l'utilisateur qui a ouvert en dernier le fichier spécifié.
# Demander à l'utilisateur de saisir le chemin du fichier
$file = Read-Host -Prompt "Entrez le chemin complet du fichier"
# Vérifier si le fichier existe
if (Test-Path $file -PathType Leaf) {
$fileSecurity = Get-Acl $file
# Obtenir le dernier utilisateur à avoir accédé au fichier
$lastUser = $fileSecurity.GetAccessRules($true, $true, [System.Security.Principal.SecurityIdentifier]) |
Select-Object -First 1 |
ForEach-Object { $_.IdentityReference.Translate([System.Security.Principal.NTAccount]).Value }
Write-Host "Le dernier utilisateur à avoir ouvert $file est : $lastUser"
} else {
Write-Host "Le fichier spécifié n'existe pas."
}
Cependant j'aimerais que cela affiche le nom d'utilisateur.
Quelqu'un peut m'aider ?
Merci
Connexion ou Créer un compte pour participer à la conversation.
- Dead
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 70
- Remerciements reçus 2
il y a 1 an 1 semaine #33642
par Dead
Réponse de Dead sur le sujet Script pour afficher le dernier utilisateur qui a ouvert un fichier
Bonjour,
Cela peut peut être vous aider. Je pense que votre $fileSecurity.GetAccessRules pose souci.
# Demander à l'utilisateur de saisir le chemin du fichier
$file = Read-Host -Prompt "Entrez le chemin complet du fichier"
# Vérifier si le fichier existe
if (Test-Path $file -PathType Leaf) {
$fileSecurity = Get-Acl $file
$lastAccess = $fileSecurity | Get-Acl | Select-Object -ExpandProperty Access |
Sort-Object -Property LastAccessTime -Descending |
Select-Object -First 1
if ($lastAccess) {
$lastUser = $lastAccess.IdentityReference.Translate([System.Security.Principal.NTAccount]).Value
Write-Host "Le dernier utilisateur à avoir ouvert $file est : $lastUser"
} else {
Write-Host "Aucune information d'accès trouvée pour $file."
}
} else {
Write-Host "Le fichier spécifié n'existe pas."
}
Cela peut peut être vous aider. Je pense que votre $fileSecurity.GetAccessRules pose souci.
# Demander à l'utilisateur de saisir le chemin du fichier
$file = Read-Host -Prompt "Entrez le chemin complet du fichier"
# Vérifier si le fichier existe
if (Test-Path $file -PathType Leaf) {
$fileSecurity = Get-Acl $file
$lastAccess = $fileSecurity | Get-Acl | Select-Object -ExpandProperty Access |
Sort-Object -Property LastAccessTime -Descending |
Select-Object -First 1
if ($lastAccess) {
$lastUser = $lastAccess.IdentityReference.Translate([System.Security.Principal.NTAccount]).Value
Write-Host "Le dernier utilisateur à avoir ouvert $file est : $lastUser"
} else {
Write-Host "Aucune information d'accès trouvée pour $file."
}
} else {
Write-Host "Le fichier spécifié n'existe pas."
}
Connexion ou Créer un compte pour participer à la conversation.
- Roxyy
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 1 an 1 semaine #33646
par Roxyy
Réponse de Roxyy sur le sujet Script pour afficher le dernier utilisateur qui a ouvert un fichier
Bonjour,
Merci pour votre message, je viens d'essayer avec votre script mais cela ne me renvois toujours que le groupe du dernier utilisateur qui a ouvert le fichier :/
Merci pour votre message, je viens d'essayer avec votre script mais cela ne me renvois toujours que le groupe du dernier utilisateur qui a ouvert le fichier :/
Connexion ou Créer un compte pour participer à la conversation.
- Dead
- Hors Ligne
- Membre senior
Réduire
Plus d'informations
- Messages : 70
- Remerciements reçus 2
il y a 1 an 1 semaine #33648
par Dead
Réponse de Dead sur le sujet Script pour afficher le dernier utilisateur qui a ouvert un fichier
Bonjour,
Et avec cela:
# Demander à l'utilisateur de saisir le chemin du fichier
$file = Read-Host -Prompt "Entrez le chemin complet du fichier"
# Vérifier si le fichier existe
if (Test-Path $file -PathType Leaf) {
$fileSecurity = Get-Acl $file
$lastAccess = $fileSecurity | Get-Acl | Select-Object -ExpandProperty Access |
Where-Object { $_.IdentityReference -is [System.Security.Principal.NTAccount] } |
Sort-Object -Property LastAccessTime -Descending |
Select-Object -First 1
if ($lastAccess) {
$lastUser = $lastAccess.IdentityReference.Translate([System.Security.Principal.NTAccount]).Value
Write-Host "Le dernier utilisateur à avoir ouvert $file est : $lastUser"
} else {
Write-Host "Aucune information d'accès trouvée pour $file."
}
} else {
Write-Host "Le fichier spécifié n'existe pas."
}
Avec cette modification, le script filtre les résultats pour s'assurer que l'IdentityReference est un objet de type [System.Security.Principal.NTAccount], ce qui devrait vous donner l'utilisateur spécifique plutôt que le groupe. Veuillez tester ce script et faites-moi savoir si cela répond à vos attentes.
Et avec cela:
# Demander à l'utilisateur de saisir le chemin du fichier
$file = Read-Host -Prompt "Entrez le chemin complet du fichier"
# Vérifier si le fichier existe
if (Test-Path $file -PathType Leaf) {
$fileSecurity = Get-Acl $file
$lastAccess = $fileSecurity | Get-Acl | Select-Object -ExpandProperty Access |
Where-Object { $_.IdentityReference -is [System.Security.Principal.NTAccount] } |
Sort-Object -Property LastAccessTime -Descending |
Select-Object -First 1
if ($lastAccess) {
$lastUser = $lastAccess.IdentityReference.Translate([System.Security.Principal.NTAccount]).Value
Write-Host "Le dernier utilisateur à avoir ouvert $file est : $lastUser"
} else {
Write-Host "Aucune information d'accès trouvée pour $file."
}
} else {
Write-Host "Le fichier spécifié n'existe pas."
}
Avec cette modification, le script filtre les résultats pour s'assurer que l'IdentityReference est un objet de type [System.Security.Principal.NTAccount], ce qui devrait vous donner l'utilisateur spécifique plutôt que le groupe. Veuillez tester ce script et faites-moi savoir si cela répond à vos attentes.
Connexion ou Créer un compte pour participer à la conversation.
- Roxyy
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 1 an 1 semaine #33649
par Roxyy
Réponse de Roxyy sur le sujet Script pour afficher le dernier utilisateur qui a ouvert un fichier
Non malheureusement toujours pas, le script ne me renvois que le groupe ://
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 1 an 1 semaine - il y a 1 an 1 semaine #33657
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Script pour afficher le dernier utilisateur qui a ouvert un fichier
Bonjour,
Je pense que vous faites fausse route car les ACLs d'un fichier ne contiennent pas - à ma connaissance - d'information au sujet de la personne qui a ouvert un fichier. Les ACLs contiennent des permissions d'accès.
Pour moi, il faut activer les logs d'audits et aller chercher l'information dans les logs.
Je pense que vous faites fausse route car les ACLs d'un fichier ne contiennent pas - à ma connaissance - d'information au sujet de la personne qui a ouvert un fichier. Les ACLs contiennent des permissions d'accès.
Pour moi, il faut activer les logs d'audits et aller chercher l'information dans les logs.
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Dernière édition: il y a 1 an 1 semaine par Arnaud Petitjean.
Connexion ou Créer un compte pour participer à la conversation.
- forum
- PowerShell
- Entraide pour les débutants
- Script pour afficher le dernier utilisateur qui a ouvert un fichier
Temps de génération de la page : 0.131 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Script pour afficher le dernier utilisateur qui a ouvert un fichier