Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $user = $env:username
- $archive_dir = "C:\Outlook Archives"
- $network_share = "\\networkdrive\somewhere"
- function uploadArchives {
- $archives = Get-ChildItem $archive_dir
- foreach ($archive in $archives){
- if ([IO.Path]::GetExtension($archive) -eq ".pst"){
- $new_name = "$($network_share)\$($user)-$($archive.Name)"
- $source = $archive.Fullname
- $source
- Copy-Item -Path "$source" -Destination "$new_name"
- # Change permissions to make read only
- # prevents 0365 and local from getting out of sync during transfer
- Set-ItemProperty -Path "$source"-+- -Name IsReadOnly -Value $true
- }
- }
- # Grab old possible location
- if (Test-Path "C:\Outlook Archive"){
- $archives = Get-ChildItem "C:\Outlook Archive"
- foreach ($archive in $archives){
- if ([IO.Path]::GetExtension($archive) -eq ".pst"){
- $new_name = "$($network_share)\$($user)-$($archive.Name)"
- Write-Host
- $source = $archive.Fullname
- $source
- Copy-Item -Path "$source" -Destination "$new_name"
- # Change permissions to make read only
- # prevents 0365 and local from getting out of sync during transfer
- Set-ItemProperty -Path "$source" -Name IsReadOnly -Value $true
- }
- }
- }
- else {
- Write-Host "C:\Outlook Archive doesn't exist"
- }
- }
- ## Generate csv need for O365 importing
- function generate-pst-csv {
- $archives = Get-ChildItem $network_share
- $csvContents = @() # Create the empty array that will eventually be the CSV file
- foreach ($archive in $archives){
- #clear out varibles
- $user_email = ""
- $folder = "" #folder to be placed in in 0365
- $og_file_name = "" #original file name
- $flag = $false
- foreach ($letter in $archive.Name.ToCharArray()){
- if($letter -eq "-"){ # change from username to original filename
- $flag = $true
- continue
- }
- if($flag -eq $true){
- if($letter -eq "."){
- break #ignore extension
- }
- $og_file_name += $letter
- }
- else {
- $user_email += $letter
- }
- }
- $user_email += "@company.com"
- $folder = "/$($og_file_name)"
- $row = New-Object System.Object # Create an object to append to the array
- $row | Add-Member -MemberType NoteProperty -Name "Workload" -Value "Exchange"
- $row | Add-Member -MemberType NoteProperty -Name "FilePath" -Value "$network_share"
- $row | Add-Member -MemberType NoteProperty -Name "Name" -Value "$archive"
- $row | Add-Member -MemberType NoteProperty -Name "Mailbox" -Value "$user_email"
- $row | Add-Member -MemberType NoteProperty -Name "IsArchive" -Value "True"
- $row | Add-Member -MemberType NoteProperty -Name "TargetRootFolder" -Value "$folder"
- $row | Add-Member -MemberType NoteProperty -Name "SPFileContainer" -Value ""
- $row | Add-Member -MemberType NoteProperty -Name "SPManifestContainer" -Value ""
- $row | Add-Member -MemberType NoteProperty -Name "SPSiteUrl" -Value ""
- $csvContents += $row # append the new data to the array
- }
- $csvContents | Export-CSV -Path C:\temp\user.csv
- $archives = Get-ChildItem $network_share
- }
- Start-Transcript -Path "C:\logs\collectArchives.log"
- uploadArchives
- Stop-Transcript
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement