Skip to content

Instantly share code, notes, and snippets.

Avatar

Bryan Dady bcdady

View GitHub Profile
@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
@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}
View Get-FilesWithString
# Enumerate files (full path) that have a matching string found within
# In this example, only PowerShell files (*.ps*1) are being searched for the simple wildcard string 'servicegroup'
PS .\> gci -Path .\ -Filter *.ps*1 -Recurse -File | Select-String -SimpleMatch servicegroup | group -Property Path | select -ExpandProperty Name
You can’t perform that action at this time.