**This repo provides 500+ useful cross-platform PowerShell scripts located in the [📂Scripts](Scripts/) subfolder - for command-line interface (CLI) usage, for remote control (e.g. SSH), for automation software (e.g. [Jenkins](https://www.jenkins.io/)), for context menus, for voice commands (e.g. [talk2windows](https://github.com/fleschutz/talk2windows)), automatically on startup/login/logoff/daily/shutdown/etc., or simply to learn PowerShell.**
**[Download](https://github.com/fleschutz/PowerShell/releases) | [FAQ](Docs/FAQ.md)** | **Note:** the scripts support Unicode - a modern console is recommended (e.g. *Windows Terminal*)
| [play-beep-sound.ps1](Scripts/play-beep-sound.ps1) | Plays a short beep sound. [Read more...](Docs/play-beep-sound.md) |
| [play-files.ps1](Scripts/play-files.ps1) | Plays the given audio files. [Read more...](Docs/play-files.md) |
| [play-happy-birthday.ps1](Scripts/play-happy-birthday.ps1) | Plays the Happy Birthday song. [Read more...](Docs/play-happy-birthday.md) |
| [play-imperial-march.ps1](Scripts/play-imperial-march.ps1) | Plays the Imperial March (Star Wars). [Read more...](Docs/play-imperial-march.md) |
| [play-jingle-bells.ps1](Scripts/play-jingle-bells.ps1) | Plays Jingle Bells. [Read more...](Docs/play-jingle-bells.md) |
| [play-mission-impossible.ps1](Scripts/play-mission-impossible.ps1) | Plays the Mission Impossible theme. [Read more...](Docs/play-mission-impossible.md)|
| [play-m3u.ps1](Scripts/play-m3u.ps1) | Plays the given playlist (M3U file format). [Read more...](Docs/play-m3u.md) |
| [play-mp3.ps1](Scripts/play-mp3.ps1) | Plays the given sound file (MP3 file format). [Read more...](Docs/play-mp3.md) |
| [play-super-mario.ps1](Scripts/play-super-mario.ps1) | Plays the Super Mario intro. [Read more...](Docs/play-super-mario.md) |
| [play-tetris-melody.ps1](Scripts/play-tetris-melody.ps1) | Plays the Tetris melody. [Read more...](Docs/play-tetris-melody.md) |
| [speak-checklist.ps1](Scripts/speak-checklist.ps1) | Speaks the given checklist by text-to-speech. [Read more...](Docs/speak-checklist.md) |
| [speak-countdown.ps1](Scripts/speak-countdown.ps1) | Starts a countdown by text-to-speech. [Read more...](Docs/speak-countdown.md) |
| [speak-english.ps1](Scripts/speak-english.ps1) | Speaks text with an English text-to-speech voice. [Read more...](Docs/speak-english.md) |
| [speak-epub.ps1](Scripts/speak-epub.ps1) | Speaks the content of the given Epub file by text-to-speech. [Read more...](Docs/speak-epub.md) |
| [speak-file.ps1](Scripts/speak-file.ps1) | Speaks the content of the given text file by text-to-speech. [Read more...](Docs/speak-file.md) |
| [speak-french.ps1](Scripts/speak-french.ps1) | Speaks text with a French text-to-speech voice. [Read more...](Docs/speak-french.md) |
| [speak-german.ps1](Scripts/speak-german.ps1) | Speaks text with a German text-to-speech voice. [Read more...](Docs/speak-german.md) |
| [speak-italian.ps1](Scripts/speak-italian.ps1) | Speaks text with an Italian text-to-speech voice. [Read more...](Docs/speak-italian.md) |
| [speak-spanish.ps1](Scripts/speak-spanish.ps1) | Speaks text with a Spanish text-to-speech voice. [Read more...](Docs/speak-spanish.md) |
| [speak-test.ps1](Scripts/speak-test.ps1) | Performs a speak test by text-to-speech. [Read more...](Docs/speak-test.md) |
| [speak-text.ps1](Scripts/speak-text.ps1) | Speaks the given text by text-to-speech. [Read more...](Docs/speak-text.md) |
| [tell-joke.ps1](Scripts/tell-joke.ps1) | Tells a joke by text-to-speech. [Read more...](Docs/tell-joke.md) |
| [tell-quote.ps1](Scripts/tell-quote.ps1) | Tells a quote by text-to-speech. [Read more...](Docs/tell-quote.md) |
| [check-drive-space.ps1](Scripts/check-drive-space.ps1) | Checks a drive for free space left. [Read more...](Docs/check-drive-space.md) |
| [check-file-system.ps1](Scripts/check-file-system.ps1) | Checks the file system of a drive (needs admin rights). [Read more...](Docs/check-file-system.md)|
| [check-health.ps1](Scripts/check-health.ps1) | Checks the system health. [Read more...](Docs/check-health.md) |
| [check-ping.ps1](Scripts/check-ping.ps1) | Checks the ping latency to the internet. [Read more...](Docs/check-ping.md) |
| [check-swap-space.ps1](Scripts/check-swap-space.ps1) | Checks the swap space for free space left. [Read more...](Docs/check-swap-space.md) |
| [check-windows-system-files.ps1](Scripts/check-windows-system-files.ps1) | Checks the validity of the Windows system files (needs admin rights). [Read more...](Docs/check-windows-system-files.md) |
| [enable-crash-dumps.ps1](Scripts/enable-crash-dumps.ps1) | Enables the writing of crash dumps. [Read more...](Docs/enable-crash-dumps.md) |
| [hibernate.ps1](Scripts/hibernate.ps1) | Enables hibernate mode for the local computer (needs admin rights). [Read more...](Docs/hibernate.md)|
| [list-drives.ps1](Scripts/list-drives.ps1) | Lists all drives. [Read more...](Docs/list-drives.md) |
| [list-network-shares.ps1](Scripts/list-network-shares.ps1) | Lists all network shares of the local computer. [Read more...](Docs/list-network-shares.md) |
| [list-installed-software.ps1](Scripts/list-installed-software.ps1) | Lists the installed software (except Windows Store apps). [Read more...](Docs/list-installed-software.md)|
| [list-printers.ps1](Scripts/list-printers.ps1) | Lists all printer known to the computer. [Read more...](Docs/list-printers.md) |
| [list-print-jobs.ps1](Scripts/list-print-jobs.ps1) | Lists all jobs of all printers. [Read more...](Docs/list-print-jobs.md) |
| [list-processes.ps1](Scripts/list-processes.ps1) | Lists the local computer processes. [Read more...](Docs/list-processes.md) |
| [list-services.ps1](Scripts/list-services.ps1) | Lists the services on the local computer. [Read more...](Docs/list-services.md) |
| [list-system-info.ps1](Scripts/list-system-info.ps1) | Lists system information on the local computer. [Read more...](Docs/list-system-info.md) |
| [list-tasks.ps1](Scripts/list-tasks.ps1) | Lists all Windows scheduler tasks. [Read more...](Docs/list-tasks.md) |
| [list-timezone.ps1](Scripts/list-timezone.ps1) | Lists the current time zone details. [Read more...](Docs/list-timezone.md) |
| [list-timezones.ps1](Scripts/list-timezones.ps1) | Lists all time zones available. [Read more...](Docs/list-timezones.md) |
| [list-user-groups.ps1](Scripts/list-user-groups.ps1) | Lists the user groups on the local computer. [Read more...](Docs/list-user-groups.md) |
| [poweroff.ps1](Scripts/poweroff.ps1) | Halts the local computer (needs admin rights). [Read more...](Docs/poweroff.md) |
| [query-smart-data.ps1](Scripts/query-smart-data.ps1) | Queries the S.M.A.R.T. data of your HDD/SSD's. [Read more...](Docs/query-smart-data.md) |
| [reboot.ps1](Scripts/reboot.ps1) | Reboots the local computer (needs admin rights). [Read more...](Docs/reboot.md) |
| [remove-print-jobs.ps1](Scripts/remove-print-jobs.ps1) | Removes all jobs from all printers. [Read more...](Docs/remove-print-jobs.md) |
| [restart-network-adapters.ps1](Scripts/restart-network-adapters.ps1) | Restarts all local network adapters. [Read more...](Docs/restart-network-adapters.md)|
| [upgrade-ubuntu.ps1](Scripts/upgrade-ubuntu.ps1) | Upgrades Ubuntu Linux to the latest (LTS) release. [Read more...](Docs/upgrade-ubuntu.md) |
| [check-symlinks.ps1](Scripts/check-symlinks.ps1) | Checks every symlink in a directory tree | [Help](Docs/check-symlinks.md) |
| [check-xml-file.ps1](Scripts/check-xml-file.ps1) | Checks the given XML file for validity | [Help](Docs/check-xml-file.md) |
| [clear-recycle-bin.ps1](Scripts/clear-recycle-bin.ps1) | Removes the content of the recycle bin folder (can not be undo!) | [Help](Docs/clear-recycle-bin.md) |
| [list-hidden-files.ps1](Scripts/list-hidden-files.ps1) | Lists hidden files within the given directory tree | [Help](Docs/list-hidden-files.md) |
| [list-recycle-bin.ps1](Scripts/list-recycle-bin.ps1) | Lists the content of the recycle bin folder | [Help](Docs/list-recycle-bin.md) |
| [list-unused-files.ps1](Scripts/list-unused-files.ps1) | Lists unused files in a directory tree | [Help](Docs/list-unused-files.md) |
| [list-workdir.ps1](Scripts/list-workdir.ps1) | Lists the current working directory | [Help](Docs/list-workdir.md) |
| [make-install.ps1](Scripts/make-install.ps1) | Installs built executables and libs to the installation directory | [Help](Docs/make-install.md) |
| [new-shortcut.ps1](Scripts/new-shortcut.ps1) | Creates a new shortcut file | [Help](Docs/new-shortcut.md) |
| [new-symlink.ps1](Scripts/new-symlink.ps1) | Creates a new symbolic link file | [Help](Docs/new-symlink.md) |
| [new-zipfile.ps1](Scripts/new-zipfile.ps1) | Creates a new .zip file from a directory | [Help](Docs/new-zipfile.md) |
| [publish-to-ipfs.ps1](Scripts/publish-to-ipfs.ps1) | Publishes the given files or directory to IPFS | [Help](Docs/publish-to-ipfs.md) |
| [remove-empty-dirs.ps1](Scripts/remove-empty-dirs.ps1) | Removes empty subfolders within the given directory tree | [Help](Docs/remove-empty-dirs.md) |
| [replace-in-files.ps1](Scripts/replace-in-files.ps1) | Search and replace a pattern in the given files by the replacement | [Help](Docs/replace-in-files.md) |
| [convert-csv2txt.ps1](Scripts/convert-csv2txt.ps1) | Converts a .CSV file to a text file. [Read more...](Docs/convert-csv2txt.md) |
| [convert-mysql2csv.ps1](Scripts/convert-mysql2csv.ps1) | Converts a MySQL database table to a .CSV file. [Read more...](Docs/convert-mysql2csv.md) |
| [convert-ps2bat.ps1](Scripts/convert-ps2bat.ps1) | Converts a PowerShell script to a Batch script. [Read more...](Docs/convert-ps2bat.md) |
| [convert-ps2md.ps1](Scripts/convert-ps2md.ps1) | Converts the comment-based help of a PowerShell script to Markdown. [Read more...](Docs/convert-ps2md.md) |
| [convert-sql2csv.ps1](Scripts/convert-sql2csv.ps1) | Converts a SQL database table to a .CSV file. [Read more...](Docs/convert-sql2csv.md) |
| [convert-txt2wav.ps1](Scripts/convert-txt2wav.ps1) | Converts text to a .WAV audio file. [Read more...](Docs/convert-txt2wav.md) |
| [export-to-manuals.ps1](Scripts/export-to-manuals.ps1) | Exports all scripts as manuals. [Read more...](Docs/export-to-manuals.md) |
| [configure-git.ps1](Scripts/configure-git.ps1) | Sets up the Git user configuration. [Read more...](Docs/configure-git.md) |
| [fetch-repo.ps1](Scripts/fetch-repo.ps1) | Fetches updates for a Git repository. [Read more...](Docs/fetch-repo.md) |
| [fetch-repos.ps1](Scripts/fetch-repos.ps1) | Fetches updates for all Git repositories in a folder. [Read more...](Docs/fetch-repos.md) |
| [list-branches.ps1](Scripts/list-branches.ps1) | Lists all branches in a Git repository. [Read more...](Docs/list-branches.md) |
| [list-commits.ps1](Scripts/list-commits.ps1) | Lists all commits in a Git repository. [Read more...](Docs/list-commits.md) |
| [list-latest-tag.ps1](Scripts/list-latest-tag.ps1) | Lists the latest tag on the current branch in a Git repository. [Read more...](Docs/list-latest-tag.md) |
| [list-latest-tags.ps1](Scripts/list-latest-tags.ps1) | Lists the latests tags in all Git repositories under a directory. [Read more...](Docs/list-latest-tags.md) |
| [list-repos.ps1](Scripts/list-repos.ps1) | Lists the Git repositories in a folder. [Read more...](Docs/list-repos.md) |
| [list-submodules.ps1](Scripts/list-submodules.ps1) | Lists the submodules in a Git repository. [Read more...](Docs/list-submodules.md) |
| [list-tags.ps1](Scripts/list-tags.ps1) | Lists all tags in a Git repository. [Read more...](Docs/list-tags.md) |
| [new-branch.ps1](Scripts/new-branch.ps1) | Creates a new branch in a Git repository. [Read more...](Docs/new-branch.md) |
| [new-tag.ps1](Scripts/new-tag.ps1) | Creates a new tag in a Git repository. [Read more...](Docs/new-tag.md) |
| [pick-commit.ps1](Scripts/pick-commit.ps1) | Cherry-picks a Git commit into multiple branches. [Read more...](Docs/pick-commit.md) |
| [pull-repo.ps1](Scripts/pull-repo.ps1) | Pulls updates for a Git repository. [Read more...](Docs/pull-repo.md) |
| [pull-repos.ps1](Scripts/pull-repos.ps1) | Pulls updates for all Git repositories in a folder. [Read more...](Docs/pull-repos.md) |
| [remove-tag.ps1](Scripts/remove-tag.ps1) | Removes a tag in a Git repository. [Read more...](Docs/remove-tag.md) |
| [switch-branch.ps1](Scripts/switch-branch.ps1) | Switches the branch in a Git repository. [Read more...](Docs/switch-branch.md) |
| [sync-repo.ps1](Scripts/sync-repo.ps1) | Synchronizes a Git repository by push & pull. [Read more...](Docs/sync-repo.md) |
| [add-memo.ps1](Scripts/add-memo.ps1) | Adds the given memo text to $HOME/Memos.csv | [Help](Docs/add-memo.md) |
| [check-ipv4-address.ps1](Scripts/check-ipv4-address.ps1)| Checks the given IPv4 address for validity | [Help](Docs/check-ipv4-address.md) |
| [check-ipv6-address.ps1](Scripts/check-ipv6-address.ps1)| Checks the given IPv6 address for validity | [Help](Docs/check-ipv6-address.md) |
| [check-mac-address.ps1](Scripts/check-mac-address.ps1)| Checks the given MAC address for validity | [Help](Docs/check-mac-address.md) |
| [check-subnet-mask.ps1](Scripts/check-subnet-mask.ps1)| Checks the given subnet mask for validity | [Help](Docs/check-subnet-mask.md) |
| [check-weather.ps1](Scripts/check-weather.ps1) | Checks the current weather for critical values | [Help](Docs/check-weather.md) |
| [display-time.ps1](Scripts/display-time.ps1) | Displays the current time for 10 seconds by default | [Help](Docs/display-time.md) |
| [list-anagrams.ps1](Scripts/list-anagrams.ps1) | Lists all anagrams of the given word | [Help](Docs/list-anagrams.md) |
| [list-city-weather.ps1](Scripts/list-city-weather.ps1)| Lists the current weather of cities worldwide (west to east) | [Help](Docs/list-city-weather.md) |
| [list-countries.ps1](Scripts/list-countries.ps1) | Lists details of all countries | [Help](Docs/list-countries.md) |
| [list-credits.ps1](Scripts/list-credits.ps1) | Shows the credits | [Help](Docs/list-credits.md) |
| [list-crypto-rates.ps1](Scripts/list-crypto-rates.ps1)| Lists the current crypto exchange rates | [Help](Docs/list-crypto-rates.md) |
| [list-environment-variables.ps1](Scripts/list-environment-variables.ps1)| Lists all environment variables | [Help](Docs/list-environment-variables.md)|
| [list-emojis.ps1](Scripts/list-emojis.ps1) | Lists the emojis of Unicode 13.0 | [Help](Docs/list-emojis.md) |
| [list-fritzbox-calls.ps1](Scripts/list-fritzbox-calls.ps1)| Lists the FRITZ!Box calls | [Help](Docs/list-fritzbox-calls.md) |
| [list-fritzbox-devices.ps1](Scripts/list-fritzbox-devices.ps1)| Lists FRITZ!Box's known devices | [Help](Docs/list-fritzbox-devices.md) |
| [list-earthquakes.ps1](Scripts/list-earthquakes.ps1) | Lists earthquakes with magnitude >= 6.0 for the last 30 days | [Help](Docs/list-earthquakes.md) |
| [list-exchange-rates.ps1](Scripts/list-exchange-rates.ps1)| Lists the current exchange rates for the given currency | [Help](Docs/list-exchange-rates.md) |
| [list-memos.ps1](Scripts/list-memos.ps1) | Lists the memos at $HOME/Memos.csv | [Help](Docs/list-memos.md) |
| [list-mysql-tables.ps1](Scripts/list-mysql-tables.ps1)| Lists the MySQL server tables | [Help](Docs/list-mysql-tables.md) |