Skip to content

Instantly share code, notes, and snippets.

View thedavecarroll's full-sized avatar
🧑‍💻
PowerShell Summit

Dave Carroll thedavecarroll

🧑‍💻
PowerShell Summit
View GitHub Profile
@thedavecarroll
thedavecarroll / Get-IanaPortNumberRegistry.ps1
Last active May 29, 2021 14:34
Get IANA Port Number Registry
function Get-IanaPortNumberRegistry {
[CmdLetBinding()]
param(
[ValidateSet('TCP','UDP','SCTP','DCCP')]
[string[]]$Protocol,
[ValidateRange(0,65535)]
[int[]]$PortNumber,
[string]$ServiceName,
[switch]$RefreshCache,
[string]$AlternatePath
@thedavecarroll
thedavecarroll / EventData.psm1
Last active May 28, 2021 11:59
Create New Windows Event Source (Provider) and Write Unnamed EventData
function New-EventSource {
[CmdLetBinding()]
param(
[string]$EventLog,
[string]$Source
)
if ([System.Diagnostics.EventLog]::SourceExists($Source) -eq $false) {
try {
[System.Diagnostics.EventLog]::CreateEventSource($Source, $EventLog)
@thedavecarroll
thedavecarroll / 1 - WordPressApi.psm1
Last active December 22, 2019 18:49
IronScripter Challenge - December 17, 2019 - A PowerShell Challenge for Challenges
function Get-WPSite {
[CmdLetBinding()]
param(
[Parameter(Mandatory)]
[uri]$Url
)
if ($Url.AbsoluteUri -notmatch 'wp-json') {
[uri]$Url = $Url.AbsoluteUri,'wp-json' -join '/'
}
@thedavecarroll
thedavecarroll / Test-MarkdownFileLinks.ps1
Last active February 2, 2020 21:36
Test Links in Markdown Files with PowerShell (and Regex)
@thedavecarroll
thedavecarroll / DemoModule.psd1
Last active July 26, 2020 16:58
PowerShell 7 Experimental Features Demo
@{
RootModule = 'DemoModule.psm1'
ModuleVersion = '0.7.0'
CompatiblePSEditions = 'Core'
GUID = 'a007643e-c876-4806-b6cb-367963716e98'
Author = 'Dave'
CompanyName = 'thedavecarroll'
@thedavecarroll
thedavecarroll / markdown.json
Created May 11, 2020 19:16
Markdown Snippet for Visual Studio Code
{
// insert markdown links
"Insert Link" : {
"prefix": "link",
"body": [
"[text][text]{:target=\"_blank\"}"
]
},
"Insert Reference" : {
"prefix": "ref",
@thedavecarroll
thedavecarroll / 1 - Get-IntermediateCountingChallenge .ps1
Created May 11, 2020 23:06
IronScripter Challenge - May 11, 2020 - A PowerShell Counting Challenge
# Intermediate Challenge
# Create a PowerShell function to get the sum and average of every X number between 1 and a user specified maximum
function Get-IntermediateCountingChallenge {
param(
[int]$Step,
[int]$Max
)
$NumberArray = for ($i = 1; $i -le $Max; $i = $i + $Step) { $i }
@thedavecarroll
thedavecarroll / Get-NetworkUsage.ps1
Last active May 13, 2020 05:17
IronScripter Challenge - April 27, 2020 - Building a Network Usage PowerShell Monitor
function Get-NetworkUsage {
[CmdletBinding(DefaultParameterSetName='Default')]
param(
[string]$ComputerName = $env:COMPUTERNAME,
[int]$WarnSentBytes = 10000,
[Parameter(ParameterSetName='Default')]
[int]$MaxSamples = 5,
[Parameter(ParameterSetName='Default')]
[int]$SampleInterval = 1,
[Parameter(ParameterSetName='Default')]
@thedavecarroll
thedavecarroll / ValidateTwoLetterRegionName.ps1
Created May 18, 2020 17:19
Validate Two Letter Region Names with PowerShell
$TwoLetterISORegionNames = Get-Culture -ListAvailable |
Foreach-Object {
try { [System.Globalization.RegionInfo]::new($_.Name) }
catch {}
} |
Select-Object -ExpandProperty TwoLetterISORegionName | Sort-Object -Unique
'US','CA','UK' | % { $_ -in $TwoLetterISORegionNames ? '{0} is valid' -f $_ : '{0} is not valid' -f $_ }
@thedavecarroll
thedavecarroll / OAuthParameters.class.ps1
Last active June 5, 2020 03:31
PowerShell 7 Class for OAuth 1
#requires -version 7.0
class OAuthParameters {
[string]$HttpMethod
[String]$BaseUri
[hashtable]$Query
[System.UriBuilder]$UriBuilder
[string]$UnescapedQueryString
[string]$EscapedQueryString
[object]$Body