2017-07-29 1 views
-1

J'ai une collection de sites SharePoint Ex: - http://bp1amsapt229:14146/gom/mdrcsVous voulez créer une bibliothèque de documents dans SharePoint 2013 en utilisant shell de puissance qui a déjà Bibliothèque

et bibliothèques dans cette collection de sites

1.Généralités
2 .order

Je veux créer une nouvelle bibliothèque avec le nom « W_General » ayant la même propriété (vous pouvez juste dire dupliquer des) en tant que bibliothèque « générale », mais le « W_General » doit être vide (Aucun document uniquement les dossiers)

Veuillez noter que ces tailles de bibliothèques sont très grandes, donc le modèle n'est pas une bonne option. Je veux tout cela dans un script shell puissant. Aidez-nous

Répondre

0

Si vous n'utilisez pas de types de contenu, vous devrez recréer les champs de la bibliothèque source dans la nouvelle bibliothèque. Ceci est assez simple dans PowerShell en utilisant la méthode AddFieldAsXml d'un SPFieldCollection, comme dans l'exemple ci-dessous:

if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) { 
    Add-PSSnapin "Microsoft.SharePoint.PowerShell" 
} 
$web = get-spweb "http://bp1amsapt229:14146/gom/mdrcs" 
$source = $web.lists["General"] 
$newListId = $web.lists.add("W_General", $source.Description, $source.BaseTemplate) 
$web.Update() 
$list = $web.lists.GetList($newListId,$true) 
$source.fields | ForEach-Object{ 
    if(-not $_.FromBaseType){ 
     write-host "adding $($_.Title)... " -NoNewline -ForegroundColor Yellow 
     $dest.Fields.AddFieldAsXml($_.SchemaXml); 
     $dest.Update(); 
    }else{ 
     write-host "skipped adding $($_.Title)" -ForegroundColor Gray 
    } 
} 
$source.Views | ForEach-Object{ 
    write-host "adding view '$($_.Title)'... " 
    $dest.Views.Add($_.Title, $_.ViewFields, $_.Query, $_.RowLimit, $_.Paged, $_.DefaultView) 
    $dest.Update() 
} 
$web.Dispose() 

Notez que vous aurez également besoin d'ajouter des vues de la bibliothèque source à la bibliothèque de destination si on le souhaite.

Le script ci-dessus ne duplique aucun formulaire ou workflow associé à la bibliothèque.

0

Merci pour votre excellente solution. J'utilise le type de contenu et si j'active Parser je peux utiliser votre solution. Parser Code permettant

if ($ web.ParserEnabled -ne $ true) {

$ web.ParserEnabled = $ true $ web.Update()

}

Quelqu'un peut-il laissez-moi savoir si cela peut créer un effet sur ma bibliothèque d'enregistrements parce qu'elle est désactivée par défaut. Si je vais le désactiver après avoir créé ma bibliothèque en double, il annulera toutes les fonctionnalités qui ont été activées après l'avoir activé. Quel effet cela aura-t-il sur les métadonnées du document? S'il vous plaît expliquer