Skip to content

Instantly share code, notes, and snippets.

View Get-CsTopologyFixed.ps1
<#
Get-CsTopologyFixed.ps1 v1.0
Last updated 2015-02-27 by Amanda Debler, https://mandie.net
Please let me know about any improvements you've made or mistakes you've found!
#>
@amandadebler
amandadebler / Base64.ps1
Created May 29, 2020
Convert to and from Base64, since there's no built-in Windows command for this
View Base64.ps1
function ConvertTo-Base64 {
Param(
$Text
)
$Bytes = [System.Text.Encoding]::Unicode.GetBytes($Text)
[System.Convert]::ToBase64String($Bytes)
}
function ConvertFrom-Base64 {
Param(
@amandadebler
amandadebler / Get-Portfolio
Created Aug 26, 2019
The robo-advisor in PowerShell that no one asked for
View Get-Portfolio
function Get-Portfolio {
[CmdletBinding()]
param (
$amount,
$transactionCost = 5,
$maxCostRatio = 0.02
)
begin {
View Get-SharesInAmount.ps1
function Get-SharesInAmount {
[CmdletBinding()]
param (
$stock,
$amount,
$transactionCost = 5,
$maxCostRatio = 0.02
)
begin {
@amandadebler
amandadebler / Get-SP500Summary.ps1
Last active Aug 26, 2019
S&P 500 weights and latest closing prices
View Get-SP500Summary.ps1
$response = invoke-webrequest "https://www.slickcharts.com/sp500"
$table = $response.parsedhtml.body.childnodes[6].childnodes[1].childnodes[0].childnodes[0].childnodes[1].childnodes[0]
# Column Headers
$columns = foreach ($node in $table.childnodes[0].childnodes[0].childnodes) {$node.innertext}
$stockrows = $table.childnodes[1].childnodes
$stocks = foreach ($row in $stockrows) {
$attributes = @{}
for ($i=0; $i -lt $($columns.count); $i++) {
$attributes.Add($columns[$i],$row.childnodes[$i].innertext.trim())
@amandadebler
amandadebler / PowerShell Prompt.ps1
Last active Mar 12, 2019 — forked from fatherjack/PowerShell Prompt.ps1
Two-line prompt with last command execution time and tail of present working directory - modification of FatherJack's prompt, which was inspired by FriedrichWeinmann
View PowerShell Prompt.ps1
function Prompt {
try {
$history = Get-History -ErrorAction Ignore -Count 1
if ($history) {
$ts = New-TimeSpan $history.StartExecutionTime $history.EndExecutionTime
Write-Host "[" -NoNewline
switch ($ts) {
{$_.TotalSeconds -lt 1} {
[decimal]$d = $_.TotalMilliseconds
@amandadebler
amandadebler / AKSDockerVersionReporter.ps1
Created Feb 13, 2019
Reports the Docker runtime version for all nodes in all AKS clusters in all subscriptions in an Azure tenant
View AKSDockerVersionReporter.ps1
$mySubscriptions = $(az account list --query [].id -o tsv)
foreach ($subscription in $mySubscriptions) {
$clusters = $(az aks list --subscription $subscription) | ConvertFrom-Json
foreach ($cluster in $clusters) {
"$($cluster.name) in resource group $($cluster.resourceGroup) in subscription $subscription"
az aks get-credentials --resource-group $($cluster.resourceGroup) --name $($cluster.name) --subscription $subscription --overwrite-existing
kubectl get nodes -o custom-columns=NAME:.metadata.name,VERSION:.status.nodeInfo.containerRuntimeVersion
}
}
@amandadebler
amandadebler / CVE-2019-5736-hotfix.ps1
Created Feb 13, 2019
For CVE-2019-5736 (runc container breakout)
View CVE-2019-5736-hotfix.ps1
# works with both Get-AzAks cluster object and az aks list | ConvertFrom-Json PSCustomObjects
function Get-AKSHotfixVersion {
param($AKSCluster)
$hotfixVersions = @{'12'='1.12.5'; '11'='1.11.7'; '10'='1.10.12'; '9'='1.9.11'}
foreach ($cluster in $AKSCluster) {
$currentVersion = $cluster.KubernetesVersion
[string]$majorRelease = $currentVersion.split('.')[1]
$hotfixVersion = $hotfixVersions.$majorRelease
$hotfixVersion
}
@amandadebler
amandadebler / bamf_histograms
Last active Jan 26, 2019 — forked from ynux/bamf_histograms
English translation of refugee-datathon-muc.de landing page
View bamf_histograms
<p>On this page, we present the <a href="http://www.bamf.de/DE/Infothek/Statistiken/Asylzahlen/Asylgeschäftsstatistik/asylgeschaeftsstatistik-node.html">decision statistics of the BAMF</a> (Bundesagentur für Migration und Flüchtlinge - German federal agency for immigration and refugees) as histograms. They are supplemented monthly, at present most of them go through October. The new statistics should be published in the middle of the following month; the webpage is usually updated by the end of the month. Recent data and the numbers for countries from which fewer asylum seekers come can be found here: <a href="https://refugee-datathon-muc.de/?page_id=913">Interactive Dashboard</a> .</p>
<p>For each country, we offer the link to the latest German national report from Amnesty International. The graphics for 2015 to 2016 can be found for most countries on <a href="https://refugee-datathon-muc.de/?page_id=376">this page (German only)</a> &nbsp;</p>
<p><a href="#Afghanistan">Afghanistan</a> | <a href="#Syrien">Syr
View Ignore-SSLErrors.ps1
$AllProtocols = [System.Net.SecurityProtocolType]'Ssl3,Tls,Tls11,Tls12'
[System.Net.ServicePointManager]::SecurityProtocol = $AllProtocols
Add-Type -AssemblyName System.Web
Add-Type -AssemblyName system.Security
Add-Type -AssemblyName System
Add-Type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class TrustAllCertsPolicy : ICertificatePolicy {