Skip to content

Instantly share code, notes, and snippets.

View neil-sabol's full-sized avatar

Neil Sabol neil-sabol

  • New Mexico, USA
View GitHub Profile
@neil-sabol
neil-sabol / Get-ChildItem-Path.Tests.ps1
Last active March 7, 2021 15:11
See https://blog.neilsabol.site/post/deleting-specific-log-files-by-extension-older-than-days/. This Pester snippet demonstrates the use of -Path vs. -LiteralPath with the Get-ChildItem PowerShell cmdlet. Prerequisites: Pester 5+ (Install-Module -Name Pester -Force -SkipPublisherCheck), PowerShell 5+, Windows 2012+. Once the prerequisites are in…
# ###############################
# Get-ChildItem-Path.Tests.ps1
# https://blog.neilsabol.site/post/deleting-specific-log-files-by-extension-older-than-days/
# Neil Sabol
# neil.sabol@gmail.com
# ###############################
# Define test parameters
$script:testPath = "C:\Temp"
$script:testLiteralPath = "\\?\C:\Temp"
# Specify the FQDNs of the source and destination distribution points
$sourceDP = "MEMCMDP1.contoso.com"
$destDP = "MEMCMDP2.contoso.com"
# Suppress error messages (usually because content already exists on the destination)
$ErrorActionPreference = "SilentlyContinue"
# Get all content from the source DP
# See https://learn.microsoft.com/en-us/powershell/module/configurationmanager/get-cmdeploymentpackage?view=sccm-ps
Get-CMDeploymentPackage -DistributionPointName $sourceDP | %{
# Install the PowerShell LDAP module
Install-Module -Name Ldap
# Create an Active Directory connection via LDAP, replacing 'CN=binduser,OU=Accounts,DC=ad,DC=contoso,DC=com'
# with a real user in the directory and specifying the user's password when prompted
# See https://github.com/replicaJunction/Ldap/blob/master/docs/en-US/Get-LdapConnection.md
$binduser = 'CN=binduser,OU=Accounts,DC=ad,DC=contoso,DC=com'
$connection = Get-LdapConnection -Server 'ad.contoso.com' -Port 636 -Credential (New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $binduser,(Read-Host -AsSecureString -Prompt "Enter password"))
# Specify a large AD group and search base to query
function parse-m365-auditlogsearch-results {
# Collect the input and output files
Param (
[Parameter(Mandatory=$true)]
[string] $auditlogsearchresultfile = "",
[Parameter(Mandatory=$true)]
[string] $outputcsvfilepath = ""
)
# Import the Audit Log Search Result CSV file exported from Microsoft Purview
@neil-sabol
neil-sabol / MgGraph-BulkRemoveDirectAssignedLicense.ps1
Last active February 1, 2024 10:47 — forked from mrik23/MSOL-BulkRemoveDirectAssignedLicense.ps1
Remove in bulk direct assigned license to users who have group assigned license with the Microsoft Graph (MgGraph) PowerShell module
<#
Modified version of mrik23's MSOL-BulkRemoveDirectAssignedLicense.ps1 (https://gist.github.com/mrik23/2ed37ce0c7c4a79605bdcf052e29b391)
MSOL-BulkRemoveDirectAssignedLicense.ps1 was a modified version of a script from Microsoft Documentation.
Ref: https://docs.microsoft.com/en-us/azure/active-directory/active-directory-licensing-ps-examples
Removed the part that checks if the users is assigned more products than the group assigned license.
Added connection part and help to find Sku and Group Object ID.
This script requires the Microsoft Graph (MgGraph) PowerShell module.
#>
Import-Module Microsoft.Graph.Users