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 | 📖 |
Test-IsFileBinary | Test if a file is binary | 📖 |
Update-StringInFile | Replace a string in one or multiple files | 📖 |
Folder: Software
Function | Description | Help |
---|---|---|
Get-InstalledSoftware | Get all installed software with DisplayName, Publisher and UninstallString | 📖 |
Folder: Network
Function | Description | Help |
---|---|---|
Clear-ARPCache | Clear the ARP cache | 📖 |
Convert-IPv4Address | Convert an IPv4-Address to Int64 and vise versa | 📖 |
Convert-Subnetmask | Convert a subnetmask to CIDR and vise versa | 📖 |
Get-ARPCache | Get the ARP cache | 📖 |
Get-IPv4Subnet | Calculate a subnet based on an IP-Address and the subnetmask or CIDR | 📖 |
Get-MACAddress | Get the MAC-Address from a remote computer | 📖 |
Get-MACVendor | Get Vendor from a MAC-Address | 📖 |
Get-WLANProfile | Get WLAN profiles, include password as SecureString or as plain text | 📖 |
Invoke-IPv4NetworkScan | Powerful asynchronus IPv4 Network Scanner to scan an IP-Range or subnet | 📖 |
Invoke-IPv4PortScan | Powerful asynchronus IPv4 Port Scanner to scan a TCP Port-Range | 📖 |
Send-WakeOnLan | Send a network message to turn on or wake up a remote computer | 📖 |
Split-IPv4Subnet | Split a subnet in multiple subnets with given subnetmasks | 📖 |
Folder: Security
Function | Description | Help |
---|---|---|
ConvertFrom-Base64 | Convert a Base64 encoded string to a plain text string | 📖 |
ConvertTo-Base64 | Convert a text (command) to an Base64 encoded string | 📖 |
Get-RandomPassword | Generate passwords with a freely definable number of characters | 📖 |
Get-RandomPIN | Generate PINs with freely definable number of numbers | 📖 |
Folder: TrustedHost
Function | Description | Help |
---|---|---|
Add-TrustedHost | Add a trusted host (WinRM) | 📖 |
Get-TrustedHost | Get trusted hosts (WinRM) | 📖 |
Remove-TrustedHost | Remove a trusted host (WinRM) | 📖 |
Set-TrustedHost | Set a trusted host (WinRM) | 📖 |
Folder: Windows
Function | Description | Help |
---|---|---|
Get-LastBootTime | Get the time when a computer is booted | 📖 |
Get-WindowsProductKey | Get the Windows product key and some usefull informations about the system | 📖 |
Folder: Other
Function | Description | Help |
---|---|---|
Get-ConsoleColor | Get all available console colors | 📖 |
Scripts
Script | Description | Help |
---|---|---|
Convert-ROT13 | Rotate lower and upper chars by n places (Caesar cipher) | 📖 |
Convert-ROT47 | Rotate ascii chars by n places (Caesar cipher) | 📖 |
OptimizePowerShellStartup.ps1 | Optimize PowerShell startup by reduce JIT compile time with ngen.exe | 📖 |
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 |