Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.57 KB | None | 0 0
  1. $user = $env:username
  2. $archive_dir = "C:\Outlook Archives"
  3. $network_share = "\\networkdrive\somewhere"
  4.  
  5. function uploadArchives {
  6.  
  7. $archives = Get-ChildItem $archive_dir
  8. foreach ($archive in $archives){
  9. if ([IO.Path]::GetExtension($archive) -eq ".pst"){
  10. $new_name = "$($network_share)\$($user)-$($archive.Name)"
  11. $source = $archive.Fullname
  12.  
  13. $source
  14. Copy-Item -Path "$source" -Destination "$new_name"
  15.  
  16.  
  17. # Change permissions to make read only
  18. # prevents 0365 and local from getting out of sync during transfer
  19.  
  20. Set-ItemProperty -Path "$source"-+- -Name IsReadOnly -Value $true
  21. }
  22.  
  23. }
  24.  
  25.  
  26. # Grab old possible location
  27. if (Test-Path "C:\Outlook Archive"){
  28. $archives = Get-ChildItem "C:\Outlook Archive"
  29.  
  30. foreach ($archive in $archives){
  31. if ([IO.Path]::GetExtension($archive) -eq ".pst"){
  32.  
  33. $new_name = "$($network_share)\$($user)-$($archive.Name)"
  34.  
  35. Write-Host
  36. $source = $archive.Fullname
  37.  
  38. $source
  39. Copy-Item -Path "$source" -Destination "$new_name"
  40.  
  41.  
  42. # Change permissions to make read only
  43. # prevents 0365 and local from getting out of sync during transfer
  44.  
  45. Set-ItemProperty -Path "$source" -Name IsReadOnly -Value $true
  46.  
  47. }
  48.  
  49.  
  50.  
  51. }
  52. }
  53. else {
  54. Write-Host "C:\Outlook Archive doesn't exist"
  55. }
  56.  
  57.  
  58. }
  59.  
  60. ## Generate csv need for O365 importing
  61. function generate-pst-csv {
  62. $archives = Get-ChildItem $network_share
  63. $csvContents = @() # Create the empty array that will eventually be the CSV file
  64.  
  65. foreach ($archive in $archives){
  66.  
  67. #clear out varibles
  68. $user_email = ""
  69. $folder = "" #folder to be placed in in 0365
  70. $og_file_name = "" #original file name
  71.  
  72. $flag = $false
  73.  
  74. foreach ($letter in $archive.Name.ToCharArray()){
  75. if($letter -eq "-"){ # change from username to original filename
  76. $flag = $true
  77. continue
  78. }
  79. if($flag -eq $true){
  80. if($letter -eq "."){
  81. break #ignore extension
  82. }
  83. $og_file_name += $letter
  84. }
  85. else {
  86. $user_email += $letter
  87. }
  88. }
  89.  
  90. $user_email += "@company.com"
  91. $folder = "/$($og_file_name)"
  92.  
  93. $row = New-Object System.Object # Create an object to append to the array
  94. $row | Add-Member -MemberType NoteProperty -Name "Workload" -Value "Exchange"
  95. $row | Add-Member -MemberType NoteProperty -Name "FilePath" -Value "$network_share"
  96. $row | Add-Member -MemberType NoteProperty -Name "Name" -Value "$archive"
  97. $row | Add-Member -MemberType NoteProperty -Name "Mailbox" -Value "$user_email"
  98. $row | Add-Member -MemberType NoteProperty -Name "IsArchive" -Value "True"
  99. $row | Add-Member -MemberType NoteProperty -Name "TargetRootFolder" -Value "$folder"
  100. $row | Add-Member -MemberType NoteProperty -Name "SPFileContainer" -Value ""
  101. $row | Add-Member -MemberType NoteProperty -Name "SPManifestContainer" -Value ""
  102. $row | Add-Member -MemberType NoteProperty -Name "SPSiteUrl" -Value ""
  103.  
  104. $csvContents += $row # append the new data to the array
  105. }
  106.  
  107. $csvContents | Export-CSV -Path C:\temp\user.csv
  108.  
  109.  
  110. $archives = Get-ChildItem $network_share
  111.  
  112. }
  113.  
  114. Start-Transcript -Path "C:\logs\collectArchives.log"
  115. uploadArchives
  116. Stop-Transcript
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement