Skip to content

Instantly share code, notes, and snippets.

View bixb0012's full-sized avatar

Joshua Bixby bixb0012

View GitHub Profile
@bixb0012
bixb0012 / powershell_pki.ps1
Last active March 29, 2023 22:22
PowerShell: PKI-related
#Requires -Version 5.1
# Reference: 1) https://learn.microsoft.com/en-us/powershell/module/pki/new-selfsignedcertificate?view=windowsserver2019-ps
# Reference: 2) https://learn.microsoft.com/en-us/powershell/module/pki/export-certificate?view=windowsserver2019-ps
# Example 1: Create new self-signed certificate for use with Cryptographic Message Syntax (CMS) format
$NewCertArgs = @{
# KeyProtection = "Protect" # default is None
# KeyExportPolicy = "Exportable", "ExportableEncrypted" # default is "ExportableEncrypted"
KeyLength = 2048
KeyAlgorithm = "RSA"
@bixb0012
bixb0012 / powershell_conversion.ps1
Last active April 7, 2023 15:00
Powershell: Conversion-related
#Requires -Version 5.1
# Reference: 1) https://learn.microsoft.com/en-us/dotnet/api/system.web.script.serialization.javascriptserializer
# Example 1: Convert JSON text to native .NET data types
# Useful for PowerShell limited to .NET Framework classes
Add-Type -AssemblyName System.Web.Extensions
$Json = # JSON text
$Jss = [Web.Script.Serialization.JavaScriptSerializer]::New()
$Object = $Jss.DeserializeObject((Get-Content -Path $Json))
@bixb0012
bixb0012 / powershell_console.ps1
Created April 7, 2023 15:11
PowerShell: Console-related
#Requires -Version 5.1
# Reference: 1) https://learn.microsoft.com/en-us/dotnet/api/system.management.automation.runspaces.runspace?view=powershellsdk-1.1.0
# Reference: 2) https://learn.microsoft.com/en-us/dotnet/api/system.management.automation.powershell?view=powershellsdk-1.1.0
# Reference: 3) https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/write-progress?view=powershell-5.1
# Reference: 4) https://learn.microsoft.com/en-us/dotnet/api/system.collections.arraylist?view=netframework-4.8.1
# Example 1: Continuously watch Windows diagnostic counters in console progress bar
$Counters = @( # Windows diagnostic counter(s)
"\Processor(_total)\% Processor Time"
"\Memory\% Committed Bytes In Use"
@bixb0012
bixb0012 / powershell_esri.ps1
Last active July 24, 2024 15:40
PowerShell: Esri-related
#Requires -Version 5.1
# Reference: 1) https://github.com/Esri/cim-spec
# Reference: 2) https://learn.microsoft.com/en-us/dotnet/api/system.xml.xmldocument?view=netframework-4.8.1
# Reference: 3) https://learn.microsoft.com/en-us/dotnet/api/system.xml.xmlelement?view=netframework-4.8.1
# Reference: 4) https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_switch?view=powershell-5.1
# Example 1: A function to convert Esri Cartographic Information Model (CIM) XML to a custom PSObject
# that has a property for each field in the XML content.
function ConvertFrom-EsriXml {
<#
@bixb0012
bixb0012 / arcpy_multi_value_to_single_value_attribute.py
Created February 2, 2025 20:22
ArcPy: Multi-value To Single-value Attribute
#!python
# Reference: 1) https://pro.arcgis.com/en/pro-app/latest/arcpy/functions/describe.htm
# 2) https://pro.arcgis.com/en/pro-app/latest/tool-reference/data-management/create-feature-class.htm
# 3) https://pro.arcgis.com/en/pro-app/latest/tool-reference/data-management/create-table.htmarc
# 4) https://pro.arcgis.com/en/pro-app/latest/arcpy/get-started/data-access-using-cursors.htm
# 5) https://pro.arcgis.com/en/pro-app/latest/tool-reference/data-management/clear-workspace-cache.htm
import arcpy
from arcpy.management import CreateFeatureclass , CreateTable, ClearWorkspaceCache
@bixb0012
bixb0012 / powershell_file_system_acls.ps1
Created March 2, 2025 16:03
PowerShell: File System ACLs
#Requires -Version 5.1
# Reference: 1) https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.security/get-acl?view=powershell-5.1
$DirectoryPath = "" # Path to directory, and subdirectories, to apply changes
$ExistingAccountName = "" # samAccountName or UserPrincipalName of account with existing
# file system object ACLs
$NewAccountName = "" # samAccountName or UserPrincipalName of account to assign
# file system object ACLs
# Example 1: Replace existing account access with same access for new account