PowerShell/README.md

201 lines
17 KiB
Markdown
Raw Normal View History

2021-03-25 17:09:17 +01:00
Mega Collection of PowerShell Scripts
=====================================
2020-05-01 11:44:56 +02:00
2021-04-07 11:03:36 +02:00
**This repository provides more than 160 useful and cross-platform PowerShell scripts in the subfolder [Scripts/](Scripts/) - to be used by command-line interface (CLI), for remote control (e.g. via SSH), by context menu, by voice control, by automation software like Jenkins, automatically as daily tasks, or simply to learn PowerShell. See the [PowerShell FAQ page](Misc/FAQ.md) if you need help or have any questions.**
2020-10-03 23:43:59 +02:00
2021-03-25 17:07:19 +01:00
🔊 PowerShell Scripts for Audio & Voice
----------------------------------------
2021-02-19 17:52:02 +01:00
* [mute-audio.ps1](Scripts/mute-audio.ps1) - mutes audio
* [play-beep.ps1](Scripts/play-beep.ps1) - plays a beep sound
* [play-mission-impossible.ps1](Scripts/play-mission-impossible.ps1) - plays the Mission Impossible theme
* [play-m3u.ps1](Scripts/play-m3u.ps1) - plays the given playlist (M3U file format)
* [play-mp3.ps1](Scripts/play-mp3.ps1) - plays the given sound file (MP3 file format)
* [play-super-mario.ps1](Scripts/play-super-mario.ps1) - plays the Super Mario Intro
* [play-the-imperial-march.ps1](Scripts/play-the-imperial-march.ps1) - plays the Imperial March (Star Wars)
* [speak-date.ps1](Scripts/speak-date.ps1) - speaks the current date by text-to-speech (TTS)
* [speak-english.ps1](Scripts/speak-english.ps1) - speaks the given text with an English text-to-speech (TTS) voice
* [speak-epub.ps1](Scripts/speak-epub.ps1) - speaks the content of the given Epub file by text-to-speech (TTS)
* [speak-file.ps1](Scripts/speak-file.ps1) - speaks the content of the given text file by text-to-speech (TTS)
* [speak-german.ps1](Scripts/speak-german.ps1) - speaks the given text with a German text-to-speech (TTS) voice
* [speak-joke.ps1](Scripts/speak-joke.ps1) - speaks the next joke by text-to-speech (TTS)
* [speak-test.ps1](Scripts/speak-test.ps1) - performs a speak test by text-to-speech (TTS)
* [speak-text.ps1](Scripts/speak-text.ps1) - speaks the given text by text-to-speech (TTS)
* [speak-time.ps1](Scripts/speak-time.ps1) - speaks the current time by text-to-speech (TTS)
* [txt2wav.ps1](Scripts/txt2wav.ps1) - converts text into a audio .WAV file
* [turn-volume-up.ps1](Scripts/turn-volume-up.ps1) - turns the audio volume up (+10% by default)
* [turn-volume-down.ps1](Scripts/turn-volume-down.ps1) - turns the audio volume down (-10% by default)
* [unmute-audio.ps1](Scripts/unmute-audio.ps1) - unmutes audio
* [voice-control.ps1](Scripts/voice-control.ps1) - executes the PowerShell scripts by voice
2021-03-25 17:07:19 +01:00
⚙️ PowerShell Scripts for Computer Management
----------------------------------------------
2021-04-05 10:48:34 +02:00
* [add-firewall-rules.ps1](Scripts/add-firewall-rules.ps1) - adds firewall rules for the given executables (needs admin rights)
2021-03-20 16:13:54 +01:00
* [check-cpu-temp.ps1](Scripts/check-cpu-temp.ps1) - checks the CPU temperature
2021-03-20 15:51:03 +01:00
* [check-dns-resolution.ps1](Scripts/check-dns-resolution.ps1) - checks the DNS resolution with frequently used domain names
2021-02-26 11:06:01 +01:00
* [check-drive-space.ps1](Scripts/check-drive-space.ps1) - checks the given drive for free space left
2021-04-05 10:48:34 +02:00
* [check-file-system.ps1](Scripts/check-file-system.ps1) - checks the validity of the file system (needs admin rights)
2021-03-20 15:51:03 +01:00
* [check-health.ps1](Scripts/check-health.ps1) - checks the system health
2021-03-30 09:06:30 +02:00
* [check-ping.ps1](Scripts/check-ping.ps1) - checks the ping latency to the internet
2021-03-15 17:22:33 +01:00
* [check-swap-space.ps1](Scripts/check-swap-space.ps1) - checks the swap space for free space left
2021-04-05 10:48:34 +02:00
* [check-windows-system-files.ps1](Scripts/check-windows-system-files.ps1) - checks the validity of the Windows system files (needs admin rights)
2021-02-24 11:41:48 +01:00
* [enable-crash-dumps.ps1](Scripts/enable-crash-dumps.ps1) - enables the writing of crash dumps
2021-03-25 17:28:16 +01:00
* [enable-ssh-client.ps1](Scripts/enable-ssh-client.ps1) - enables the SSH client
2021-03-25 17:24:31 +01:00
* [enable-ssh-server.ps1](Scripts/enable-ssh-server.ps1) - enables the SSH server
2021-04-05 10:48:34 +02:00
* [hibernate.ps1](Scripts/hibernate.ps1) - enables hibernate mode for the local computer (needs admin rights)
2021-03-15 17:22:33 +01:00
* [list-drives.ps1](Scripts/list-drives.ps1) - lists all drives
2021-02-24 11:41:48 +01:00
* [list-network-shares.ps1](Scripts/list-network-shares.ps1) - lists the network shares of the local computer
* [list-current-timezone.ps1](Scripts/list-current-timezone.ps1) - lists the current time zone details
* [list-installed-apps.ps1](Scripts/list-installed-apps.ps1) - lists the installed Windows Store apps
* [list-installed-software.ps1](Scripts/list-installed-software.ps1) - lists the installed software (except Windows Store apps)
* [list-printers.ps1](Scripts/list-printers.ps1) - lists all printer known to the computer
* [list-processes.ps1](Scripts/list-processes.ps1) - lists the local computer processes
2021-03-27 10:02:38 +01:00
* [list-tasks.ps1](Scripts/list-tasks.ps1) - lists all Windows scheduler tasks
2021-02-24 11:41:48 +01:00
* [list-timezones.ps1](Scripts/list-timezones.ps1) - lists all time zones available
* [list-user-groups.ps1](Scripts/list-user-groups.ps1) - lists the user groups on the local computer
2021-04-05 10:48:34 +02:00
* [poweroff.ps1](Scripts/poweroff.ps1) - halts the local computer (needs admin rights)
2021-02-24 11:41:48 +01:00
* [query-smart-data.ps1](Scripts/query-smart-data.ps1) - queries the S.M.A.R.T. data of your HDD/SSD's
2021-04-05 10:48:34 +02:00
* [reboot.ps1](Scripts/reboot.ps1) - reboots the local computer (needs admin rights)
2021-02-24 11:41:48 +01:00
* [wakeup.ps1](Scripts/wakeup.ps1) - sends a magic packet to the given computer, waking him up
2021-03-25 17:07:19 +01:00
💻 PowerShell Scripts for the Desktop
--------------------------------------
2021-01-09 15:59:37 +01:00
* [close-calculator.ps1](Scripts/close-calculator.ps1) - closes the calculator program gracefully
* [close-chrome.ps1](Scripts/close-chrome.ps1) - closes Google Chrome gracefully
2021-02-13 16:59:38 +01:00
* [close-cortana.ps1](Scripts/close-cortana.ps1) - closes Cortana gracefully
* [close-edge.ps1](Scripts/close-edge.ps1) - closes Microsoft Edge gracefully
* [close-file-explorer.ps1](Scripts/close-file-explorer.ps1) - closes Microsoft File Explorer gracefully
* [close-program.ps1](Scripts/close-program.ps1) - closes the given program gracefully
2021-02-13 17:10:43 +01:00
* [close-system-settings.ps1](Scripts/close-system-settings.ps1) - closes the System Settings gracefully
* [close-thunderbird.ps1](Scripts/close-thunderbird.ps1) - closes Mozilla Thunderbird gracefully
2021-02-13 17:15:43 +01:00
* [close-vlc.ps1](Scripts/close-vlc.ps1) - closes the VLC media player gracefully
* [close-windows-terminal.ps1](Scripts/close-windows-terminal.ps1) - closes Windows Terminal gracefully
2021-03-22 18:37:33 +01:00
* [enable-god-mode.ps1](Scripts/enable-god-mode.ps1) - enables the god mode (adds a new icon to the desktop)
2021-02-19 17:52:02 +01:00
* [list-clipboard.ps1](Scripts/list-clipboard.ps1) - lists the contents of the clipboard
* [new-email.ps1](Scripts/new-email.ps1) - starts the default email client to write a new email
* [open-browser.ps1](Scripts/open-browser.ps1) - starts the default Web browser
* [open-calculator.ps1](Scripts/open-calculator.ps1) - starts the calculator program
* [open-email-client.ps1](Scripts/open-browser.ps1) - starts the default email client
* [set-wallpaper.ps1](Scripts/set-wallpaper.ps1) - sets the given image as wallpaper
2021-02-20 09:20:47 +01:00
* [take-screenshot.ps1](Scripts/take-screenshot.ps1) - takes a single screenshot
2021-02-21 12:37:54 +01:00
* [take-screenshots.ps1](Scripts/take-screenshots.ps1) - takes multiple screenshots (every minute by default)
2021-02-19 17:52:02 +01:00
2021-03-25 17:07:19 +01:00
📁 PowerShell Scripts for Files & Folders
------------------------------------------
2021-02-19 17:52:02 +01:00
* [check-symlinks.ps1](Scripts/check-symlinks.ps1) - checks every symlink in the given directory tree
* [check-xml-file.ps1](Scripts/check-xml-file.ps1) - checks the given XML file for validity
2021-03-15 08:06:37 +01:00
* [create-shortcut.ps1](Scripts/create-shortcut.ps1) - creates a shortcut
2021-02-17 08:24:03 +01:00
* [create-symlink.ps1](Scripts/create-symlink.ps1) - creates a symbolic link
2021-02-19 17:52:02 +01:00
* [decrypt-file.ps1](Scripts/decrypt-file.ps1) - encrypts the given file
* [download.ps1](Scripts/download.ps1) - downloads the file/directory from the given URL
* [edit.ps1](Scripts/edit.ps1) - edits the given file with the built-in text editor
2021-02-19 17:52:02 +01:00
* [encrypt-file.ps1](Scripts/encrypt-file.ps1) - encrypts the given file
* [go-downloads.ps1](Scripts/go-downloads.ps1) - go to the user's downloads folder
* [go-home.ps1](Scripts/go-home.ps1) - go to the user's home folder
* [go-music.ps1](Scripts/go-music.ps1) - go to the user's music folder
2021-03-15 08:37:52 +01:00
* [go-root.ps1](Scripts/go-root.ps1) - go to the root directory (C:\ on Windows)
2021-02-26 14:54:30 +01:00
* [go-scripts.ps1](Scripts/go-scripts.ps1) - go to the PowerShell Scripts folder
2021-02-19 17:52:02 +01:00
* [inspect-exe.ps1](Scripts/inspect-exe.ps1) - prints basic information of the given executable file
* [list-empty-dirs.ps1](Scripts/list-empty-dirs.ps1) - lists empty subfolders within the given directory tree
* [list-empty-files.ps1](Scripts/list-empty-files.ps1) - lists empty files within the given directory tree
* [list-files.ps1](Scripts/list-files.ps1) - lists all files in the given folder and also in every subfolder
* [list-formatted.ps1](Scripts/list-formatted.ps1) - lists the current working directory formatted in columns
2021-02-27 11:37:50 +01:00
* [list-hidden-files.ps1](Scripts/list-hidden-files.ps1) - lists hidden files within the given directory tree
2021-02-20 09:20:47 +01:00
* [list-unused-files.ps1](Scripts/list-unused-files.ps1) - lists unused files in a directory tree
* [make-install.ps1](Scripts/make-install.ps1) - installs built executables and libs to the installation directory
2021-02-19 17:52:02 +01:00
* [MD5.ps1](Scripts/MD5.ps1) - prints the MD5 checksum of the given file
* [remove-empty-dirs.ps1](Scripts/remove-empty-dirs.ps1) - removes empty subfolders within the given directory tree
* [search-files.ps1](Scripts/search-files.ps1) - searches the given pattern in the given files
* [SHA1.ps1](Scripts/SHA1.ps1) - prints the SHA1 checksum of the given file
* [SHA256.ps1](Scripts/SHA256.ps1) - prints the SHA256 checksum of the given file
* [show-dir-tree.ps1](Scripts/show-dir-tree.ps1) - visualizes the given/current directory tree
* [zip-dir.ps1](Scripts/zip-dir.ps1) - creates a zip archive of the given directory
2021-03-25 17:07:19 +01:00
📝 PowerShell Scripts for Git
------------------------------
2021-03-16 15:27:00 +01:00
* [cherry-picker.ps1](Scripts/cherry-picker.ps1) - cherry-picks a Git commit into multiple branches
2021-04-01 14:27:45 +02:00
* [clean-repo.ps1](Scripts/clean-repo.ps1) - cleans the current/given Git repository from untracked files (including submodules)
2021-02-21 12:32:08 +01:00
* [clone-repos.ps1](Scripts/clone-repos.ps1) - clones well-known Git repositories
* [configure-git.ps1](Scripts/configure-git.ps1) - sets up the Git user configuration
2021-03-31 15:51:55 +02:00
* [create-branch.ps1](Scripts/create-branch.ps1) - creates a new branch in the current/given Git repository
2021-04-01 14:20:18 +02:00
* [create-tag.ps1](Scripts/create-tag.ps1) - creates a new tag in the current/given Git repository
* [fetch-repo.ps1](Scripts/fetch-repo.ps1) - fetches updates for the current/given Git repository (including submodules)
* [fetch-repos.ps1](Scripts/fetch-repos.ps1) - fetches updates for all Git repositories under the current/given directory (including submodules)
* [list-branches.ps1](Scripts/list-branches.ps1) - lists all branches in the current/given Git repository
* [list-commits.ps1](Scripts/list-commits.ps1) - lists all commits in the current/given Git repository
2021-03-18 16:58:41 +01:00
* [list-tags.ps1](Scripts/list-tags.ps1) - lists all tags in the current/given Git repository
2021-03-19 17:47:07 +01:00
* [pull-repo.ps1](Scripts/pull-repo.ps1) - pulls updates for the current/given Git repository (including submodules)
2021-03-19 17:43:28 +01:00
* [pull-repos.ps1](Scripts/pull-repos.ps1) - pulls updates for all Git repositories under the current/given directory (including submodules)
2021-03-16 15:44:36 +01:00
* [switch-branch.ps1](Scripts/switch-branch.ps1) - switches the branch in the current/given Git repository (including submodules)
2021-02-21 12:32:08 +01:00
2021-03-05 12:55:20 +01:00
🔎 Scripts for PowerShell
2021-02-24 07:35:59 +01:00
------------------------
* [daily-tasks.sh](Scripts/daily-tasks.sh) - execute PowerShell scripts automatically as daily tasks (Linux only)
* [introduce-powershell.sh](Scripts/introduce-powershell.sh) - introduces PowerShell to new users
2021-02-27 11:19:57 +01:00
* [list-aliases.ps1](Scripts/list-aliases.ps1) - lists all PowerShell aliases
2021-02-24 07:35:59 +01:00
* [list-automatic-variables.ps1](Scripts/list-automatic-variables.ps1) - lists the automatic variables of PowerShell
* [list-cmdlets.ps1](Scripts/list-cmdlets.ps1) - lists the PowerShell cmdlets
* [list-modules.ps1](Scripts/list-modules.ps1) - lists the PowerShell modules
2021-02-24 19:03:31 +01:00
* [list-profiles.ps1](Scripts/list-profiles.ps1) - lists your PowerShell profiles
2021-02-24 07:35:59 +01:00
* [list-scripts.ps1](Scripts/list-scripts.ps1) - lists all PowerShell scripts in this repository
2021-02-24 20:18:27 +01:00
* [set-profile.ps1](Scripts/set-profile.ps1) - updates your PowerShell user profile
2021-02-24 07:35:59 +01:00
2021-03-25 17:07:19 +01:00
🛒 Various PowerShell Scripts
------------------------------
2021-02-19 17:52:02 +01:00
* [check-ipv4-address.ps1](Scripts/check-ipv4-address.ps1) - checks the given IPv4 address for validity
* [check-ipv6-address.ps1](Scripts/check-ipv6-address.ps1) - checks the given IPv6 address for validity
* [check-mac-address.ps1](Scripts/check-mac-address.ps1) - checks the given MAC address for validity
2020-12-22 16:03:30 +01:00
* [csv-to-text.ps1](Scripts/csv-to-text.ps1) - converts the given CSV file into a text list
2021-01-09 12:36:37 +01:00
* [display-time.ps1](Scripts/display-time.ps1) - displays the current time for 10 seconds by default
2020-12-30 16:40:07 +01:00
* [generate-qrcode.ps1](Scripts/generate-qrcode.ps1) - generates a QR code
2020-12-22 11:42:32 +01:00
* [list-anagrams.ps1](Scripts/list-anagrams.ps1) - lists all anagrams of the given word
2021-02-01 07:30:14 +01:00
* [list-environment-variables.ps1](Scripts/list-environment-variables.ps1) - lists all environment variables
2021-01-03 11:49:06 +01:00
* [list-fritzbox-calls.ps1](Scripts/list-fritzbox-calls.ps1) - lists the FRITZ!Box calls
2021-01-03 17:27:38 +01:00
* [list-fritzbox-devices.ps1](Scripts/list-fritzbox-devices.ps1) - lists FRITZ!Box's known devices
2020-12-24 10:44:10 +01:00
* [list-logbook.ps1](Scripts/list-logbook.ps1) - lists the content of the logbook
2020-12-29 15:21:04 +01:00
* [list-earthquakes.ps1](Scripts/list-earthquakes.ps1) - lists earthquakes with magnitude >= 6.0 for the last 30 days
* [list-news.ps1](Scripts/list-news.ps1) - lists the latest news
2021-01-01 19:27:03 +01:00
* [list-os-releases.ps1](Scripts/list-os-releases.ps1) - lists OS releases and download URL
2020-12-22 09:53:12 +01:00
* [list-random-passwords.ps1](Scripts/list-random-passwords.ps1) - prints a list of random passwords
2020-12-22 10:12:50 +01:00
* [list-random-pins.ps1](Scripts/list-random-pins.ps1) - prints a list of random PIN's
2020-12-16 12:03:47 +01:00
* [locate-city.ps1](Scripts/locate-city.ps1) - prints the geographic location of the given city
* [locate-ipaddress.ps1](Scripts/locate-ipaddress.ps1) - prints the geographic location of the given IP address
2020-12-17 08:56:21 +01:00
* [locate-zip-code.ps1](Scripts/locate-zip-code.ps1) - prints the geographic location of the given zip-code
2020-09-25 15:03:48 +02:00
* [moon.ps1](Scripts/moon.ps1) - prints the current moon phase
2021-01-12 17:06:35 +01:00
* [next-joke.ps1](Scripts/next-joke.ps1) - gets the next random Juck Norris joke
2021-01-03 11:26:27 +01:00
* [reboot-fritzbox.ps1](Scripts/reboot-fritzbox.ps1) - reboots the FRITZ!box device
2020-11-28 10:00:04 +01:00
* [scan-ports.ps1](Scripts/scan-ports.ps1) - scans the network for open/closed ports
2020-11-28 09:18:36 +01:00
* [send-email.ps1](Scripts/send-email.ps1) - sends an email message
2020-12-09 10:22:41 +01:00
* [send-tcp.ps1](Scripts/send-udp.ps1) - sends a TCP message to the given IP address and port
2020-11-28 09:18:36 +01:00
* [send-udp.ps1](Scripts/send-udp.ps1) - sends a UDP datagram message to the given IP address and port
2020-12-18 14:15:08 +01:00
* [set-timer.ps1](Scripts/set-timer.ps1) - sets a timer for a countdown
2020-12-15 15:21:50 +01:00
* [simulate-matrix.ps1](Scripts/simulate-matrix.ps1) - simulates the Matrix (fun)
2020-11-30 16:28:56 +01:00
* [simulate-presence.ps1](Scripts/simulate-presence.ps1) - simulates the human presence against burglars
2020-12-01 10:54:41 +01:00
* [switch-shelly1.ps1](Scripts/switch-shelly1.ps1) - switches a Shelly1 device in the local network
2020-12-08 13:36:22 +01:00
* [translate-text.ps1](Scripts/translate-text.ps1) - translates the given text into other languages
2020-09-25 15:03:48 +02:00
* [weather.ps1](Scripts/weather.ps1) - prints the current weather forecast
2020-11-11 21:00:51 +01:00
* [weather-alert.ps1](Scripts/weather-alert.ps1) - checks the current weather for critical values
2020-11-11 11:12:18 +01:00
* [weather-report.ps1](Scripts/weather-report.ps1) - prints the local weather report
2020-12-17 08:56:21 +01:00
* [weather-worldwide.ps1](Scripts/weather-worldwide.ps1) - prints the current weather of cities worldwide
2021-02-06 14:38:58 +01:00
* [write-animated.ps1](Scripts/write-animated.ps1) - writes animated text
2020-12-18 16:32:03 +01:00
* [write-big.ps1](Scripts/write-big.ps1) - writes the given text in big letters
2020-12-21 14:42:05 +01:00
* [write-blue.ps1](Scripts/write-blue.ps1) - writes the given text in a blue foreground color
2020-12-22 09:24:30 +01:00
* [write-braille.ps1](Scripts/write-braille.ps1) - writes the given text in Braille
2020-12-21 14:42:05 +01:00
* [write-green.ps1](Scripts/write-green.ps1) - writes the given text in a green foreground color
2020-12-24 10:44:10 +01:00
* [write-logbook.ps1](Scripts/write-logbook.ps1) - writes the given text to the logbook
2021-01-03 18:32:46 +01:00
* [write-marquee.ps1](Scripts/write-marquee.ps1) - writes the given text as marquee
2020-12-21 18:03:36 +01:00
* [write-morse-code.ps1](Scripts/write-morse-code.ps1) - writes the given text in Morse code
2020-12-22 11:42:32 +01:00
* [write-motd.ps1](Scripts/write-motd.ps1) - writes the message of the day (MOTD)
2020-12-21 14:42:05 +01:00
* [write-red.ps1](Scripts/write-red.ps1) - writes the given text in a red foreground color
2020-12-22 11:42:32 +01:00
* [write-rot13.ps1](Scripts/write-rot13.ps1) - encodes or decodes the given text with ROT13
2020-12-21 14:42:05 +01:00
* [write-typewriter.ps1](Scripts/write-typewriter.ps1) - writes the given text with the typewriter effect
2020-12-18 15:40:56 +01:00
* [write-uppercase.ps1](Scripts/write-uppercase.ps1) - writes the given text in uppercase letters
2020-12-18 15:53:17 +01:00
* [write-vertical.ps1](Scripts/write-vertical.ps1) - writes the given text in vertical direction
2020-05-22 09:54:16 +02:00
2020-06-15 15:09:54 +02:00
Feedback
--------
2020-06-15 16:01:12 +02:00
Send your email feedback to: markus [at] fleschutz [dot] de
2020-06-15 15:09:54 +02:00
2020-05-02 13:01:03 +02:00
License & Copyright
-------------------
This open source release is licensed under the CC0 license. All trademarks are the property of their respective owners.