Scripts2026年5月1日·1 分钟阅读

PowerShell — Cross-Platform Automation Shell from Microsoft

PowerShell is a cross-platform task automation solution consisting of a command-line shell, a scripting language, and a configuration management framework that runs on Windows, Linux, and macOS.

Introduction

PowerShell is an open-source, cross-platform shell and scripting language built on .NET. Originally a Windows-only tool, it now runs natively on Linux and macOS, making it a unified automation platform for managing heterogeneous environments from a single language.

What PowerShell Does

  • Provides a full-featured interactive shell with tab completion, history, and predictive IntelliSense
  • Executes scripts (.ps1) for task automation, CI/CD pipelines, and infrastructure provisioning
  • Manages cloud resources across Azure, AWS, and GCP through dedicated modules
  • Outputs structured objects instead of plain text, enabling pipeline composition without parsing
  • Supports remote management of machines via SSH or WinRM remoting

Architecture Overview

PowerShell runs on top of .NET (Core or Framework). Each command (cmdlet) is a compiled .NET class that emits objects into the pipeline. The pipeline passes typed objects between cmdlets, eliminating the need for text parsing. A module system allows packaging cmdlets, functions, and DSC resources for distribution via the PowerShell Gallery.

Self-Hosting & Configuration

  • Install from the official Microsoft repos, Homebrew, or download binaries from the GitHub releases page
  • User profile lives at $PROFILE; customize prompt, aliases, and module imports there
  • Use Install-Module to add community or first-party modules from the PowerShell Gallery
  • Configure execution policies with Set-ExecutionPolicy to control script trust levels
  • Integrate with VS Code via the PowerShell extension for debugging, linting, and IntelliSense

Key Features

  • Object-oriented pipeline that passes .NET objects, not raw strings
  • Cross-platform: identical scripts run on Windows, Linux, and macOS
  • Built-in remoting for managing fleets of machines over SSH or WinRM
  • Desired State Configuration (DSC) for declarative infrastructure management
  • Extensible module ecosystem with thousands of packages on the PowerShell Gallery

Comparison with Similar Tools

  • Bash — text-based pipeline, ubiquitous on Unix but lacks structured object output
  • Zsh — richer interactive features than Bash, but still string-oriented
  • Python — general-purpose scripting with broader library ecosystem, but not a native shell
  • Nushell — modern structured-data shell inspired by PowerShell, smaller ecosystem
  • Fish — user-friendly shell with autosuggestions, but limited scripting capabilities

FAQ

Q: Does PowerShell replace Bash on Linux? A: It can, but most Linux users run it alongside Bash for tasks that benefit from structured data and .NET integration.

Q: Is PowerShell only for Windows administration? A: No. Since PowerShell 7 it is fully cross-platform and used for cloud automation, CI/CD, and general scripting on any OS.

Q: How do I manage dependencies between modules? A: The PowerShell Gallery and Install-Module handle dependency resolution automatically, similar to package managers like pip or npm.

Q: Can PowerShell call native system commands? A: Yes. Native executables run normally inside PowerShell, and their stdout can be captured as strings or piped into cmdlets.

Sources

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产