Key Components of the Script
Module Dependency Check:
The script begins by ensuring that the necessary PowerShell module (PnP.PowerShell) is installed. This module is crucial for interfacing with SharePoint Online.
If the module is not present, the script automatically installs it, ensuring seamless execution regardless of the initial state of the environment.
Configurable Variables:
Variables like $SiteURL
, $DocumentLibraryPath
, $FileExtension
, and $SuffixToRemove
are defined at the start. These placeholders can be easily replaced with actual values specific to the environment, making the script highly adaptable to different scenarios.
Additionally, a $LogFilePath
is specified for logging the script’s operations, aiding in tracking and auditing.
Connecting to SharePoint Online:
The script uses Connect-PnPOnline
to establish a secure connection to the specified SharePoint Online site. This is a critical step for accessing and manipulating files in SharePoint.
Identifying and Processing Files:
It retrieves items from the SharePoint Recycle Bin, filtering for files with the specified extension (e.g., .faust
) and excluding certain patterns (like desktop.ini.id*
).
For each identified file, the script performs several operations:
- Checks if a file with the same name minus the ransomware’s suffix (
.faust
) already exists in the location.
- If the file does not exist, it restores the item from the Recycle Bin and renames it to remove the ransomware’s suffix.
- Resets the file version to its pre-encryption state using
Reset-PnPFileVersion
.
Error Handling and Logging:
Throughout the script, try-catch blocks are used to handle potential errors gracefully.
Both successful operations and errors are logged to the specified log file, providing a detailed record of the script’s actions and any issues encountered.
Progress Monitoring:
The script keeps track of the total number of files processed and the number remaining. This real-time feedback is crucial for monitoring the script’s progress.
Conclusion
This enhanced PowerShell script is not just a tool; it’s a testament to our proactive approach against cyber threats. With its modular design, comprehensive logging, and robust error handling, it empowers organizations to efficiently recover from ransomware attacks in SharePoint Online environments. By automating the restoration and decryption process, we save valuable time and resources, turning a potential disaster into a manageable situation.