PowerShell
PowerShell copied to clipboard
Collection of useful PowerShell functions, scripts, snippets and templates
trafficstars
PowerShell
My collection of useful functions, scripts, snippets and templates written by myself.
Description
Automate all the Things!
Module
How to install the module?
- Download the latest Release
- Copy the folder Module\LazyAdmin to
C:\Users\%username%\Documents\WindowsPowerShell\Modules\ - Open up a PowerShell as an admin and set the execution policy:
Set-ExecutionPolicy RemoteSigned - Import the Module with the command
Import-Module LazyAdmin(Maybe add this command to your PowerShell profile)
Available functions:
Folder: File
| Function | Description | Help |
|---|---|---|
| Find-StringInFile | Find a string in one or multiple files | :book: |
| Test-IsFileBinary | Test if a file is binary | :book: |
| Update-StringInFile | Replace a string in one or multiple files | :book: |
Folder: Software
| Function | Description | Help |
|---|---|---|
| Get-InstalledSoftware | Get all installed software with DisplayName, Publisher and UninstallString | :book: |
Folder: Network
| Function | Description | Help |
|---|---|---|
| Clear-ARPCache | Clear the ARP cache | :book: |
| Convert-IPv4Address | Convert an IPv4-Address to Int64 and vise versa | :book: |
| Convert-Subnetmask | Convert a subnetmask to CIDR and vise versa | :book: |
| Get-ARPCache | Get the ARP cache | :book: |
| Get-IPv4Subnet | Calculate a subnet based on an IP-Address and the subnetmask or CIDR | :book: |
| Get-MACAddress | Get the MAC-Address from a remote computer | :book: |
| Get-MACVendor | Get Vendor from a MAC-Address | :book: |
| Get-WLANProfile | Get WLAN profiles, include password as SecureString or as plain text | :book: |
| Invoke-IPv4NetworkScan | Powerful asynchronus IPv4 Network Scanner to scan an IP-Range or subnet | :book: |
| Invoke-IPv4PortScan | Powerful asynchronus IPv4 Port Scanner to scan a TCP Port-Range | :book: |
| Send-WakeOnLan | Send a network message to turn on or wake up a remote computer | :book: |
| Split-IPv4Subnet | Split a subnet in multiple subnets with given subnetmasks | :book: |
Folder: Security
| Function | Description | Help |
|---|---|---|
| ConvertFrom-Base64 | Convert a Base64 encoded string to a plain text string | :book: |
| ConvertTo-Base64 | Convert a text (command) to an Base64 encoded string | :book: |
| Get-RandomPassword | Generate passwords with a freely definable number of characters | :book: |
| Get-RandomPIN | Generate PINs with freely definable number of numbers | :book: |
Folder: TrustedHost
| Function | Description | Help |
|---|---|---|
| Add-TrustedHost | Add a trusted host (WinRM) | :book: |
| Get-TrustedHost | Get trusted hosts (WinRM) | :book: |
| Remove-TrustedHost | Remove a trusted host (WinRM) | :book: |
| Set-TrustedHost | Set a trusted host (WinRM) | :book: |
Folder: Windows
| Function | Description | Help |
|---|---|---|
| Get-LastBootTime | Get the time when a computer is booted | :book: |
| Get-WindowsProductKey | Get the Windows product key and some usefull informations about the system | :book: |
Folder: Other
| Function | Description | Help |
|---|---|---|
| Get-ConsoleColor | Get all available console colors | :book: |
Scripts
| Script | Description | Help |
|---|---|---|
| Convert-ROT13 | Rotate lower and upper chars by n places (Caesar cipher) | :book: |
| Convert-ROT47 | Rotate ascii chars by n places (Caesar cipher) | :book: |
| OptimizePowerShellStartup.ps1 | Optimize PowerShell startup by reduce JIT compile time with ngen.exe | :book: |
Snippets
| Snippet | Description |
|---|---|
| ConnectToExchange2010.ps1 | Connect to Exchange 2010 Management Shell in script |
| CredentialParameter.ps1 | Parameter to pass credentials into a function/script |
| DefaultDisplayPropertySet.ps1 | Set the default properties of an object |
| New-Object.ps1 | Create a new PSObject with custom properties |
| PressAnyKeyToContinue.ps1 | Wait until the user pressed a key |
| PromptForChoice.ps1 | Prompt for choice |
| PSCustomObject.ps1 | Create a new PSObject with custom properties (faster than New-Object/Add-Member) |
| RewriteInLine.ps1 | Rewrite in Line (Write-Host "xx% complete") |
| SelfElevatingScript.ps1 | Self elevate a PowerShell script/console with parameters |
| Send-MailMessage.ps1 | Send a mail message via PowerShell |
Regex
| Regex | Description |
|---|---|
| IPv4Address.ps1 | Validate an IPv4-Address like 192.168.1.0 |
| MACAddress.ps1 | Validate a MAC-Address like 00:00:00:00:00:00 or 00-00-00-00-00-00 or 000000000000 |
| Subnetmask.ps1 | Validate an Subnetmask like 255.255.255.0 |
Templates
| Template | Description |
|---|---|
| Default.ps1 | Default template for new scripts |
| Default.README.md | Default template for documentation on GitHub |
| RunspacePool.ps1 | RunspacePool template - run code asynchron (faster than PSJobs) |
| ScheduledTask_Logging.ps1 | Template to run a script as scheduled task with logging |