Comment créer un tableau dans une boucle foreach

#Définition des variables
$RootFolder = "C:\temp"
$pathcsv = "C:\csv\results.csv"
$Folders = Get-ChildItem -Path $RootFolder -Recurse -Directory
$Result = @() #Creation du tableau

	foreach ($Folder in $Folders) {
        # Transformation du chemin du dossier
        $ItemFolder = ($Folder.PSParentPath -split "::", 0)[1]
        
        # Obtention de la taille du dossier
        $FolderInfo = Get-ChildItem $ItemFolder -Recurse | Measure-Object -Property Length -Sum
        $FolderSize = $FolderInfo.Sum
        $folderSizeMB = [System.Math]::Round((($folderSize) / 1MB), 2)
        
        # Nom du propriétaire
        $Owner = (Get-Acl -Path $ItemFolder).Owner
        
        # Date de derniere écriture
        $CreatedDate = (Get-Item $ItemFolder).LastWriteTime

        # Ajout des valeurs dans les colonnes spécifiées du tableau
        $Result += New-Object psobject -Property @{
                FolderName      = $Folder.Name
                FolderSizeMB    = $folderSizeMB
                Owner           = $Owner
                CreatedDate     = $CreatedDate
        }
    }

# Export du résultat dans un fichier csv
$Result | Export-Csv -Path $pathcsv -NoTypeInformation -Encoding UTF8

SharePoint Online – Mettre à jour l’auteur avec PnP

Pour l’avoir un peu cherché, je vous partage ce script PowerShell PnP qui permet la mise à jours de la propriété « Author » sur l’ensemble des éléments d’une liste SharePoint Online.

Vous remarquerez donc que la propriété « Author » ne peut pas être mise à jours indépendamment de « Editor ».

En ce qui concerne l’installation du module PowerShell PNP c’est ici

Vous trouverez ci-dessous un extrait de code à adapter en fonction de votre contexte

#Connect
Connect-PnPOnline -Url https://contoso.sharepoint.com/sites/test -UseWebLogin
#Variables
$List = Get-PnPList "Pages du site"
$Items = Get-PnPListItem -List $List
$EmailUser = "user@domain.com"
#Set
foreach ($Item in $Items){
	Set-PnPListItem -List $List -Identity $Item.Id -Values @{
	"Author"=$EmailUser;
	"Editor"=$EmailUser
	} -SystemUpdate
}
#Check
Get-PnPListItem -List $List -Fields "Title","FileLeafRef", "Modified", "Author" | %{new-object psobject -property  @{Id = $_.Id; Name = $_["FileLeafRef"]; Modified = $_["Modified"]; Author = $_["Author"]  }} | select Id, Name, Modified, Author

Source : https://ktnnsharepoint.wordpress.com/2019/11/17/auteur-date-publier-page/