ADS

Visualizzazione post con etichetta script. Mostra tutti i post
Visualizzazione post con etichetta script. Mostra tutti i post

giovedì 9 aprile 2026

FunnyApp (continua...)

Uno script di PowerShell di verifica (copiare ed incollare in PowerShell ISE come admin):


# Baseline difensivo - eseguire in PowerShell elevato su sistema di test

Write-Host "=== Stato Microsoft Defender ==="

Get-MpComputerStatus | Select-Object AMProductVersion, AntivirusSignatureVersion,

    AntivirusSignatureLastUpdated, RealTimeProtectionEnabled

Write-Host "`n=== Shadow copy esistenti ==="

Get-CimInstance Win32_ShadowCopy | Select-Object ID, InstallDate, DeviceObject

Write-Host "`n=== VSSADMIN ==="

vssadmin list shadows


Il risultato potete darlo da leggere ad una IA tipo Gemini o Perplexity, ogni anomalia sarà verificata! Ormai l'IA è fondamentale per sistemisti, programmatori ma anche per semplificare il lavoro. Analizzare i dati e trarre conclusioni. I miei articoli sono sempre basati sull'IA istruita per scrivere dell'argomento desiderato...


giovedì 20 novembre 2025

Script per la ricerca di PC con SID duplicati

Ho realizzato, con l'aiuto di Perplexity, uno script per cercare tutti i PC con SID locali duplicati all'interno di un dominio Windows Server 2025. Chiaramente vanno sistemati i percorsi dei file ed eseguito rigorosamente come utente Amministratore di dominio.

Ecco lo script:

# Percorso completo di PsGetSid.exe - By Marco Mira

$psGetSidPath = ".\PsGetSid.exe"


# Importa modulo Active Directory

Import-Module ActiveDirectory


# Ottieni lista nomi computer dominio

$computers = Get-ADComputer -Filter * | Select-Object -ExpandProperty Name


# Array per risultati

$result = @()


foreach ($computer in $computers) {

    # Verifica raggiungibilità con ping

    $pingable = Test-Connection -ComputerName $computer -Count 1 -Quiet


    if (-not $pingable) {

        $sid = "NON raggiungibile"

    } else {

        try {

            # Esegui PsGetSid e cattura output come stringa

            $outputRaw = & $psGetSidPath "\\$computer" 2>&1 | Out-String


            # Dividi output in righe

            $outputLines = $outputRaw -split '\r?\n'


            # Trova la riga con "SID for" e prendi la riga successiva se presente e non vuota

            $sid = $null

            for ($i = 0; $i -lt $outputLines.Count; $i++) {

                if ($outputLines[$i] -match "SID for") {

                    if ($i + 1 -lt $outputLines.Count -and $outputLines[$i+1].Trim() -ne '') {

                        $sid = $outputLines[$i+1].Trim()

                        break

                    }

                }

            }


            if (-not $sid) {

                $sid = "SID non trovato"

            }

        } catch {

            $sid = "Errore durante il comando"

        }

    }


    # Pulisce output da eventuali spazi indesiderati

    $sidClean = $sid.Trim()


    # Scrive a schermo nome computer e SID pulito

    Write-Output "$computer - $sidClean"


    # Aggiungi al report

    $result += [PSCustomObject]@{

        ComputerName = $computer

        LocalSID = $sidClean

    }

}


# Esporta risultati in CSV (modifica se serve percorso)

$result | Select-Object ComputerName, LocalSID | Export-Csv -Path .\LocalSIDs_Report.csv -NoTypeInformation


Write-Host "`nReport creato: LocalSIDs_Report.csv"

Copialo ed incollalo in un file PS1 che consiglio di eseguire da PowerShell ISE come amministratore.