Welcome to InfoTech Ninja

IT professional writing about cybersecurity, cloud & DevOps, automation, networking, and systems administration. Real-world guides for real-world problems.

#Cybersecurity #Cloud #Automation #Networking #SysAdmin

Latest Articles

Universal Group Membership Caching

How to enable Universal Group Membership Caching (UGMC) on a remote AD site so user logons no longer have to traverse a slow WAN to a Global Catalog. Walks the GUI three-click path (Sites and Services > site > NTDS Site Settings > Properties > Enable UGMC) with the actual screenshots, the Set-ADObject PowerShell equivalent (one bit on the NTDS Site Settings options attribute, 0x20), the design choice between UGMC and a local Global Catalog, the 8-hour cache refresh behaviour, and the common pitfalls (right-clicking the wrong node, first-logon needs the GC, stale cache after Universal Group changes).

Configure a Domain Controller as a Global Catalog Server

How to add the Global Catalog flag to an existing Domain Controller in Active Directory Sites and Services, and the PowerShell equivalent (one bit on the NTDS Settings options attribute via Set-ADObject). Walks the GUI three-click path, the Set-ADObject cmdlet, post-change verification with Get-ADDomainController IsGlobalCatalog / dsquery server -isgc / repadmin /options / Test-NetConnection on port 3268, the partial-attribute-set replication timing caveat, and the common pitfalls (right-clicking the wrong tree node, leaving only one GC, demoting accidentally).

Active Directory Health Check with PowerShell

One PowerShell script that wraps dcdiag, Test-Connection, Resolve-DnsName, w32tm, Get-Service, and CIM into a single colored HTML report — one row per Domain Controller, 35 columns of pass/warn/fail per cell. Includes the full Get-ADHealth.ps1 source, what each dcdiag test actually catches (Connectivity, SysVolCheck, KccEvent, FSMOCheck, NCSecDesc, etc.), how to schedule a daily SMTP-emailed run, the MotW / Unblock-File / ExecutionPolicy gotchas, and the green-DNS-red-everything-else fingerprint that means a DC is offline.

Change Users UPN with PowerShell

Configure your on-premises Active Directory UPNs before syncing to Office 365. Add an alternative UPN suffix in AD Domains and Trusts, then bulk-change every user's UPN with Get-ADForest / Set-ADForest and Get-ADUser / Set-ADUser - either across the whole forest or scoped to a single OU. Verification commands included.

Linux Performance & Observability: load, latency tails, perf top, eBPF

Working reference for the 10 most common Linux performance problems. High load with low CPU (D-state iowait), p99 latency tails (averages lie), high context switch rate, disk I/O saturation (%util / await), network at line rate, memory pressure without OOM (vmstat si/so), slow boot (systemd-analyze blame), hung app (strace / wchan / stack), kernel CPU vulnerability mitigations, cloud noisy neighbor (%steal). Tools: vmstat / iostat / sar / perf top / bcc-eBPF / biolatency / execsnoop. Cross-linked to monitoring command reference.

Linux CI/CD & Automation Errors: runners, secrets, flaky tests, deploy failures

Working reference for the 10 most common Linux CI/CD pipeline errors. Runner offline (gitlab-runner / github-actions-runner systemctl), secret env var not injected, docker login failures (use ephemeral CI tokens), flaky tests (env vs hardware vs race), build cache miss, disk full on runner, job timeouts, deployment connection refused, git pull auth, Ansible host key verification. Cross-linked to docker, build, and systemd troubleshooting.

Linux Database Errors: connection refused, deadlocks, replication lag

Working reference for the 10 most common Linux database errors at the OS layer. PostgreSQL/MySQL/Redis: connection refused (systemctl status), too many connections (PgBouncer / pool), password auth (pg_hba.conf), deadlocks (pg_stat_activity + pg_blocking_pids), replication lag, archive_command failures, MySQL Lost connection (max_allowed_packet, wait_timeout), Redis maxmemory eviction policy, disk full on data dir, long-running stuck transactions. Cross-linked to process/memory and networking troubleshooting.

Linux Programming & Build Errors: gcc, ld, missing headers, ABI mismatch

Working reference for the 10 most common Linux build/compile/link errors. fatal error: header not found (install -dev / -devel), undefined reference (link order matters), library not found at runtime (ldd / LD_LIBRARY_PATH / ld.so.conf.d), GLIBC ABI mismatch (build in target container), segfault in tests, missing make/cmake (build-essential), Python ModuleNotFoundError, npm ENOSPC, exec on noexec mount, OOM during compile (lower -j, swap).