J'utilise un script PowerShell pour récupérer l'URL du site racine et tous les sous-sites du site SharePoint et afficher l'URL, le titre et le nombre total d'utilisateurs comme indiqué ci-dessous.
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
$SiteCollections = Get-SPWebApplication "http://sourcevideo.f.com" |
Get-SPSite -Limit All
foreach ($Site in $SiteCollections) {
foreach ($Web in $Site.AllWebs) {
Write-Host "Url:"$web.URL "| Title:"$web.Title "| Users:" $web.AllUsers.Count
}
Write-Host ""
}
Comment le ferait-on Je peux exporter cela vers un CSV avec trois colonnes?
Code:
Url: http://sourcevideo.f.com | Title: The Source Video | Users: 3345 Url: http://sourcevideo.f.com/AGap | Title: A Gap | Users: 3345 Url: http://sourcevideo.f.com/AVideos | Title: Videos | Users: 417 Url: http://sourcevideo.f.com/BCt | Title: BC Japan | Users: 39
3 Réponses :
Pour développer la réponse de Lee, le code ressemblerait à ceci:
$WebInfo = @(
â$web.urlâ
â$web.titleâ
"$web.allusers.count"
)
$properties = @{'website url'=$WebInfo[0];'website title'=$WebInfo[1];'user count'=$WebInfo[2]}
$WebsiteObject = New-Object -TypeName PSObject -Property $properties
$WebsiteObject | Export-Csv -path "put path here" -NoTypeInformation
Je n'ai pas testé cela.
Veuillez éviter d'utiliser des guillemets intelligents “” , même si PS peut les gérer, il n'est pas recommandé de les utiliser. Tenez-vous en aux guillemets doubles normaux ""
Je pense que ce dont vous avez besoin est de créer un nouvel objet
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
$SiteCollections = Get-SPWebApplication "http://sourcevideo.f.com" | Get-SPSite -Limit All | %{
$Site = $_
$Site | %{
New-Object PSObject -Property @{Url=$_.URL;Title=$_.Title;Users=$_.AllUsers.Count}
}
} | export-csv -Path C:\Test\Output.csv -NoTypeInformation
Voici un script terminé que j'ai écrit mais que je peux tester car je n'ai pas le plugin sharepoint
New-Object PSObject -Property @{Url=$web.URL;Title=$web.Title;Users=$web.AllUsers.Count}
Vous n'itérez pas la propriété .Allwebs ? Et attribuer le tube entier à un var et en même temps se terminer par Export-Csv ? Le var sera vide. Mieux vaut éviter les alias dans les réponses.
Attribuez le foreach externe à une variable et
à l'intérieur, construisez un [PSCustomObject]
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
$SiteCollections = Get-SPWebApplication "http://sourcevideo.f.com" |
Get-SPSite -Limit All
$Data = foreach ($Site in $SiteCollections) {
foreach ($Web in $Site.AllWebs) {
[PSCustomObject]@{
Url = $web.URL
Title = $web.Title
Users = $web.AllUsers.Count
}
}
}
$Data | Export-Csv .\yourName.csv -NoTypeInformation
Merci beaucoup LotPings! Fonctionne comme un charme, y a-t-il un objet pour afficher les noms d'affichage des utilisateurs? Donc, au lieu d'obtenir le AllUsers.Count, y a-t-il une option de nom?
En général, utilisez l'applet de commande Get-Member pour afficher les méthodes et les propriétés disponibles d'un objet en y piping I.E. Get-ChildItem -File | Get-Member , je n'ai pas de site Sharepoint ici, donc je ne peux pas le faire pour vous.
Non c'est tout à fait ok, je suis en train d'apprendre aussi! J'apprécie l'aide.
la manière habituelle est de créer un nouvel objet avec les propriétés souhaitées, puis d'utiliser l'applet de commande
Export-CSVpour créer le CSV pour vous. cette applet de commande est conçue pour accepter une collection d'objets et la transformer en un fichier CSV approprié.Votre sortie est un csv avec
|comme délimiteur. Cela fonctionnerait juste pour les remplacer par un autre délimiteur et pour l'enregistrer sous .csv.