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 |