Configure Document IDs to be unique across the farm
Document IDs are only guaranteed unique within a single site collection. SharePoint tries to ensure uniqueness by putting a random prefix in front of each Docuemnt ID, and setting that at the Site Collection level. However you can easily rationalize these, and make the Document IDs a bit easier to read. The script below assigns a prefix, and sets up SharePoint to reissue Document IDs. Note the actual regeneration of Document IDs will wait until the Document ID Assignment Timer Job runs. This job can take a long time to run, depending on the number of items in your Site Collections.
[system.reflection.assembly]::LoadWithPartialName("Microsoft.Office.DocumentManagement") $siteUrl = "http ://SharePoint/ManagedPath" #this is the header prefixing my Site Collections $LoopString = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z" #Here are the individual Site Collections $LoopStringArr = $LoopString.Split(“,”) foreach ($letter in $LoopStringArr) { $SiteName=$siteurl+$letter write-host $SiteName $Site = New-Object Microsoft.SharePoint.SPSite($SiteName) [Microsoft.Office.DocumentManagement.DocumentID]::EnableAssignment($Site,$false) #First disable, then enable DocID assignment [Microsoft.Office.DocumentManagement.DocumentID]::EnableAssignment($Site,$true) $rootweb=$site.rootweb $rootweb.properties["docid_msft_hier_siteprefix"]="Ins$letter" # This is the property holding the Document ID Prefix which we use to ensure uniqueness $rootweb.properties.Update() $rootweb.Update() [Microsoft.Office.DocumentManagement.DocumentID]::EnableAssignment($Site,$true,$true,$true) # now we can force all Document IDs to be reissued } |
Want to talk?
Drop us a line. We are here to answer your questions 24*7.