Skip to content

Instantly share code, notes, and snippets.

View Sam-Martin's full-sized avatar

Sam Martin Sam-Martin

View GitHub Profile
@Sam-Martin
Sam-Martin / IIS
Last active August 1, 2016 13:53
Useful Splunk Queries
# Show requests from IE on XP
index=* AND cs_User_Agent=*| eval windows_xp_and_ie=if(match(cs_User_Agent,".*MSIE.*5.1.*"),"TRUE","FALSE") | stats count by windows_xp_and_ie
@Sam-Martin
Sam-Martin / PowerShell Zabbix API Example.ps1
Created August 3, 2016 15:53
PowerShell Zabbix API Example
if(!$credential){
$credential = Get-Credential
}
$baseurl = 'http://zabbix.global.root'
$params = @{
body = @{
"jsonrpc"= "2.0"
"method"= "user.login"
"params"= @{
"user"= $credential.UserName
index=_internal source=*license_usage.log type="Usage" splunk_server=* | timechart span=1d eval(round(sum(b)/1024/1024/1024,5)) as GB | sort _time
@Sam-Martin
Sam-Martin / Teamcity-Build-Agent-Pester-Tests.ps1
Created November 1, 2016 16:54
Run Pester Tests Remotely
$tests = Get-Content "%teamcity.build.checkoutDir%\TeamCity-Build-Agents.tests.ps1" | Out-String
$scriptblock = {
param($script)
$scriptFile = "$env:temp\TeamCity-Build-Agents.tests.ps1"
Set-Content $scriptFile -Value $script
Invoke-Pester -Script $scriptFile -PassThru 6> $null 2> $null
}
$BuildAgents = @(
'tc-buildagent-01',
@Sam-Martin
Sam-Martin / this-is-not-a-one-liner.ps1
Last active December 13, 2016 10:40
Establish BIND records' resolvability
$zone = gc .\fmlocal.zone | ?{$_ -notmatch '(^;|^-|^\s*$|^@|^\$|^\s+)'} | %{$val = $_ -split '\s+'; new-object psobject -Property @{"Name"=$val[0];"Value"=$val[3] }}
foreach($record in $zone) {
$nslookup = $(nslookup "$($record.name).fmlocal" 2>&1 | out-string)
$matches = @();
$nslookup -match '(?smi)(?<Name>Name:.*)(Address:\s*)(?<Address>[0-9\.]*)' | Out-Null
if(!$matches){
$record | select *,@{L="Resolvable";E={$false}}, @{L="Resolved Address";E={$null}}
}else{
$record | select *,@{L="Resolvable";E={$true}}, @{L="Resolved Address";E={$Matches.Address}}
@Sam-Martin
Sam-Martin / Discovery Rules.md
Last active December 16, 2016 14:40
Zabbix Website Checks Windows

Item: url.statuscode[{#DESCRIPTION}] Trigger: {Template App IIS - Site Checks:url.statuscode[{#DESCRIPTION}].last()}<>{#RESPONSE}

@Sam-Martin
Sam-Martin / Update-Zabbix-Triggers.ps1
Last active April 11, 2018 15:32
Update Triggers via Zabbix API using search example
if(!$creds){
$creds = get-credential
}
$url = "http://zabbix.example.com"
$payload = @{
jsonrpc = "2.0"
method = "user.login"
params = @{
user = $creds.UserName
@Sam-Martin
Sam-Martin / New-EphemeraSecret
Last active March 1, 2017 11:10
Upload Secret to Ephemera
function New-EphemeraSecret{
param(
[string]$Secret,
[string]$EphemeraURl = "http://ephemera.sdlsecuritycentre.com"
)
$EphemeraConfig = Invoke-WebRequest -Uri "$EphemeraURL/js/frontend_config.js" -UseBasicParsing
$EphemeraConfig.Content -match "apiURL = '(.+?)';" | Out-Null
$EphemeraAPIURL = $Matches[1]
$Payload = @{secretText = $Secret} | ConvertTo-Json
@Sam-Martin
Sam-Martin / Get-AWSAccountLimits.ps1
Created March 16, 2017 17:50
Get AWS Account Limits
function Get-AWSAccountLimits {
param(
$region
)
$ASGAccountLimits = Get-ASAccountLimits -region $region
$MaxNumberOfAutoScalingGroups = @{
AccountQuotaName="MaxNumberOfAutoScalingGroups";
Max=$ASGAccountLimits.MaxNumberOfAutoScalingGroups;
Used=$ASGAccountLimits.NumberOfAutoScalingGroups
}
@Sam-Martin
Sam-Martin / Update-RadarrQualitiesToBluRay.ps1
Created May 21, 2017 11:04
Update Radarr Qualities from HDTV to BluRay
$Uri = "http://192.168.1.1:7878/api/"
$headers = @{
'x-api-key' = ""
}
$Movies = Invoke-RestMethod -Uri "$Uri/movie" -Headers $headers -Method Get
$KnownQualities = $Movies.MovieFile.quality.quality | select -Unique id,name