PoshFunctions

2.2.8

A curated collection of over 210 PowerShell functions. Many functions written by me. Others are attributed wherever possible.

Minimum PowerShell version

3.0

Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name PoshFunctions

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More

Author(s)

Bill Riedy

Copyright

(c) 2022 Bill Riedy. All rights reserved.

Owners

Tags

base64 beep binaryip calendar capslock color-hex color-rgb color-show computersite computer-site credential date-random datetime date-truncate days-week decimalip display dns-async dotteddecimalip email-address expand-string expand-tab exponentiation file file-encoding file-invalidchar folder format functions gui ini inputbox ip iprange isadmin isdate ishexstring isnumeric isvalidemail isvalidip library macaddress magic8ball markdown md5sum msgbox numlock ping-async popup progress random-date registry reverse-string rot13 round savefile scrolllock set-type share-permission share-stat shortcut sid speak subnetmask system timezone urlencode utc wrap-text xml

Functions

Compare-ObjectProperty Compare-ObjectSetComplement Compare-ObjectSetDifference Compare-ObjectSetIntersection Compare-ObjectSetUnion Compare-PSGalleryObject Convert-HexToRGB Convert-Int32ToUint32 Convert-Int64ToText Convert-ObjectToHashtable Convert-RGBToHex Convert-SecureStringToString Convert-UserFlag ConvertFrom-Base64 ConvertFrom-Binary ConvertFrom-DateTime ConvertFrom-FsRight ConvertFrom-Hex ConvertFrom-HtmlEncode ConvertFrom-RomanNumeral ConvertFrom-UrlEncode ConvertFrom-UTC ConvertFrom-Xml ConvertTo-Base64 ConvertTo-Binary ConvertTo-BinaryIPv4 ConvertTo-Bool ConvertTo-DateTime ConvertTo-DecimalIPv4 ConvertTo-DottedDecimalIPv4 ConvertTo-Hex ConvertTo-HtmlEncode ConvertTo-OrderedDictionary ConvertTo-RomanNumeral ConvertTo-UncPath ConvertTo-UrlEncode ConvertTo-UTC Copy-Object Eexit Expand-IPv6 Expand-String Expand-Tab Export-CSVSortedColumn Export-FontSample FileSizeAbove FileSizeBelow Format-MacAddress Format-RandomCase Format-ReverseString Format-ReverseToken Format-SortedList Format-TitleCase Format-WrapText Get-ArpTable Get-Assoc Get-BashPath Get-BinaryType Get-CeasarCipher Get-ComputerSite Get-ComputerUptime Get-DiceRoll Get-DisplayBrightness Get-DNSHostEntryAsync Get-DriveStat Get-DuplicateFileName Get-Enum Get-ExecutableForFile Get-FileEncoding Get-FileName Get-FileWithLeadingSpace Get-FolderName Get-Font Get-Fortune Get-Ftype Get-InvalidFileCharacter Get-IpRange Get-LastDayInMonth Get-List Get-LongName Get-MachineType Get-MacVendor Get-Magic8Ball Get-Md5Sum Get-MyLocalLogonTime Get-NetworkCredential Get-NTFSPermission Get-NtpDate Get-Power Get-PrintableAscii Get-PrivateProfileComment Get-PrivateProfileSection Get-PrivateProfileSectionNames Get-PrivateProfileString Get-ProcessUser Get-PSWho Get-RandomDate Get-RandomHexDigit Get-RandomMacAddress Get-RegExpandString Get-RegistryValue Get-RelativePath Get-Round Get-SaveFileName Get-ScheduledTaskUser Get-ServiceUser Get-Shortcut Get-ShortName Get-SID Get-SpecialFolder Get-SqlDatabase Get-SqlIndexFragmentation Get-SqlStoredProcedure Get-StaticProperty Get-String Get-SubnetMaskIPv4 Get-TruncatedDate Get-Type Get-TypeAccelerator Get-UrlContent Get-VssAdminListVolumes Get-VssAdminListWriters Get-WordCount Get-WordList grep Invoke-Beep Invoke-CountdownTimer Invoke-Speak Join-Object Lock-Workstation Measure-Char Merge-Object mklink Move-ToRecycleBin New-ColorPicker New-Credential New-DatePicker New-FontPicker New-InputBox New-InputBoxSecureString New-MessageBox New-PFDateFormat New-QR New-RandomPassword New-Screenshot New-Shortcut Optimize-SqlIndexFragmentation Optimize-SqlStoredProcedure Out-PDFToPrinter Read-HostWithDefault Remove-BlankOrComment Remove-EmptyProperty Remove-QuotesFromCsv Remove-TeamsCache Remove-Trailing Reset-Desktop Resolve-FQDN Resolve-HostName sed Set-Capslock Set-Display Set-Numlock Set-PrivateProfileComment Set-PrivateProfileString Set-Scrolllock Set-SpeakerVolume Set-Type Set-WindowStyle Show-AllColor Show-Calendar Show-Color Show-ColorsWithBackground Show-DaysOfWeek Show-FileAttribute Show-FsRight Show-Month Show-NamedColor Show-Object Show-Progress Show-ShortDaysOfWeek Show-ShortMonth Show-SubnetMaskIPv4 Show-Timezone Split-Line Start-ADReplication Start-RecordSession Stop-RecordSession Switch-Mute Test-ConnectionAsync Test-IsAdmin Test-IsCapsLock Test-IsDate Test-IsFileLocked Test-IsHexString Test-IsLocalIPv4 Test-IsNull Test-IsNumeric Test-IsNumLock Test-IsScrollLock Test-IsValidEmailAddress Test-IsValidIPv4 Test-IsValidIPv6 Test-MultipleBool Test-Network Test-NtpDateVsNow Test-Password Test-PasswordComplexity Test-Port Test-Set Update-ExplorerIcon Use-Stopwatch Write-StringArray Write-StringHash Write-TextMenu

