A PowerShell script for downloading common software installers for offline installation. This tool uses winget to fetch download URLs and automatically downloads the latest versions of specified software, making it easier to maintain an offline software repository.
- ✨ Downloads software installers using winget
- 📁 Creates organized folders for each software
- 📥 Customizable file names for downloads
- 📊 Shows download progress
- 📝 Generates detailed log file
- 📈 Provides download statistics in table format
- 🔄 Automatic retry on failed downloads
- 🎯 Supports custom file naming
- 📦 Creates structured software package directory
- Windows 10/11;windows server 2016/2019/2022/2025
- PowerShell 5.1 or higher
- Winget package manager
- Internet connection
- Sufficient disk space in Downloads folder
- WeCom
- DingTalk
- 7-Zip
- Microsoft Edge
- 网易灵犀办公
- 搜狗输入法
- 搜狗五笔输入法
- Microsoft Visual C++ Redistributable 2015-2022 (x86/x64)
- Clone this repository:
git clone https://github.com/YOUR_USERNAME/software-downloader.git
cd software-downloader
- Run the script:
.\download_software.ps1
- Check the Downloads\SoftwarePackages directory for downloaded installers
================= Download Statistics =================
Successfully downloaded software:
Name Version Path
---- ------- ----
QQ 9.7.3 C:\Users\...\SoftwarePackages\QQ\QQ.exe
WeChat 3.9.0 C:\Users\...\SoftwarePackages\WeChat\WeChatSetup.exe
7-Zip 23.01 C:\Users\...\SoftwarePackages\7-Zip\7z.exe
Edge 121.0.2277.83 C:\Users\...\SoftwarePackages\Edge\MicrosoftEdge_X64.exe
DingTalk 7.0.50 C:\Users\...\SoftwarePackages\DingTalk\DingTalk.exe
Summary:
Total successful: 5
Total failed: 0
==================================================
Log files are automatically generated for each run:
- Location:
%TEMP%\IT_Service\software_download_YYYYMMDD_HHMMSS.log
- Format: Plain text with timestamp for each operation
- Content: Includes all operations, errors, and download statistics
$config = @{
MaxRetries = 3 # Maximum download retry attempts
RetryDelaySeconds = 3 # Delay between retries
TimeoutSeconds = 300 # Download timeout
DownloadRoot = "..." # Default download location
}
- Modify software list in the script
- Customize file names for downloads
- Adjust retry and timeout settings
- Change download directory structure
Downloads\SoftwarePackages\
├── QQ\
├── WeChat\
├── WeCom\
├── Lingxi\
├── 7-Zip\
├── Edge\
├── DingTalk\
├── SogouInput\
└── VCRedist\
├── x86\
└── x64\
The script includes comprehensive error handling:
- Download retry mechanism
- File integrity verification
- Detailed error logging
- Progress tracking
- Status reporting
This project is licensed under the MIT License - see the LICENSE file for details.
- Ensure you have necessary permissions for software distribution
- Keep the script updated with latest software IDs
- Check winget regularly for package ID changes
- Consider network bandwidth when downloading multiple packages
For support, please:
- Check the log files for error details
- Review the winget package IDs
- Verify network connectivity
- Contact repository maintainer if issues persist
- send email to [email protected]
- Name: iamtornado
- Website: https://github.com/iamtornado
- Email: [email protected]
- My WeChat Qrcode:
- QQ group: 715152187
- WeChat Official Account: AI发烧友