{"id":31702290,"url":"https://github.com/tmhsdigital/powershell","last_synced_at":"2025-10-08T21:36:09.257Z","repository":{"id":303864465,"uuid":"1016959697","full_name":"TMHSDigital/PowerShell","owner":"TMHSDigital","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-09T20:26:55.000Z","size":35,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-10T05:12:50.373Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TMHSDigital.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-09T19:51:54.000Z","updated_at":"2025-07-09T20:26:58.000Z","dependencies_parsed_at":"2025-07-13T00:31:08.191Z","dependency_job_id":null,"html_url":"https://github.com/TMHSDigital/PowerShell","commit_stats":null,"previous_names":["tmhsdigital/powershell"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TMHSDigital/PowerShell","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TMHSDigital%2FPowerShell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TMHSDigital%2FPowerShell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TMHSDigital%2FPowerShell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TMHSDigital%2FPowerShell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TMHSDigital","download_url":"https://codeload.github.com/TMHSDigital/PowerShell/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TMHSDigital%2FPowerShell/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000709,"owners_count":26082838,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-08T21:35:58.510Z","updated_at":"2025-10-08T21:36:09.248Z","avatar_url":"https://github.com/TMHSDigital.png","language":"PowerShell","readme":"# PowerShell Complete Guide\n\n\u003c!-- Platform Badges --\u003e\n![PowerShell](https://img.shields.io/badge/PowerShell-5391FE?style=for-the-badge\u0026logo=powershell\u0026logoColor=white)\n![Windows](https://img.shields.io/badge/Windows-0078D6?style=for-the-badge\u0026logo=windows\u0026logoColor=white)\n![Linux](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge\u0026logo=linux\u0026logoColor=black)\n![macOS](https://img.shields.io/badge/mac%20os-000000?style=for-the-badge\u0026logo=macos\u0026logoColor=F0F0F0)\n\n\u003c!-- Repository Stats --\u003e\n![GitHub repo size](https://img.shields.io/github/repo-size/TMHSDigital/PowerShell?style=flat-square\u0026color=blue)\n![GitHub language count](https://img.shields.io/github/languages/count/TMHSDigital/PowerShell?style=flat-square\u0026color=green)\n![GitHub top language](https://img.shields.io/github/languages/top/TMHSDigital/PowerShell?style=flat-square\u0026color=purple)\n![Lines of code](https://img.shields.io/tokei/lines/github/TMHSDigital/PowerShell?style=flat-square\u0026color=orange)\n\n\u003c!-- Activity Badges --\u003e\n![GitHub last commit](https://img.shields.io/github/last-commit/TMHSDigital/PowerShell?style=flat-square\u0026color=red)\n![GitHub commit activity](https://img.shields.io/github/commit-activity/m/TMHSDigital/PowerShell?style=flat-square\u0026color=yellow)\n![GitHub contributors](https://img.shields.io/github/contributors/TMHSDigital/PowerShell?style=flat-square\u0026color=brightgreen)\n\n\u003c!-- Project Status --\u003e\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)\n[![PowerShell Gallery](https://img.shields.io/badge/PowerShell%20Gallery-blue.svg?style=flat-square)](https://www.powershellgallery.com/)\n[![Documentation](https://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat-square)](./PowerShell-Guide.md)\n[![Scripts](https://img.shields.io/badge/demo%20scripts-20+-blue.svg?style=flat-square)](./scripts/)\n\n\u003c!-- Quality Assurance --\u003e\n[![Contributions Welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat-square)](CONTRIBUTING.md)\n[![Code Quality](https://img.shields.io/badge/code%20quality-A+-success.svg?style=flat-square)](.)\n[![Maintained](https://img.shields.io/badge/Maintained%3F-yes-green.svg?style=flat-square)](https://github.com/TMHSDigital/PowerShell/graphs/commit-activity)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n\n\u003c!-- Educational Content --\u003e\n[![Learning Path](https://img.shields.io/badge/learning%20path-10%20weeks-blue.svg?style=flat-square)](./PowerShell-Guide.md#learning-path)\n[![Beginner Friendly](https://img.shields.io/badge/beginner-friendly-green.svg?style=flat-square)](./scripts/01-beginner/)\n[![Advanced Topics](https://img.shields.io/badge/advanced%20topics-included-red.svg?style=flat-square)](./scripts/03-advanced/)\n[![Best Practices](https://img.shields.io/badge/best%20practices-covered-orange.svg?style=flat-square)](./PowerShell-Guide.md#professional-best-practices)\n\n\u003c!-- Version Support --\u003e\n[![PowerShell 5.1](https://img.shields.io/badge/PowerShell-5.1%2B-blue.svg?style=flat-square)](https://docs.microsoft.com/en-us/powershell/)\n[![PowerShell 7](https://img.shields.io/badge/PowerShell-7.x-blue.svg?style=flat-square)](https://docs.microsoft.com/en-us/powershell/)\n[![Cross Platform](https://img.shields.io/badge/cross--platform-yes-success.svg?style=flat-square)](.)\n[![Windows Terminal](https://img.shields.io/badge/Windows%20Terminal-compatible-blue.svg?style=flat-square)](https://github.com/microsoft/terminal)\n\n\u003e A comprehensive PowerShell learning resource that takes you from beginner to professional level with practical examples, best practices, and real-world scenarios.\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Features](#features)\n- [Getting Started](#getting-started)\n- [Guide Structure](#guide-structure)\n- [Demo Scripts](#demo-scripts)\n- [Prerequisites](#prerequisites)\n- [Installation](#installation)\n- [Usage Examples](#usage-examples)\n- [Learning Path](#learning-path)\n- [Contributing](#contributing)\n- [Resources](#resources)\n- [License](#license)\n- [Support](#support)\n\n## Overview\n\nThis repository contains a complete PowerShell education guide designed for developers, system administrators, and IT professionals. Whether you're just starting with PowerShell or looking to master advanced concepts, this guide provides structured learning with hands-on examples.\n\n### Why This Guide?\n\n- **Comprehensive Coverage**: From basic commands to advanced scripting patterns\n- **Practical Examples**: All code examples are tested and ready to use\n- **Progressive Learning**: Structured path from beginner to professional\n- **Real-World Scenarios**: Examples based on actual use cases\n- **Cross-Platform**: Covers PowerShell Core for Windows, Linux, and macOS\n\n## Features\n\n- **15 Detailed Sections** covering all PowerShell concepts\n- **200+ Code Examples** with explanations\n- **Best Practices** for professional PowerShell development\n- **Performance Optimization** techniques\n- **Security Guidelines** for safe scripting\n- **Testing and Debugging** strategies\n- **Module Development** patterns\n- **API Integration** examples\n\n## Getting Started\n\n### Quick Start\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/TMHSDigital/PowerShell.git\n   cd PowerShell\n   ```\n\n2. **Open the main guide**\n   ```bash\n   # Windows\n   notepad PowerShell-Guide.md\n   \n   # Linux/macOS\n   less PowerShell-Guide.md\n   ```\n\n3. **Start learning**\n   Begin with the [Basic Concepts](./PowerShell-Guide.md#basic-concepts) section\n\n### Online Reading\n\nYou can read the guide directly on GitHub: [PowerShell Complete Guide](./PowerShell-Guide.md)\n\n## Guide Structure\n\nThe guide is organized into progressive sections:\n\n### Beginner Level\n- **Getting Started** - Installation and setup\n- **Basic Concepts** - Fundamental PowerShell concepts\n- **Essential Commands** - Core commands for daily use\n- **Variables and Data Types** - Working with data\n- **Operators** - Arithmetic, comparison, and logical operators\n\n### Intermediate Level\n- **Control Flow** - Loops, conditions, and branching\n- **Functions** - Creating reusable code blocks\n- **Objects and Properties** - Object-oriented PowerShell\n- **Pipeline** - Mastering PowerShell's signature feature\n- **File System Operations** - File and directory management\n\n### Advanced Level\n- **Text Processing** - Regular expressions and string manipulation\n- **Error Handling** - Robust error management\n- **Modules and Scripts** - Code organization and distribution\n- **Advanced Features** - Remoting, jobs, and advanced patterns\n- **Professional Best Practices** - Security, performance, and testing\n\n### Quick Reference\n- **Essential One-Liners** - Powerful commands for immediate use\n\n## Demo Scripts\n\nThe repository includes a comprehensive collection of demo scripts organized by difficulty level:\n\n### Scripts Directory Structure\n\n```\nscripts/\n├── 01-beginner/        # Basic PowerShell concepts\n├── 02-intermediate/    # System administration tasks\n├── 03-advanced/        # Complex automation and monitoring\n├── 04-automation/      # DevOps and infrastructure scripts\n├── 05-utilities/       # Standalone utility tools\n└── README.md          # Detailed scripts documentation\n```\n\n### Featured Scripts\n\n| Category | Script | Description |\n|----------|--------|-------------|\n| **Beginner** | `hello-world.ps1` | Comprehensive introduction to PowerShell scripting |\n| **Beginner** | `system-info.ps1` | System information gathering and reporting |\n| **Intermediate** | `file-organizer.ps1` | Automated file organization by type, date, or size |\n| **Advanced** | `system-monitor.ps1` | Real-time system monitoring with alerting |\n| **Utilities** | `password-generator.ps1` | Secure password generation with customization |\n\n### Quick Start with Scripts\n\n```powershell\n# Navigate to scripts directory\nSet-Location .\\scripts\n\n# Run a beginner script\n.\\01-beginner\\hello-world.ps1 -Name \"PowerShell\" -Language English -Verbose\n\n# Try system information gathering\n.\\01-beginner\\system-info.ps1 -Detailed -ShowServices\n\n# Organize files (with WhatIf for safety)\n.\\02-intermediate\\file-organizer.ps1 -OrganizeBy ByType -WhatIf\n\n# Generate secure passwords\n.\\05-utilities\\password-generator.ps1 -Length 16 -IncludeSpecial -RequireAll\n```\n\n**For complete scripts documentation**: See [scripts/README.md](./scripts/README.md)\n\n## Prerequisites\n\n### Software Requirements\n\n| Component | Minimum Version | Recommended | Platform |\n|-----------|-----------------|-------------|----------|\n| PowerShell | 5.1 | 7.4+ | Windows |\n| PowerShell Core | 6.0 | 7.4+ | Linux/macOS |\n| .NET Framework | 4.5 | Latest | Windows |\n| .NET Core | 2.0 | Latest | Cross-platform |\n\n### Knowledge Prerequisites\n\n- Basic command-line experience\n- Understanding of file systems\n- Familiarity with programming concepts (helpful but not required)\n\n## Installation\n\n### Windows\n\nPowerShell comes pre-installed on Windows 10/11. For the latest version:\n\n```powershell\n# Using winget\nwinget install Microsoft.PowerShell\n\n# Using Chocolatey\nchoco install powershell-core\n\n# Using Scoop\nscoop install pwsh\n```\n\n### Linux\n\n```bash\n# Ubuntu/Debian\nsudo apt update\nsudo apt install -y wget apt-transport-https software-properties-common\nwget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb\nsudo dpkg -i packages-microsoft-prod.deb\nsudo apt update\nsudo apt install -y powershell\n\n# CentOS/RHEL/Fedora\nsudo dnf install -y powershell\n```\n\n### macOS\n\n```bash\n# Using Homebrew\nbrew install --cask powershell\n\n# Using MacPorts\nsudo port install powershell\n```\n\n## Usage Examples\n\n### Basic Command Examples\n\n```powershell\n# Get system information\nGet-ComputerInfo | Select-Object WindowsProductName, TotalPhysicalMemory\n\n# List running processes\nGet-Process | Sort-Object CPU -Descending | Select-Object -First 10\n\n# Find large files\nGet-ChildItem -Recurse | Where-Object {$_.Length -gt 100MB} | Sort-Object Length -Descending\n```\n\n### Script Example\n\n```powershell\n# Example: System Health Check Script\nparam(\n    [string]$ComputerName = $env:COMPUTERNAME,\n    [switch]$Detailed\n)\n\nWrite-Host \"System Health Check for: $ComputerName\" -ForegroundColor Green\n\n# CPU Usage\n$cpu = Get-WmiObject Win32_Processor | Measure-Object -Property LoadPercentage -Average\nWrite-Host \"CPU Usage: $($cpu.Average)%\" -ForegroundColor Yellow\n\n# Memory Usage\n$memory = Get-WmiObject Win32_OperatingSystem\n$memoryUsage = [math]::Round((($memory.TotalVisibleMemorySize - $memory.FreePhysicalMemory) / $memory.TotalVisibleMemorySize) * 100, 2)\nWrite-Host \"Memory Usage: $memoryUsage%\" -ForegroundColor Yellow\n\n# Disk Space\nGet-WmiObject Win32_LogicalDisk | Where-Object {$_.DriveType -eq 3} | ForEach-Object {\n    $freeSpace = [math]::Round(($_.FreeSpace / $_.Size) * 100, 2)\n    Write-Host \"Drive $($_.DeviceID) Free Space: $freeSpace%\" -ForegroundColor Yellow\n}\n```\n\n## Learning Path\n\n### 1. Foundation (Week 1-2)\n- [ ] Complete [Getting Started](./PowerShell-Guide.md#getting-started)\n- [ ] Master [Basic Concepts](./PowerShell-Guide.md#basic-concepts)\n- [ ] Practice [Essential Commands](./PowerShell-Guide.md#essential-commands)\n\n### 2. Core Skills (Week 3-4)\n- [ ] Learn [Variables and Data Types](./PowerShell-Guide.md#variables-and-data-types)\n- [ ] Understand [Control Flow](./PowerShell-Guide.md#control-flow)\n- [ ] Create [Functions](./PowerShell-Guide.md#functions)\n\n### 3. Intermediate (Week 5-6)\n- [ ] Master the [Pipeline](./PowerShell-Guide.md#pipeline)\n- [ ] Work with [Objects and Properties](./PowerShell-Guide.md#objects-and-properties)\n- [ ] Learn [File System Operations](./PowerShell-Guide.md#file-system-operations)\n\n### 4. Advanced (Week 7-8)\n- [ ] Advanced [Text Processing](./PowerShell-Guide.md#text-processing)\n- [ ] Implement [Error Handling](./PowerShell-Guide.md#error-handling)\n- [ ] Build [Modules and Scripts](./PowerShell-Guide.md#modules-and-scripts)\n\n### 5. Professional (Week 9-10)\n- [ ] Apply [Best Practices](./PowerShell-Guide.md#professional-best-practices)\n- [ ] Learn [Advanced Features](./PowerShell-Guide.md#advanced-features)\n- [ ] Practice real-world scenarios\n\n## Contributing\n\nWe welcome contributions to improve this PowerShell guide! Here's how you can help:\n\n### Types of Contributions\n\n- **Content Improvements**: Fix errors, add clarity, update examples\n- **New Examples**: Add practical real-world scenarios\n- **Platform Coverage**: Examples for Linux/macOS specific scenarios\n- **Translations**: Help translate the guide to other languages\n- **Bug Reports**: Report issues or outdated information\n\n### How to Contribute\n\n1. **Fork the repository**\n2. **Create a feature branch**\n   ```bash\n   git checkout -b feature/your-improvement\n   ```\n3. **Make your changes**\n4. **Test your examples** (ensure all code works)\n5. **Commit with clear messages**\n   ```bash\n   git commit -m \"Add: Advanced pipeline examples for data processing\"\n   ```\n6. **Push and create a Pull Request**\n\n### Contribution Guidelines\n\n- All code examples must be tested and functional\n- Follow the existing formatting and style\n- Include explanations for complex examples\n- No emojis in documentation\n- Reference official PowerShell documentation when applicable\n\n## Resources\n\n### Official Documentation\n- [PowerShell Documentation](https://docs.microsoft.com/en-us/powershell/)\n- [PowerShell Gallery](https://www.powershellgallery.com/)\n- [PowerShell GitHub Repository](https://github.com/PowerShell/PowerShell)\n\n### Additional Learning\n- [PowerShell Cmdlet Reference](https://docs.microsoft.com/en-us/powershell/module/)\n- [PowerShell Best Practices](https://docs.microsoft.com/en-us/powershell/scripting/developer/cmdlet/strongly-encouraged-development-guidelines)\n- [PowerShell Community](https://devblogs.microsoft.com/powershell/)\n\n### Tools and Extensions\n- [PowerShell ISE](https://docs.microsoft.com/en-us/powershell/scripting/windows-powershell/ise/introducing-the-windows-powershell-ise)\n- [Visual Studio Code PowerShell Extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.PowerShell)\n- [Windows Terminal](https://github.com/microsoft/terminal)\n\n## Compatibility\n\n| PowerShell Version | Windows | Linux | macOS | Status |\n|-------------------|---------|-------|--------|--------|\n| 5.1 | ✅ | ❌ | ❌ | Legacy |\n| 6.x | ✅ | ✅ | ✅ | EOL |\n| 7.0+ | ✅ | ✅ | ✅ | Current |\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n### MIT License Summary\n\n- ✅ Commercial use\n- ✅ Modification\n- ✅ Distribution\n- ✅ Private use\n- ❌ Liability\n- ❌ Warranty\n\n## Support\n\n### Getting Help\n\n- **Issues**: Report bugs or request features via [GitHub Issues](https://github.com/TMHSDigital/PowerShell/issues)\n- **Discussions**: Ask questions in [GitHub Discussions](https://github.com/TMHSDigital/PowerShell/discussions)\n- **Documentation**: Check the [complete guide](./PowerShell-Guide.md) first\n\n### Response Times\n\n- **Bug Reports**: 24-48 hours\n- **Feature Requests**: 1-2 weeks\n- **Questions**: 24 hours\n\n### Community\n\n- **PowerShell Community**: [Reddit r/PowerShell](https://reddit.com/r/PowerShell)\n- **Stack Overflow**: Tag your questions with `powershell`\n- **Discord**: [PowerShell Discord Server](https://discord.gg/powershell)\n\n---\n\n**Made with ❤️ for the PowerShell community**\n\n**Maintainer**: [TMHSDigital](https://github.com/TMHSDigital)","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmhsdigital%2Fpowershell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftmhsdigital%2Fpowershell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmhsdigital%2Fpowershell/lists"}