Dependencies

This module has no dependencies.

Release Notes

For full release notes see .\Resources\ReleaseNotes.txt
### 2.2.8
* created .\Resources folder and moved files from the root of the modules excluding: PoshFunctions.psd1, PoshFunctions.psm1, ReadMe.md
* added additional word list file that contains over 370,000 entries for more English words
* added Convert-Int64ToText - Take an integer value and convert to English text. Valid range +/- 999,999,999,999.
* added ConvertFrom-RomanNumeral - Converts a roman numeral to a number
* added ConvertTo-RomanNumeral - Converts a number to a Roman numeral
* added Get-ArpTable - takes output from 'arp.exe -a' and parses output into objects
* added Get-Assoc - Displays file extension associations
* added Get-Ftype - Displays file types used in file extension associations
* added Get-VssAdminListVolumes - takes output from 'vssadmin.exe list volumes' and parses output into objects
* added Get-VssAdminListWriters - takes output from 'vssadmin.exe list writers' and parses output into objects
* added New-PFDateFormat - which represents a [datetime] in multiple formats
* added Test-IsLocalIPv4 - which determines if target IP address is local or remote (routed through default gateway) given the ip addresses and subnet mask
* deleted Get-Address - REST API at website no longer works
* deleted Get-GeoCode - REST API at website no longer works
* updated Convert-HexToRGB - changed 'return' to 'break' in error condition
* updated ConvertFrom-Datetime - added -ISO8601 parameter
* updated ConvertFrom-FSRight - added -IncludeInput parameter, added support for array of input
* updated ConvertTo-Datetime - added -ISO8601 parameter
* updated Expand-String - changed class name from 'ExtractData' to 'PFExtractData' to prevent conflict
* updated Get-BinaryType - changed namespace from 'Win32Utils' to 'PFWin32Utils' to prevent conflict
* updated Get-ExecutableForFile - changed class name from 'Win32API' to 'PFWin32API' to prevent conflict, changed name of internal variable
* updated Get-LongName - added -LiteralPath for explictly named paths (no wildcards), proper handling of multiple paths with wildcards
* updated Get-MacVendor - changed [ValidatePattern] to logic within function to clean up improperly formatted mac addresses, display MacAddress then Vendor
* updated Get-NTFSPermission - changed 'return' to 'break' in error condition
* updated Get-PrintableAscii - added 'Q' to similar characters regex
* updated Get-RandomDate - changed 'return' to 'break' in error condition
* updated Get-SQLDatabase - changed 'return' to 'break' in error condition
* updated Get-SQLIndexFragmentation - changed 'return' to 'break' in error condition
* updated Get-SQLStoredProcedure - changed 'return' to 'break' in error condition
* updated Get-ShortName - added -LiteralPath for explictly named paths (no wildcards), proper handling of multiple paths with wildcards
* updated Get-UrlContent - changed 'return' to 'break' in error condition
* updated Get-WordCount - function would throw errors if it encountered PowerShell keywords, implemented work around
* updated Get-Wordlist - added -Full to use longer > 370,000 word list resource, moved word list file to .\Resources
* updated New-ColorPicker - to reflect its icon file moving to .\Resources
* updated New-DatePicker - to reflect its icon file moving to .\Resources
* updated New-FontPicker - to reflect its icon file moving to .\Resources
* updated New-InputBoxSecureString - to reflect its icon file moving to .\Resources, changed 'return' to 'break' in error condition
* updated New-RandomPassword - added -FullWordlist to use longer wordlist file. Added 'Q' to similar regex
* updated New-Screenshot - changed 'return' to 'break' in error condition
* updated Optimize-SQLIndexFragmentation - changed 'return' to 'break' in error condition
* updated Optimize-SQLStoredProcedure - changed 'return' to 'break' in error condition
* updated Remove-TeamsCache - changed 'return' to 'break' in error condition
* updated Set-Display - changed class name from 'API' to 'PFAPI' to prevent conflict, changed name of internal variable
* updated Set-SpeakerVolume - added -Adjust parameter so you can adjust volume up or down
* updated Start-AdReplication - changed hard coded -ThrottleLimit from 8 to [environment]::ProcessorCount so that it determines number of processors on the fly
* updated Test-PasswordComplexity - removed dependency on Get-PrintableAscii

