Skip to content

Instantly share code, notes, and snippets.

Bryan Dady bcdady

Block or report user

Report or block bcdady

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@bcdady
bcdady / find-str_PSmod
Last active Nov 10, 2016
Find a string within any file included in a PowerShell module
View find-str_PSmod
# search string within All Modules
# e.g. find '-function' within any file in a module
$env:PSModulePath | ForEach-Object { $_ -split ';' | Get-ChildItem -Filter *.ps* -Recurse | Select-String -Pattern 'Write-Log' -SimpleMatch}
@bcdady
bcdady / gist:e3ac78cd27e4dcd82699
Created Apr 26, 2015
Import posh-git module to an existing console (non Git Shell)
View gist:e3ac78cd27e4dcd82699
# Starting a new PowerShell (PS) console on a Windows OS instance that has GitHub client for Windows installed ...
# Find the local instance of git.exe; it's an 'external' dependency for posh-git
Get-ChildItem -Path $env:LocalAppData\GitHub\ -Filter git.exe -Recurse
# Should return at least 1 instance of git.exe
# Select one and add an alias to it
# I choose the one in \bin\ for example:
New-Alias -Name git -Value $env:LOCALAPPDATA\GitHub\PortableGit_c2ba306e536fdf878271f7fe636a147ff37326ad\bin\git.exe
@bcdady
bcdady / gist:06ed3e9b0210bae54e70
Created Apr 28, 2015
Get Help for all commands in a module
View gist:06ed3e9b0210bae54e70
# Quickly list out all commands in a new PowerShell Module, andcheck that they each have useful help content
Get-Command -Module ProfilePal | foreach {get-help $_}
@bcdady
bcdady / Get-DHCPadapters.ps1
Created May 1, 2015
PowerShell One-Liner: Enumerate all DHCP enabled Network Adapters via WMI / CIM, using an embedded CIM query as the -Filter
View Get-DHCPadapters.ps1
# Step 1, filter network adapters to those that are IP & DHCP enabled
# - this can only be done with the Win32_NetworkAdapterConfiguration class:
Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration -Filter 'IpEnabled=True AND DhcpEnabled=True'
# To get a unique handle to any/all network adapters matching the filtered query, retrieve only their Index propery:
(Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration -Filter 'IpEnabled=True AND DhcpEnabled=True').Index
# Using the Index property, enumerate objects in the Win32_NetworkAdapter class, with the same Index (aka DeviceID) property:
# - notice the prior Get-CimInstance query gets wrapped in another $(), to force returning only the resulting value into this Filter statement
# - I added | Format-List, because the default Table formatted results truncated the value of the .Name property
@bcdady
bcdady / gist:25065e63e1564ca06b42
Created Oct 14, 2015
Set kdiff3 (from TortoiseHG) as Git mergetool
View gist:25065e63e1564ca06b42
[mergetool "kdiff3"]
cmd = \"c:\program files/TortoiseHg/kdiff3.exe\" '-auto' \"$BASE\" \"$LOCAL\" \"$REMOTE\" '-o' \"$MERGED\"
trustExitCode = false
@bcdady
bcdady / gist:c9fc5e8733f19abf83d7
Created Oct 20, 2015
Repeat a string in PowerShell
View gist:c9fc5e8733f19abf83d7
http://rosettacode.org/wiki/Repeat_a_string#PowerShell
@bcdady
bcdady / group-files.ps1
Last active Jan 30, 2016
User PowerShell to List files in a folder, Group by extension, sorted in descending order by most common extension(s)
View group-files.ps1
# -Recurse is optional
Get-ChildItem -Path $env:USERPROFILE\Downloads -Recurse | Group-Object -Property Extension | sort -Descending -Property Count
@bcdady
bcdady / ModuleDrives.ps1
Last active Feb 3, 2016
Mount drive letters for each Module Path
View ModuleDrives.ps1
$driveIndex = 1
$env:PSModulePath -split ';' | Sort-Object | foreach { New-PSDrive -Name "PSMods$driveIndex" -PSProvider filesystem -Root $PSItem; $driveIndex++ }
Get-PSDrive -PSProvider FileSystem
@bcdady
bcdady / Get-WinRMListener.ps1
Last active Feb 24, 2016
Test-WSMan alternative, with custom PS Object
View Get-WinRMListener.ps1
$Private:WinRMListener = & winrm e winrm/config/listener; foreach ($line in $Private:WinRMLTokens = $WinRMListener -split '\n') { $Private:lineTokens = $line -split '=';if ($lineTokens[0] -like '*Source*') { $Private:source = $($lineTokens[1]).trim().replace('"','').replace(']','') }; if ($lineTokens[0] -like '*Transport*') { $Private:Transport = $($lineTokens[1]).trim() }; if ($lineTokens[0] -like '*Port*') { $Private:Port = $($lineTokens[1]).trim() }; if ($lineTokens[0] -like '*Enabled*') { $Private:Enabled = $($lineTokens[1]).trim() }; if ($lineTokens[0] -like '*ListeningOn*') { $Private:ListeningOn = $(($lineTokens[1] -split ',')[0]).trim() } }; $Private:properties = [ordered]@{ 'Source' = $source; 'Transport' = $Transport; 'Port' = $Port; 'Enabled' = $Enabled; 'ListeningIP' = $ListeningOn }; $Private:WinRMListenerInfo = New-Object -TypeName PSObject -Property $properties; $WinRMListenerInfo
@bcdady
bcdady / Get-MyAcctGroups.ps1
Created Feb 25, 2016
# Get Groups your account is a member of, via WMI
View Get-MyAcctGroups.ps1
$MyAcctGroups = Get-WmiObject -Query "ASSOCIATORS OF {Win32_Account.Name='$env:username',Domain='$env:USERDOMAIN'} WHERE ResultRole=GroupComponent REsultClass=Win32_Account"
$MyAcctGroups | Get-Member
$MyAcctGroups
You can’t perform that action at this time.