A comprehensive collection of PowerShell scripts for various system administration and automation tasks including AWS management, Office 365 administration, FileZilla FTP management, and general utilities.
- Overview
- Root Scripts
- AWS Scripts
- FileZilla Management
- Inventory Scripts
- Office 365 Scripts
- Requirements
- Usage
- Contributing
This repository contains automation scripts for Windows system administrators, focusing on cloud services, FTP management, and Office 365 administration. Each script is designed to simplify common administrative tasks and improve workflow efficiency.
Generates secure random passwords using a dictionary-based approach.
Features:
- Generates multiple passwords at once
- Optional symbol inclusion
- Uses a word list for memorable passwords
- Automatically downloads required word list if missing
Usage:
Generate-Password -Count 5
Generate-Password -Count 5 -symbolCreates and manages encrypted credential keys for secure script authentication.
Utility script for troubleshooting and fixing Microsoft Edge browser issues.
Reloads and updates Microsoft Deployment Toolkit (MDT) Windows PE boot images.
Features:
- Updates WDS boot images (x86 and x64)
- Automated deployment share synchronization
- Imports MDT PowerShell module
Dictionary word list used by the password generation script (5000+ four-letter words).
Located in the /AWS/ directory.
Retrieves information about AWS EC2 instances.
Maps and displays AWS EBS (Elastic Block Store) volumes and their attachments.
Located in the /FileZilla/ directory. These scripts enable user-friendly FTP account management without requiring direct access to the FileZilla Server console.
- ✅ Allow users to create FTP accounts in a standardized way
- ✅ Create FTP accounts with minimal permissions
- ✅ Reset FTP account passwords without administrator intervention
- ✅ Automatic account disabling after inactivity period
- ✅ Automated archiving and cleanup of disabled accounts
- ✅ Email notifications for account expiration warnings
Creates new FileZilla FTP user accounts with standardized settings.
Resets passwords for existing FileZilla FTP accounts and reactivates disabled accounts.
Automated maintenance script that:
- Monitors account last usage dates
- Sends warning emails before disabling accounts
- Automatically disables inactive accounts
- Archives folders for disabled accounts
- Cleans up old accounts
Reloads the FileZilla Server configuration after making changes.
Configures PowerShell session permissions for FileZilla administration.
Note: See /FileZilla/ReadMe.md for detailed setup instructions.
Credits: Scripts adapted from FileZilla Forum
Located in the /Inventory/ directory.
Comprehensive system information gathering script.
Features:
- Hardware inventory collection
- Monitor manufacturer detection
- System configuration reporting
- Network adapter information
Located in the /Office365/ directory. Scripts for managing Microsoft 365 environments.
Interactive GUI tool for checking Office 365 license usage and availability.
Features:
- Visual display of license consumption
- Shows remaining licenses
- Active Units vs. Consumed Units comparison
- Sorted by SKU
General Office 365 management utilities.
Manages mailbox delegation and access permissions.
Simplified connection script for Office 365 PowerShell sessions.
Verifies Office 365 module installation and prerequisites.
Advanced mailbox permission management utility (Version 1.0).
Batch removal utility for Office 365 user accounts.
- Windows PowerShell 5.1 or PowerShell 7+
- Administrator privileges (for most scripts)
- Appropriate module dependencies per script category
- MSOnline PowerShell Module or Microsoft.Graph modules
- Office 365 administrator credentials
- AWS Tools for PowerShell
- Configured AWS credentials
- FileZilla Server installed
- Remote PowerShell enabled
- Appropriate permissions configured
- Microsoft Deployment Toolkit installed
- Windows Deployment Services (WDS) access
- Clone or download this repository to your local machine
- Review the script you want to use for any required parameters
- Execute scripts with appropriate permissions:
# Run as Administrator
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# Navigate to script directory
cd path\to\Powershell-Scripts
# Execute desired script
.\ScriptName.ps1 -Parameter Value- Always test scripts in a non-production environment first
- Review script parameters and required permissions
- Keep scripts updated with your environment-specific configurations
- Maintain secure credential storage practices
- Document any customizations made to scripts
- Never commit credentials or API keys to the repository
- Use secure credential storage mechanisms (e.g.,
Credentials-CreateKey.ps1) - Review scripts before execution in production environments
- Follow principle of least privilege when assigning permissions
Contributions are welcome! If you have improvements or additional scripts:
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
Please review individual scripts for specific licensing information. Scripts adapted from external sources maintain their original licenses and attributions.
- FileZilla forum community for FTP management scripts
- Microsoft documentation and examples
- AWS PowerShell documentation
- Community contributors
Note: Always ensure scripts are compatible with your environment and organization's policies before deployment.