Skip to content

Instantly share code, notes, and snippets.

Avatar

Bill Wilder codingoutloud

View GitHub Profile
View check-azure-sql-db-logins.sql
-- Turn on Audit Logging to Blob for your Azure SQL Database. Then you can query who has logged in.
-- The example below assumes DB Server-level audit logging. Details will vary slightly for Database-level audit logging.
-- The example below shows who logged in so far today.
-- Change "-0" to "-1" to look at yesterday (from a UTC perspective, not your local timezone).
-- Change "-0" to "-100" to look at 100 days ago.
SELECT FORMATMESSAGE('%s (%s)', CAST(DATEADD(day, -0, CONVERT(date, SYSUTCDATETIME())) as varchar),
DATENAME(WEEKDAY, DATEADD(day, -0, SYSUTCDATETIME()))),
server_principal_name,
COUNT(server_principal_name) as 'Logins'
FROM sys.fn_get_audit_file(FORMATMESSAGE('https://<MYBLOB>.blob.core.windows.net/sqldbauditlogs/<MYDBSERVER>/<MYDB>/SqlDbAuditing_ServerAudit/%s/'
@codingoutloud
codingoutloud / ticks.py
Last active Jun 4, 2018
How many ticks since the first moment of 01-01-0001, the first day of the epoch used in Python (and .NET) date time libraries? This python program snippet calculates this. A Tick is defined (matching .NET's DateTime.UtcNow.Ticks property) as 1 / 10,000,000 of a Second. This conversion might be useful if you need interoperability across .NET lang…
View ticks.py
# Bill Wilder (@codingoutloud), 02-Oct-2013
# Original: https://gist.github.com/codingoutloud/6800434
import datetime
def ticks_since_epoch(start_time_override = None):
"""
Calculates number of Ticks since Jan 1, 0001 epoch. Uses current time unless another time is supplied.
Mimics behavior of System.DateTime.UtcNow.Ticks from.NET with 10 million Ticks per second.
http://msdn.microsoft.com/en-us/library/system.datetime.ticks.aspx
@return: Number of Ticks since Jan 1, 0001 epoch (earliest date supported by Python datetime feature)
View ReportBlockedByCSP
#r "Newtonsoft.Json"
using System.Net;
using System.Text;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
#r "Newtonsoft.Json"
using System.Net;
@codingoutloud
codingoutloud / run.csx
Created Mar 25, 2018
Get User Agent Summary from within an Azure Function using whatismybrowser.com API
View run.csx
#r "Newtonsoft.Json"
using System.Net;
using System.Net.Http;
using System.Text;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
@codingoutloud
codingoutloud / IpTools.psm1
Created Jan 29, 2018
PowerShell module for IP address tools
View IpTools.psm1
# put this in some shared module folder, such as /usr/local/share/powershell/Modules
Function Get-IpCountry {
param([String]$ip="9.9.9.9")
$country = Invoke-RestMethod -Method GET -Uri https://ipinfo.io/$ip/country
return $country
}
@codingoutloud
codingoutloud / gitpush.ps1
Last active Dec 1, 2017
Simple mode to continually push from a remote machine to a git repo
View gitpush.ps1
git add --all
git commit --all -m "Update"
git push
@codingoutloud
codingoutloud / Publish-CertFromKeyVaultToWebApp.ps1
Created Nov 21, 2017
Get an SSL Cert from Key Vault and push it to a Web App
View Publish-CertFromKeyVaultToWebApp.ps1
Login-AzureRmAccount
Select-AzureRmSubscription -SubscriptionName AzureFAQ # subscription where the Web App resides
$webAppName = "pageofphotos" # Web App resource Name, (Get-AzureRmWebApp)[0].Name
$fqdn = "pageofphotos.com" # what is the DNS address? could be admin.pageofphotos.com if that's what's mapped
$vaultName = "GlobalOpsVault"
$certificateName = "MySSL"
$passwordLength = 50
@codingoutloud
codingoutloud / AzureFunctionRandomQuote.js
Created Sep 14, 2017
Simple "hello world"-level web page intended for use with Azure Functions - paste this text into a JavaScript HTTP trigger, upload project.json to kudu, and set up MOVIE_API_KEY as an environment variable.
View AzureFunctionRandomQuote.js
var request = require('request');
module.exports = function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');
var html = "<html><body><h1>didn't work</h1></body></html>"
var movieApiUrl = 'https://andruxnet-random-famous-quotes.p.mashape.com/?cat=movies&count=10';
// go get your own API key: https://market.mashape.com/andruxnet/random-famous-quotes#get-endpoint
var movieApiKey = process.env['MOVIE_API_KEY'];
// context.log('MOVIE API KEY = ' + movieApiKey);
@codingoutloud
codingoutloud / http-get-repeatedly.sh
Created Sep 7, 2017
Usage: http-get-repeatedly.sh [number of times to repeat] -- no param means once.
View http-get-repeatedly.sh
#!/bin/bash
URL="https://prod-24.southcentralus.logic.azure.com:443/workflows/62d71dadbb0b451bb8de9f27c9e51f93/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=8HpJbLEcF078jtVgBZoMpWA65sZDI8_nowFVINX8HK0"
for i in `seq 1 $1`;
do
echo $i
curl "$URL"
done
@codingoutloud
codingoutloud / Fail75.js
Created Sep 7, 2017
Code for an Azure Function that sometimes returns failure (on purposes, 75% of the time, useful for testing)
View Fail75.js
module.exports = function (context, req) {
if (Math.random() > 0.75) {
context.log('Azure Function "Fail75" is randomly (25%) returning 200 OK.');
context.res = {
body: "Randomly (25%) returning 200 OK."
}
}
else {
context.log('Azure Function "Fail75" is randomly (75%) returning 500 as a transient error.');
context.res = {