#------------------------------------------------------------------------------------ # Script: PSE 8.1 Restore comments: .NET Framework 4.5 and WMF 5.1 required #------------------------------------------------------------------------------------ #Modify these paths to point to correct directories. $pseBin = "C:\Program Files (x86)\Schneider Electric\PowerSCADA Expert\v8.1" $pseData = "C:\ProgramData\Schneider Electric\PowerSCADA Expert\v8.1" #Location of Backups $sourceDir = "C:\PSE" # Self-elevate the script if required if (-Not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] 'Administrator')) { if ([int](Get-CimInstance -Class Win32_OperatingSystem | Select-Object -ExpandProperty BuildNumber) -ge 6000) { $CommandLine = "-File `"" + $MyInvocation.MyCommand.Path + "`" " + $MyInvocation.UnboundArguments Start-Process -FilePath PowerShell.exe -Verb Runas -ArgumentList $CommandLine Exit } } #Unzip data directory $zipFile = read-host "Enter the name of your zip file including the .zip extension in the PSE_Backups directory. eg PSE_Backup2018-05-03.zip" Write-Output "Restoring data directory, existing files will be overwritten. Restore times will vary depending on data directory size." $zipPath = $sourceDir + "\PSE_Backups\" + $zipFile Expand-Archive -Path $zipPath -DestinationPath $pseData -Force #Import Cipher $cipherPath = $pseBin + "\bin\PowerLogic.Cipher.dll" $assembly = [Reflection.Assembly]::LoadFile($cipherPath) $instance = New-Object PowerLogic.Cipher.StrongCipher -ArgumentList ($pseBin + "\Applications\AppServices\bin\") $instance.ImportKeyFromFile($sourceDir + "\AppServicesCipher.aes") $instance = New-Object PowerLogic.Cipher.StrongCipher -ArgumentList ($pseData + "\Config\") $instance.ImportKeyFromFile($sourceDir + "\SCADACipher.aes") $instance = New-Object PowerLogic.Cipher.StrongCipher -ArgumentList ($pseData + "\Applications\Profile Editor\") $instance.ImportKeyFromFile($sourceDir + "\ProfileEditorCipher.aes") #Copy files $destinationDir = $pseBin + "\Applications\AppServices\bin\" $ItemToCopy = $sourceDir + "\configuration.xml" Copy-item $ItemToCopy $destinationDir $ItemToCopy = $sourceDir + "\Services.xml" Copy-item $ItemToCopy $destinationDir