Sometimes, you want to hand over a .rtsz file but strip all passwords before doing that.
This can be quickly done by using the following PowerShell script.
Make sure you:
- configure the script by adapting the variables
- always work with a copy of the .rtsz file so that unintended changes don't destroy your file
Please note that the following variables need to be altered:
- "$documentPath" = The path to your .rtsz file
- "$outDocumentPath" = The path to the new password stripped .rtsz file
- "$documentPasswordPlain" = The current password used to lock the .rtsz file
- "$LockdownPasswordPlain" = The current lockdown password (unmark all lockdown references and refer to the remarks in the script)
# Unmark the following line if you want to use the module which ships with Royal TS V4 # If so, remove the Install-Module and Import-Module command below # Import-Module "${env:ProgramFiles(x86)}\code4ward.net\Royal TS V4\RoyalDocument.PowerShell.dll" Install-Module -Name RoyalDocument.PowerShell -Scope CurrentUser Import-Module -Name RoyalDocument.PowerShell # configuration of the script $documentPath = "document.rtsz" $outDocumentPath = "document_cleaned.rtsz" $documentPasswordPlain = "pwd_to_open_doc" # $LockdownPasswordPlain = "lockdown_pwd" $newPassword = "" # create a RoyalStore in memory $royalStore = New-RoyalStore -UserName ($env:USERDOMAIN + '\' + $env:USERNAME) # load a RoyalDocument in memory $documentPassword = $documentPasswordPlain | ConvertTo-SecureString -Force -AsPlainText # Unmark the following line if your document uses a Lockdown Password # $LockdownPassword = $LockdownPasswordPlain | ConvertTo-SecureString -Force -AsPlainText # Remark the following line if your document uses a Lockdown Password $royalDocument = Open-RoyalDocument -Store $royalStore -FileName $documentPath -Password $documentPassword # Unmark the following line if your document uses a Lockdown Password #$royalDocument = Open-RoyalDocument -Store $royalStore -FileName $documentPath -Password $documentPassword -LockdownPassword $LockdownPassword # get all password properties and change the password $passwords = $royalDocument.GetAllPasswordProperties() foreach ($p in $passwords) { $obj = $p.Item1 $pwd = $p.Item2 if($pwd) { $obj.SetPropertyValue($pwd, $newPassword) Write-Host "Resetting password for $($obj.Name) for $($pwd.Name)" } } Out-RoyalDocument -Document $royalDocument -FileName $outDocumentPath Close-RoyalDocument -Document $royalDocument