IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Script powershell avec LastwriteTime


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2018
    Messages : 3
    Par défaut Script powershell avec LastwriteTime
    Bonjour,
    Je suis novice en Powershell et tout autre langage.
    Je cherche à créer un script en PS pour me remonter dans un fichier les dossiers d'un share en remontant les acl et le lastwritetime par dossier (but vérifier les ACL sur les Share d'un serveur windows).
    J'ai trouvé un script qui me remonte les dossiers avec les acl mais je n'arrive pas à trouver la syntaxe pour le lastwritetime.
    ci-dessous le script trouvé:

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    $ErrorActionPreference = "SilentlyContinue"
    $a = New-Object -comobject Excel.Application*
    $a.visible = $True
     
    $b = $a.Workbooks.Add()
     
    $intRow=1
    $c = $b.Worksheets.Item(1)
    $c.Cells.Item($intRow,1) = "Folder"
    $c.Cells.Item($intRow,2) = "Compte/groupe"
    $c.Cells.Item($intRow,3) = "Type d'Acces"
    $c.Cells.Item($intRow,4) = "Droits"
     
     
    $d = $c.UsedRange
    $d.EntireColumn.AutoFit()|Out-Null
    $d.Interior.ColorIndex = 19
    $d.Font.ColorIndex = 11
    $d.Font.Bold = $True
     
     
    remove-variable arrayOfPath
    $depth=2
    $RootFolder="c:\"
     
    for($i=0; $i -le $depth;$i++)
    * {
    * $arrayOfPath += ,$RootFolder
    * $RootFolder=$RootFolder+"\"
    * }
    $arrayOfPath |get-childitem -directory |%{get-acl $_.fullname}|
    * %{
    * * * $intRow=$intRow+1 *
    * * * $c.Cells.Item($intRow, 1)=$_.path.tostring().replace("Microsoft.PowerShell.Core\FileSystem::","")
    * * * $droit=$_.access
    * * * $droit|%{$c.Cells.Item($intRow, 2)=$_.IdentityReference.tostring();$c.Cells.Item($intRow, 3)=$_.AccessControlType.tostring();$c.Cells.Item($intRow, 4)=$_.FileSystemRights.tostring();$intRow=$intRow+1}}
    * * * $time= * * * * * * * * * * * * * * * * * * * * * **
    $d.EntireColumn.AutoFit()|Out-Null
    merci pour votre aide

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Salut,
    dans ton cas voici une possible adaptation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $resultat='c:\temp'|
     get-childitem -directory |
     foreach-object {get-acl $_.fullname|add-member -name lastWritetime -memberType noteproperty -value $_.lastwritetime -passthru}|
     foreach-object {$_}
    
    $resultat[0].lastWritetime
    #jeudi 28 juillet 2016 19:19:22
    On ajoute l'information manquante, provenant d'un objet de type fichier, à la structure d'un objet de type ACL.
    En gros : 0bjet2=0bjet2 + Objet1.UnePropriété

    Donc la ligne suivante :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $arrayOfPath |get-childitem -directory |%{get-acl $_.fullname}|
    devient :
    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $arrayOfPath |get-childitem -directory |% {get-acl $_.fullname|add-member -name lastWritetime -memberType noteproperty -value $_.lastwritetime -passthru}|

  3. #3
    Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2018
    Messages : 3
    Par défaut
    Salut
    Je récupère bien le LatWritetime mais l'ACL ne fait que le premier compte/groupe.
    Je pense qu'il faut que je vois avec Foreach.
    Merci

  4. #4
    Candidat au Club
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2018
    Messages : 3
    Par défaut
    bonjour
    Je n'arrive toujours pas à récupérer ce que je veux dans mon fichier
    Le script me renvoie bien le Path, Groupe, Type d'acces, droit et Time mais que pour le premier groupe qu'il trouve.


    Folder Compte/groupe Type d'Acces Droits Time
    \\dcepfiler01\paris\sdp-paris\ActiveSync BUILTIN\Administrators Allow FullControl 27/04/2016 00:00:00

    \\dcepfiler01\paris\sdp-paris\Applications stp BUILTIN\Administrators Allow FullControl 22/03/2018 00:00:00

  5. #5
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par JLM1960 Voir le message
    bonjour
    Je n'arrive toujours pas à récupérer ce que je veux dans mon fichier
    Get-Acl renvoie tous les droits présent sur un objet fichier.
    Précise/reformule ce que tu veux faire et dans premier évite de coupler l'usage d'XL et PS.
    Dans la console exécute une à une chaque étape, tu devrais retrouver le résultat que tu recherches.

    Ensuite le code construit ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $arrayOfPath
    c:\
    c:\\
    c:\\\
    ça je ne le comprend pas

Discussions similaires

  1. [PowerShell] Lancement script PowerShell avec paramètres depuis .BAT
    Par sokai dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 24/01/2017, 13h59
  2. Executer un script powershell avec Perl
    Par Seb2913 dans le forum Langage
    Réponses: 13
    Dernier message: 26/01/2016, 14h17
  3. [2008R2] Sauvegarde d'une BD sur le cloud avec un script PowerShell
    Par Free10 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/11/2014, 09h42
  4. Ouvrir et lire un fichier excel avec un script powershell
    Par Shikamaru86 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 19/03/2013, 13h28
  5. Création logiciel avec script PowerShell
    Par skylex95 dans le forum VB.NET
    Réponses: 0
    Dernier message: 30/08/2012, 00h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo