Skip to content

Instantly share code, notes, and snippets.

Avatar

Chris Dent indented-automation

View GitHub Profile
View Register-Advice.tests.ps1
#Requires -Modules PSKoans
Describe "Register-Advice" {
BeforeAll {
$module = @{
ModuleName = 'PSKoans'
}
}
Context "Profile Folder/File Missing" {
@indented-automation
indented-automation / SystemTray.ps1
Created July 22, 2022 10:36
Functions to allow changes to the visibility of icons in the system tray.
View SystemTray.ps1
enum Visibility : byte {
Default = 0
Hide = 1
Show = 2
}
function Convert-CeaserCipher {
<#
.SYNOPSIS
Convert a string to and from a ceaser cipher (ROT-13) encoding.
@indented-automation
indented-automation / ADDns.ps1
Created July 21, 2022 14:30
This is a mess. Needs major refactoring.
View ADDns.ps1
##############################################################################################################################################################
# IANA #
##############################################################################################################################################################
#
# Address family
#
New-Enum -ModuleBuilder $IndentedDnsMB -Name "Indented.Dns.IanaAddressFamily" -Type "UInt16" -Members @{
IPv4 = 1; # IP version 4
View CreatePackage.ps1
# Chocolatey must be installed on all nodes which intend to use it
https://chocolatey.org/install#individual
# Make a folder called DhcpDaemon
New-Item DhcpDaemon -ItemType Directory
# Inside that folder, make a folder called Tools
# This will hold your installation files and an install script
New-Item DhcpDaemon\tools -ItemType Directory
# Make an install script
@indented-automation
indented-automation / Watch-WinEvent.ps1
Created July 13, 2022 19:07
Event log subscriber
View Watch-WinEvent.ps1
function Watch-WinEvent {
<#
.SYNOPSIS
Watch for events matching a query in the event log.
.DESCRIPTION
Watch for events matching a query in the event log.
#>
@indented-automation
indented-automation / Get-DhcpClientOption.ps1
Created July 12, 2022 15:43
A partial parser for DHCP options in Windows
View Get-DhcpClientOption.ps1
function Get-DhcpClientOption {
[CmdletBinding()]
param ( )
$adapters = Get-CimInstance Win32_NetworkAdapterConfiguration -Filter 'IPEnabled=TRUE AND DhcpEnabled=TRUE'
foreach ($adapter in $adapters) {
$params = @{
LiteralPath = Join-Path 'HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces' -ChildPath $adapter.SettingID
Name = 'DhcpInterfaceOptions'
}
View Get-Manufacturer.ps1
function Update-ManufacturerList {
<#
.SYNOPSIS
Updates the cached manufacturer list maintained by the IEEE.
.DESCRIPTION
Update-ManufacturerList attempts to download the assigned list of MAC address prefixes using Get-WebContent.
The return is converted into an XML format to act as the cache file for Get-Manufacturer.
.PARAMETER Source
By default, the manufacturer list is downloaded from http://standards.ieee.org/develop/regauth/oui/oui.txt. An alternate source may be specified if required.
@indented-automation
indented-automation / Enable-ScriptAlias.ps1
Last active April 26, 2022 19:00
A bit of fun, replaces full command names with aliases
View Enable-ScriptAlias.ps1
using namespace System.Management.Automation.Language
function Enable-ScriptAlias {
<#
.SYNOPSIS
Replace all aliased commands in a script with the alias name.
.DESCRIPTION
Replace all aliased commands in a script with the alias name.
View pushover-example.ps1
$request = @{
Uri = 'https://api.pushover.net/1/messages.json'
Method = 'POST'
ContentType = 'application/x-www-form-urlencoded'
Body = @{
token = 'abc123'
user = 'user123'
message = 'hello world'
}
}
@indented-automation
indented-automation / ConvertFrom-StringData.ps1
Last active October 8, 2021 10:20
A quick replacement for ConvertFrom-StringData which supports ordered dictionary output
View ConvertFrom-StringData.ps1
function ConvertFrom-StringData {
<#
.FORWARDHELPTARGETNAME Microsoft.PowerShell.Utility\ConvertFrom-StringData
#>
[CmdletBinding()]
param (
[Parameter(Mandatory, Position = 1, ValueFromPipeline)]
[string]$StringData,