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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | ############################################################### #Script Function : Script will download the resume from the Resume folder to the root folder where script has been executed. # Otput of the execute is the Resume folder and a log file , # log file contains detail of script execution. The log file name prefix with "Output_RMSS_BulkDownload_Log" # Log file also gives the list of GUID which is not available in the resume folder. # Date :05/Feb/2015 # Created by : Sanjiv kumar ################################################################ $snapinName = "Microsoft.SharePoint.PowerShell" if ((Get-PSSnapin | Where-Object {$_.Name -eq $snapinName }) -eq $NULL) { write-host "SharePoint SnapIn not loaded. Loading..." Add-PSSnapin $snapinName -ErrorAction SilentlyContinue } #Change the URL for different environment. $webUrl = "http://usdttdevbq005:1000/sites/Test/" $listUrl = "http://usdttdevbq005:1000/sites/Test/Resumes/" $destination=".\" $Datetime= Get-Date -Format dd_MM_yyyy_HH.mm.ss #Log file name $LogFileName=([string]::Concat("Output_RMSS_BulkDownload_Log" , $Datetime ,".txt")) $ListOfGuidNotFound="" ############################################################################## New-Item .\$LogFileName -ItemType file "variable initialization completed.." Add-Content .\$LogFileName -Value "---> variable initialization completed.." $web = Get-SPWeb -Identity $webUrl $list = $web.GetList($listUrl) "Document Library access.." Add-Content .\$LogFileName -Value "---> Document Library access.." $userGUIDCollection=import-Csv .\Input_CA_GUID.csv | where {$_.key -eq $keyword} |select UserGUID "Read the CSV.." Add-Content .\$LogFileName -Value "---> Read the CSV.." #Function start function ProcessFolder { param($folderUrl) $folder = $web.GetFolder($folderUrl) If($folder.Files.Count -ne 0) { foreach ($file in $folder.Files) { Try { # Start Try #Ensure destination directory $destinationfolder = $destination + "/" + $folder.Url if (!(Test-Path -path $destinationfolder)) { $dest = New-Item $destinationfolder -type directory "Create folder to disk." +$dest Add-Content .\$LogFileName -Value ([string]::Concat("---> Create folder to disk. : ",$dest)) } #Download file $binary = $file.OpenBinary() $stream = New-Object System.IO.FileStream($destinationfolder + "/" + $file.Name), Create $writer = New-Object System.IO.BinaryWriter($stream) "Start File writting to disk ." +$file.Name Add-Content .\$LogFileName -Value ([string]::Concat("---> Start File writting to disk : ",$file.Name)) $writer.write($binary) $writer.Close() "End File writting to disk ." +$file.Name Add-Content .\$LogFileName -Value ([string]::Concat("---> End File writting to disk : ",$file.Name)) } # End Try catch { $ErrorMessage = $_.Exception.Message Add-Content .\$LogFileName -Value ([string]::Concat("************************************")) Add-Content .\$LogFileName -Value ([string]::Concat("**********Error with writing files to folder*******************")) Add-Content .\$LogFileName -Value ([string]::Concat("System Message: ",$ErrorMessage)) Add-Content .\$LogFileName -Value ([string]::Concat("************************************")) continue } } #End of For } } #Function end #Main start #Download files in folders foreach($VaruserGUID in $userGUIDCollection) { "working for CSV GUID : " + $VaruserGUID.UserGUID.Trim().ToString() Add-Content .\$LogFileName -Value ([string]::Concat("`r`n---> working for CSV GUID : ",$VaruserGUID.UserGUID.Trim().ToString())) $varTemp = 0 foreach ($folder in $list.Folders) {# Start of For If($VaruserGUID.UserGUID.Trim().ToString() -eq $folder.DisplayName.Trim().ToString()) { "GUID Matches : " + $VaruserGUID.UserGUID.Trim().ToString() Add-Content .\$LogFileName -Value ([string]::Concat("---> GUID Matches with Resume folder name : ",$folder.DisplayName.Trim().ToString())) ############################################### ProcessFolder($folder.Url) $varTemp = 1 } }#End of For If($varTemp -eq 0) # Checking that the GUID is found in Resume folder, Yes or No { $ListOfGuidNotFound = $ListOfGuidNotFound.Trim().ToString() +"`r`n"+ $VaruserGUID.UserGUID.Trim().ToString() } } Add-Content .\$LogFileName -Value ([string]::Concat("`r`n*******START*** GUID Not Matches with Resume folder for GUID Start***********`r`n"+ $ListOfGuidNotFound +"*******END*** GUID Not Matches with Resume folder for GUID END***********`r`n")) |
Wednesday, May 6, 2015
Script will download the document from the document library folder to the root folder of the machine where script has been executed
Subscribe to:
Post Comments (Atom)
HTML
Script:
No comments:
Post a Comment