Skip to content

Instantly share code, notes, and snippets.

View SvenAelterman's full-sized avatar

Sven Aelterman SvenAelterman

View GitHub Profile
@SvenAelterman
SvenAelterman / Configure-Sql2017RS.ps1
Last active February 9, 2024 10:07
PowerShell script to configure SQL Server 2017 Reporting Services
<#
#>
function Get-ConfigSet()
{
return Get-WmiObject –namespace "root\Microsoft\SqlServer\ReportServer\RS_SSRS\v14\Admin" `
-class MSReportServer_ConfigurationSetting -ComputerName localhost
}
# Allow importing of sqlps module
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Force
@SvenAelterman
SvenAelterman / Uninstall-OutdatedModules.ps1
Last active January 22, 2024 16:14
Uninstall-OutdatedModules.ps1
[CmdletBinding(SupportsShouldProcess = $True)]
Param(
[Parameter(Mandatory, Position = 1)]
[string]$ModuleName,
[Parameter(Position = 2)]
[bool]$DeleteChildModules = $true
)
$Latest = Get-InstalledModule $ModuleName -ErrorAction Ignore;
@SvenAelterman
SvenAelterman / deploy.ps1
Created November 12, 2023 22:35
DeploymentSlotVNetIntegration
[CmdletBinding()]
param (
[Parameter(Mandatory)]
[string]$TargetSubscriptionId,
[Parameter(Mandatory)]
[string]$TargetResourceGroup,
[Parameter(Mandatory)]
[string]$DeploymentLocation
)
@SvenAelterman
SvenAelterman / WVDConnections_byUser_byClientVersion,kql
Created April 27, 2023 13:33
Query Azure Virtual Desktop (AVD) connection logs for client versions used by users over time
let startTime = ago(30d);
WVDConnections
| where TimeGenerated > startTime
| summarize min(TimeGenerated), max(TimeGenerated) by UserName, ClientOS, ClientType, ClientVersion
| sort by UserName, min_TimeGenerated
{
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
"blocks": [
{
"alignment": "left",
"segments": [
{
"background": "#0077c2",
"foreground": "#ffffff",
"leading_diamond": "",
@SvenAelterman
SvenAelterman / Remove-UnattachedNIC.ps1
Last active May 12, 2022 02:28
Remove-Unattached-NICs
$deleteUnattachedNICs = $false
# List all unattached NICs
$unattachedNICs = Get-AzNetworkInterface | `
Where-Object { $_.VirtualMachine -eq $null -and ($_.PrivateEndpointText -eq $null -or $_.PrivateEndpointText -eq 'null') }
# Iterate over the unattached NICs
foreach ($nic in $unattachedNICs) {
# Find a lock for the NIC (or resource group/subscription/...)
$lock = Get-AzResourceLock -ResourceName $nic.Name -ResourceGroupName $nic.ResourceGroupName -ResourceType 'Microsoft.Network/networkInterfaces'
@SvenAelterman
SvenAelterman / Get-WindowsSearchIndexResults.ps1
Last active October 31, 2021 20:27
PowerShell to query local Windows Search index (e.g., for Visio shapes)
$contents = "Virtual"
$sql = "SELECT System.ItemName, System.ItemUrl FROM SYSTEMINDEX WHERE Contains(*,'$($contents)') AND System.ItemType='.VSSX'"
$Provider = "Provider=Search.CollatorDSO;Extended Properties=’Application=Windows’;"
$adapter = new-object system.data.oledb.oleDBDataadapter -argument $sql, $Provider
$ds = new-object system.data.dataset
if ($adapter.Fill($ds)) { $ds.Tables[0] }
@SvenAelterman
SvenAelterman / New-ApiPermissionForManagedIdentity.ps1
Last active October 28, 2021 14:31
Adding (Microsoft Graph) API permissions to a Managed Identity (such as for Logic Apps).
# From https://aztoso.com/security/microsoft-graph-permissions-managed-identity/
# Your tenant id (in Azure Portal, under Azure Active Directory -> Overview )
$TenantID = ""
# Microsoft Graph App ID (DON'T CHANGE)
$GraphAppId = "00000003-0000-0000-c000-000000000000"
# Name of the system managed identity (same as the Logic App name)
$DisplayNameOfMSI = "demoLogicApp"
# Check the Microsoft Graph documentation for the permission you need for the operation
$PermissionName = "Domain.Read.All"
@SvenAelterman
SvenAelterman / CEF_generator.py
Created September 16, 2021 02:12
CEF generator in Python
#!/usr/bin/python3
# Simple Python script designed to write to the local Syslog file in CEF format on an Azure Ubuntu 18.04 VM.
# Frank Cardinale, April 2020
# Sven Aelterman, September 2021
# Importing the libraries used in the script
import random
import syslog
import time
@SvenAelterman
SvenAelterman / Set-ClusterProbePort
Created June 30, 2021 22:26
Sets the cluster probe port for Windows Server Failover Cluster (WSFC) in Azure using a load balancer (traditional VNN, not needed for DNN). This is an enhancement to the script at https://docs.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/availability-group-listener-powershell-configure#configure-the-listener
Import-Module FailoverClusters
[int]$ClusterProbePort = 58888 # The probe port from the WSFCEndPointprobe in the Azure portal. This port must be different from the probe port for the availability group listener probe port.
# Retrieve info from the cluster
$ClusterNetworkName = (Get-ClusterNetwork).Name
$IPResource = (Get-ClusterResource | Where {($_.OwnerGroup -eq "Cluster Group" -And $_.ResourceType -eq "IP Address")})
$IPResourceName = $IPResource.Name
$ClusterCoreIP = ($IPResource | Get-ClusterParameter | Where { $_.Name -eq "Address" }).Value