### 2.2.7
* added module icon file .\PoshFunctions.ico for custom WinForms forms created
* moved function aliases to within the function definition so all the code is together
* added ConvertFrom-HtmlEncode - helps with decoding strings that contain HTML special characters. For instance, 'this & that' becomes 'this & that'
* added ConvertTo-HtmlEncode - helps with encoding strings that contain HTML special characters. For instance, 'this & that' becomes 'this & that'
* added Export-FontSample - creates HTML output of sample text formatted with all of the installed fonts on the system
* added Get-CeasarCipher - a more robust version of Convert-ROT13 where you can specify the key or number of positions to shift. Aliased to 'Convert-ROT13' for backward compatibility.
* added Get-DisplayBrightness - to determine current display brightness
* added Get-DuplicateFileName - creates a quick list of duplicate file names within a given folder
* added Get-List - function to return an array given an indeterminate number of command line parameters
* added Get-String - function to return a string given an indeterminate number of command line parameters
* added New-ColorPicker - presents dialog box where user can select a color.
* added New-DatePicker - presents dialog box where user can select a date, can optionally include the time
* added New-FontPicker - dialog that allows user to select a font from a dialog box
* added Split-Line - more reliably split a string into its constituent lines. Returns an array.
* added Test-MultipleBool - to do logical AND/OR across an array of boolean values
* added Test-PasswordComplexity - to verify if a string is of proper length and matches all character types
* added Write-StringHash - to take a given hashtable and write the code to create it
* removed Convert-ROT13 - see more robust Get-CeasarCipher
* renamed Set-Speaker to Set-SpeakerVolume to be better named. Set an alias to Set-Speaker for backward compatibility
* renamed Union-Object to Merge-Object to get around Invoke-ScriptAnalyzer error
* updated ConvertFrom-Binary - changed result to [uint64[]] to be able to convert larger numbers.
* updated ConvertFrom-Hex - changed result to [uint64[]] to be able to convert larger numbers.
* updated ConvertTo-Binary - changed -Number to [uint64[]] to be able to convert larger numbers. added -MinimumWidth parameter
* updated ConvertTo-Hex - changed -Number to [uint64[]] to be able to convert larger numbers. added -MinimumWidth parameter, and -Prefix parameter
* updated Get-ComputerUptime - to better handle Kerberos errors sometimes encountered when connecting to systems
* updated Get-DriveStat - to better handle Kerberos errors sometimes encountered when connecting to systems
* updated Get-LastDayInMonth - added -Date parameter and parameter set names
* updated Get-MachineType - to better handle Kerberos errors sometimes encountered when connecting to systems
* updated Get-ProcessUser - to better handle Kerberos errors sometimes encountered when connecting to systems
* updated Get-ServiceUser - to better handle Kerberos errors sometimes encountered when connecting to systems
* updated Merge-Object - aliased to 'Union-Object' for backward compatibility
* updated New-InputBoxSecureString - added module custom icon
* updated New-MessageBox - renamed from New-Popup (aliased for backward compatibility). added functionality for default button
* updated New-RandomPassword - added -TitleCase, -RandomCase, -Web. Changed default parameter set name to ReadableTitleCase
* updated Optimize-SqlIndexFragmentation - to handle error condition of index not having page level locking on. If that error is encountered it enables lock, optimizes index, then disables lock
* updated Set-Display - added -Brightness to set the brightness of the display
* updated Start-ADReplication - added -ThrottleLimit so as to not over saturate the local computer
* updated Test-ConnectionAsync - added -Full switch and made default output brief, slight formatting change in output
* updated Write-StringArray - added -ExcludeDollarSign to make it easier to create input for *.psd1 files

Version History

Version Downloads Last updated
2.2.8 (current version) 400 2/25/2022
2.2.7 225 11/17/2021
2.2.6 206 8/2/2021
2.2.5 3 8/2/2021
2.2.4 40 6/30/2021
2.2.3 25 6/3/2021
2.2.1.6 99 3/23/2021
2.2.1.5 55 2/15/2021
2.2.1.4 20 2/8/2021
2.2.1.3 55 12/17/2020
2.2.1.2 67 10/27/2020
2.2.1.1 8 10/12/2020
1.0.0.1 5 10/12/2020