Skip to content

Instantly share code, notes, and snippets.

View SweetAsNZ's full-sized avatar
🏠

Tim West SweetAsNZ

🏠
View GitHub Profile
@SweetAsNZ
SweetAsNZ / Get-WinRMPCFailures.ps1
Created July 13, 2022 22:50
Check/Test WinRM Connection To All AD Joined PC's
function Get-WinRMPCFailures
{
# Ping a Server and if it responds test WINRM
$Log = 'C:\SCRIPTS\WinRM\PCs_WinRMFailed.log'
Remove-Item $Log
$PCs = (Get-ADComputer -Filter * -Properties Name,OperatingSystem,Enabled | Where {($_.Enabled -eq $true) -and ($_.OperatingSystem -notlike "Windows Server*") `
-and ($_.OperatingSystem -like "Windows*")} | Sort Name).Name
@SweetAsNZ
SweetAsNZ / Get-GroupMemberAz.ps1
Created July 13, 2022 04:42
Get Azure Group Members From AD Groups and Azure Groups
function Get-GroupMemberAz
{
[CmdletBinding()]
param(
[Parameter(Mandatory=$false)]
[string]$Group,
[bool]$IncludeAzureGroups = $true
)
@SweetAsNZ
SweetAsNZ / Get-DNSRecord.ps1
Last active July 12, 2022 03:50
Get A DNS Record e.g PTR, A, CNAME, SRV, TXT
<#
.SYNOPSIS
Gets a DNS record wrapped in asterisks e.g. *FW*
.DESCRIPTION
'# WIP' Means it is still a Work In Progress
############################################
@SweetAsNZ
SweetAsNZ / Get-ADUsersWithDuplicateMobile.ps1
Created July 10, 2022 22:05
Get AD Users With Duplicate Mobile
# Get Users With A Duplicated Property e.g. Mobile Number
$Property = 'Mobile'
$A = Get-ADUser -Filter {($Property -like "*")} -Property $Property | Group $Property | Where-Object {$_.Count -ge 2} | Select-Object -ExpandProperty group |
Select-Object Enabled, Name, SamAccountName, $Property
@SweetAsNZ
SweetAsNZ / Add-CPUToVMGuests.ps1
Last active July 21, 2022 09:07
Add-CPU To VM Guests With only 1 CPU
# Query VMWare for the List of All servers With Only 1 CPU Shut Them Down and Add Another CPU
# Assumes You Need To Shut The Server Down Which May Not Be The Case
$Date = ((Get-Date -Format "yyyy-MM-dd_HHmm_K").Replace(":","-").Replace("+","-")).ToString() # _$($Date).csv" _$($Date).txt" # Date for use in Filenames with TZ
$Server = 'VC1'
$VMCli = (Get-Module VMware.PowerCLI -ListAvailable).Name
if($VMCli -ne 'VMware.PowerCLI'){
@SweetAsNZ
SweetAsNZ / Remove-LocalGroupMember.ps1
Created June 30, 2022 02:10
Remove Local Group Member On Local or Remote Machine
function Remove-LocalGroupMember
{
[CmdletBinding(ConfirmImpact='High')]
Param
(
[Parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,HelpMessage='Local Group To Remove Member From')]
[ValidateNotNullOrEmpty()]
[string]$Group = 'Backup Operators',
[Parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,HelpMessage='Local User To Remove From Local Group')]
@SweetAsNZ
SweetAsNZ / Get-WhoRestarted.ps1
Last active June 27, 2022 05:18
Find Who Restarted A Windows PC or Server and When
function Get-WhoRestarted{
[CmdletBinding(ConfirmImpact='Low')]
Param
(
[Parameter(Mandatory=$false)]
[AllowNull()]
[String]$Computer = 'localhost'
@SweetAsNZ
SweetAsNZ / Remove-TempFiles.ps1
Last active June 20, 2022 03:58
Remove Files In Temp Folders
function Remove-TempFiles{
#requires -RunAsAdministrator
$ErrorActionPreference = 'STOP'
if(Test-Path C:\Temp){
try{
Set-Location C:\Temp -ErrorAction STOP
Get-ChildItem 'C:\Temp' -Recurse | Remove-Item -Recurse -Force -Confirm:$false -ErrorAction SilentlyContinue
@SweetAsNZ
SweetAsNZ / Create-TeamsChannelMessage.ps1
Created June 15, 2022 05:35
Create Microsoft MS Teams Channel Message From PowerShell
function Create-TeamsChannelMessage{
# Synopsis of Last 7 Days of Script Creation Written to Teams Channel Webhook
#REF: https://www.scriptrunner.com/en/blog/teams-webhooks-via-powershell-part-1
#REF: https://communary.net/2018/03/30/quick-tip-convertto-json-and-line-breaks-in-strings/
$Days = (Get-Date).AddDays(-7)
$Data = Get-ChildItem C:\Scripts -Recurse -File -Include *.ps1,*.cmd | Select Name,FullName,CreationTime | Where {$_.CreationTime -gt $Days} | Sort Name
@SweetAsNZ
SweetAsNZ / New-CodeSignScript.ps1
Last active August 3, 2022 20:31
PowerShell Code Sign A Script Using A Certificate Template From A Windows Enterprise Certificate Authority (CA)
function New-CodeSignScript{
[CmdletBinding(ConfirmImpact='Medium')]
Param
(
[Parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true,HelpMessage='Script Full Path Name?')]
[ValidateNotNullOrEmpty()]
[String]$ScriptToSign,
[Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,HelpMessage="The CN of the Enterprise CA")]