param ([string] $inputFolder='../input',[string] $outputFolder='../output', [string] $logFile='../logs/log.txt', [bool] $inPlace=$False) # Verify that the input and output folders exist write-host "Parameters:" write-host "InputFolder:" $inputFolder write-host "OutputFolder:" $outputFolder write-host "LogFile:" $logFile write-host "Decrypt In Place:" $inPlace if (-not((test-path $inputFolder) -and (test-path $outputFolder))) { write-host "Invalid input or output paths" exit; } # Trim and extraneous trailing slashes $inputFolder = $inputFolder.TrimEnd('/') $inputFolder = $inputFolder.TrimEnd('\\') $outputFolder = $outputFolder.TrimEnd('/') $outputFolder = $outputFolder.TrimEnd('\\') # number of files processed # get admin credentials $adminCredentials = Get-Credential # Install AIPService module if not already installed if (Get-Module -ListAvailable -Name AIPService) { Write-host "AIPService module already installed" } else { Write-Host "AIPService module not installed. Installing module..." Install-Module -Name AIPService Import-Module -Name AIPService } try { if (get-aipservice -eq "Enabled") { write-host "Already connected to AIPService" } } catch { "Not connected to AIPService. Connecting..." # Connect to AIPService Connect-AIPService -Credential $adminCredentials } $start_time = get-date # Decrypt folder if ($inPlace) { Unprotect-RMSFile -Folder "$inputFolder" -recurse -logFile $logFile -InPlace } else { Unprotect-RMSFile -Folder "$inputFolder" -OutputFolder "$outputFolder" -recurse -logFile $logFile } $end_time = get-date $run_time = $end_time - $start_time (Get-ChildItem -Path $inputFolder -recurse | Measure-Object).count (Get-ChildItem -path $outputFOlder -recurse | Measure-Object).count # Disconnect from AIP Service Write-Host "Disconnecting from service..." Disconnect-AIPService Write-Host "Run time was $run_time"