Thank you for considering contributing to this PowerShell scripts collection! This document provides guidelines for contributions.
- Use the GitHub issue tracker to report bugs or request features
- Provide clear descriptions and steps to reproduce issues
- Include PowerShell version and Windows version information
- Fork the repository
- Create a feature branch (
git checkout -b feature/new-script) - Add your script following the guidelines below
- Commit your changes (
git commit -am 'Add new script: ScriptName') - Push to the branch (
git push origin feature/new-script) - Create a Pull Request
- Use PowerShell 5.1+ compatible syntax
- Follow PowerShell best practices and naming conventions
- Include comprehensive comment-based help
- Use approved PowerShell verbs for function names
- Include error handling with try/catch blocks
- Complete comment-based help with:
.SYNOPSIS.DESCRIPTION.PARAMETERfor each parameter.EXAMPLEwith realistic examples.NOTESwith prerequisites and warnings.LINKto relevant documentation
Scripts/
├── Category/
│ ├── ScriptName.ps1
│ └── README.md
- Use approved PowerShell verbs (Get-, Set-, New-, Remove-, etc.)
- Use PascalCase for script names
- Be descriptive and specific
<#
.SYNOPSIS
Brief description of what the script does.
.DESCRIPTION
Detailed description of the script's functionality.
.PARAMETER ParameterName
Description of the parameter.
.EXAMPLE
.\ScriptName.ps1 -Parameter Value
Description of what this example does.
.NOTES
File Name : ScriptName.ps1
Author : Your Name
Prerequisite : Required modules/permissions
Creation Date : YYYY-MM-DD
.LINK
Relevant documentation URL
#>
[CmdletBinding()]
param (
[Parameter(Mandatory = $true)]
[string]$ParameterName
)
# Script implementation- Test scripts in non-production environments
- Include error scenarios in testing
- Verify compatibility across PowerShell versions where possible
- Never hardcode credentials or sensitive information
- Use secure methods for handling passwords
- Include warnings for scripts that modify system settings
- Validate input parameters appropriately
Organize scripts into appropriate categories:
- ActiveDirectory - AD user and object management
- FileSystem - File and folder operations
- NetworkShares - SMB shares and DFS management
- TaskScheduler - Scheduled task management
- UserProfiles - Windows user profile operations
- System - System-level configuration and maintenance
- Registry - Windows Registry configuration
- Monitoring - System and service monitoring
- Security - Security-related operations
-
All submissions are reviewed for:
- Code quality and best practices
- Documentation completeness
- Security considerations
- Usefulness to the community
-
Reviewers may request changes or improvements
-
Once approved, scripts are merged into the main branch
Feel free to open an issue for any questions about contributing or create a discussion for general questions about the scripts.
Thank you for contributing!
