Skip to content

Instantly share code, notes, and snippets.

View sba923's full-sized avatar

Stéphane BARIZIEN sba923

  • Charenton-le-Pont, France
View GitHub Profile
@sba923
sba923 / Export-CsvWithMilliseconds.ps1
Created February 21, 2024 12:11
Improvement on Export-Csv that includes milliseconds in DateTime properties
#requires -version 7.3
# this is one of Stéphane BARIZIEN's public domain scripts
# the most recent version can be found at:
# https://gist.github.com/sba923/bc52cf74197ab3cddce825e8b502e28b#file-export-csvwithmilliseconds-ps1
# proxy for Export-Csv that adds milliseconds to DateTime properties
# original proxy code produced by:
# $MetaData = New-Object System.Management.Automation.CommandMetaData (Get-Command Export-Csv)
@sba923
sba923 / ctime.ps1
Last active January 31, 2024 14:49
Helper for "gci ... | ctime x" PowerShell equivalent to "find ... -ctime x"
# this is one of Stéphane BARIZIEN's public domain scripts
# the most recent version can be found at:
# https://gist.github.com/sba923/792b13b3cd8e14eabd92963622a10de0#file-ctime-ps1
[CmdletBinding()]
param (
[Parameter(ValueFromPipeline)]
$Item,
[Parameter(Position=0)][int] $Days
)
@sba923
sba923 / Get-ZoomItHelp.ps1
Last active February 26, 2024 15:07
Utilities to help working with Sysinternals ZoomIt
# this is one of Stéphane BARIZIEN's public domain scripts
# the most recent version can be found at:
# https://gist.github.com/sba923/7ea3d013b1f758a947eea6c2e4f89f73#file-get-zoomithelp-ps1
<#
.SYNOPSIS
Show help for ZoomIt functions, with currently configured hotkeys
.DESCRIPTION
This script outputs help information the ZoomIt functions
@sba923
sba923 / Remove-UselessKeyboardLayouts.ps1
Last active March 4, 2024 18:13
Remove the unwanted keyboard layouts that Windows keeps adding based on input languages
# this is one of Stéphane BARIZIEN's public domain scripts
# the most recent version can be found at:
# https://gist.github.com/sba923/a71dd721e78ae08842616db244f19437#file-remove-uselesskeyboardlayouts-ps1
[CmdletBinding()]
param([string] $PhysicalKeyboardLayout)
$iswinps = ($null, 'Desktop') -contains $PSVersionTable.PSEdition
if (!$iswinps)
{
@sba923
sba923 / Convert-DateTimePropertiesToStringWithMilliseconds.ps1
Last active January 31, 2024 14:49
Convert all DateTime properties of objects on the pipeline to strings including milliseconds, to work around Export-CSV's limitation
# this is one of Stéphane BARIZIEN's public domain scripts
# the most recent version can be found at:
# https://gist.github.com/sba923/ddc6e300e2bbe3f01d1ee20276d0cfe4#file-convert-datetimepropertiestostringwithmilliseconds-ps1
#requires -Version 7.3
# this rewrites the objects on the pipeline so that DateTime members are replaced with a string representation including milliseconds
# to work around the fact Export-CSV doesn't include milliseconds (see https://github.com/PowerShell/PowerShell/issues/19536)
# compute millisecond-aware version of the current datetime format
@sba923
sba923 / Resolve-ShortPath.ps1
Last active January 31, 2024 14:49
Resolve path to short (8.3) version
# this is one of Stéphane BARIZIEN's public domain scripts
# the most recent version can be found at:
# https://gist.github.com/sba923/54a260dbd0fcd6672de13cf9e81b41db#file-resolve-shortpath-ps1
param([Parameter(Mandatory = $true)][string] $Path)
# derived from https://devblogs.microsoft.com/scripting/use-powershell-to-display-short-file-and-folder-names/
$item = Get-Item -Path $Path -ErrorAction SilentlyContinue
@sba923
sba923 / mtime.ps1
Last active January 31, 2024 14:49
Helper for "gci ... | mtime x" PowerShell equivalent to "find ... -mtime x"
# this is one of Stéphane BARIZIEN's public domain scripts
# the most recent version can be found at:
# https://gist.github.com/sba923/0395f7fd716d87cf92d52946b10a30b7#file-mtime-ps1
[CmdletBinding()]
param (
[Parameter(ValueFromPipeline)]
$Item,
[Parameter(Position=0)][int] $Days
)
@sba923
sba923 / Update-SeleniumDriver.ps1
Last active February 7, 2024 08:18
Update Selenium drivers found on the PATH
# this is one of Stéphane BARIZIEN's public domain scripts
# the most recent version can be found at:
# https://gist.github.com/sba923/d5406e7fded598b9c1131ddf9f099564#file-update-seleniumdriver-ps1
[CmdletBinding()]
param(
[Parameter(ParameterSetName = 'InstallIfMissing', Mandatory = $true)][switch] $InstallIfMissing,
[Parameter(ParameterSetName = 'InstallIfMissing', Mandatory = $true)][string] $Destination,
[Parameter(ParameterSetName = 'NoParameters')] [switch] $_NeverUseThisParameter
)
# this is one of Stéphane BARIZIEN's public domain scripts
# the most recent version can be found at:
# https://gist.github.com/sba923/571e7b02bddab9c587ee97110b898629#file-remove-emptydirectories-ps1
param([string] $Path, [switch] $IgnoreSystemFiles, [switch] $torecyclebin, [switch] $ContinueOnErrors)
Set-StrictMode -Version 2.0
$VerbosePreference = 'Continue'
@sba923
sba923 / df.ps1
Last active January 13, 2024 08:49
*nix work-alike's for PowerShell: df, dirname, whatis, whence
# this is one of Stéphane BARIZIEN's public domain scripts
# the most recent version can be found at:
# https://gist.github.com/sba923/d0d5ad16f2b12d7785adf830b0395dc2#file-df-ps1
function Format-AsKMG
{
param ($bytes,$precision='0')
foreach ($i in ("","KB","MB","GB","TB"))
{
if (($bytes -lt 1000) -or ($i -eq "TB"))