Come posso determinare quale processo sta spostando un file?


1

Abbiamo un sito Web che produce file, che vengono rilasciati in una cartella e raccolti da un altro processo che copia i file su un altro server (non il mio progetto).

Nel nostro ambiente di produzione, lo spostamento viene eseguito da un'attività pianificata che si attiva ogni minuto, che chiama un file batch, che chiama uno script PowerShell che sposta effettivamente i file (di nuovo, non il mio progetto).

Ora la domanda:

Il sito Web è impostato in modo identico nel nostro ambiente UAT. I file vengono rilasciati in una cartella e quindi spostati. Ma non ci sono task programmati su quel box, e sto avendo un bel pò di tempo per determinare quale processo stia effettivamente spostando i file.

Potrebbe non essere nemmeno in esecuzione sulla stessa macchina della cartella. Qualche idea su come posso determinare quale processo sta spostando i file, o almeno quale macchina lo sta facendo?

Risposte:


2

È possibile utilizzare il monitor di processo SysInternals e filtrare le voci del file system con il percorso o il nome file dei file spostati. Se si tratta di un processo locale, questo dovrebbe rivelarlo. Se non è un processo locale, vedrai i file che vengono spostati da "Sistema" o qualcosa del genere.

Sfortunatamente, devi essere in esecuzione monitor di processo nel momento in cui avviene lo spostamento e il monitor di processo è piuttosto pesante, quindi l'intero server potrebbe risentirne durante la risoluzione dei problemi.

Se i file vengono spostati da un processo remoto, è possibile utilizzare SysInternals PsFile o qualche utilità simile per scoprire chi li sta accedendo.

SysInternals Home: https://technet.microsoft.com/en-us/sysinternals/default


1

È possibile farlo con la registrazione di controllo sicurezza sul file e nelle directory ("cartelle") in questione.

Innanzitutto, esegui Criteri di gruppo ( gpedit.msc ) come amministratore. Nel riquadro di sinistra passare a Configurazione computer | Impostazioni di Windows | Impostazioni di sicurezza | Politiche locali | Politica di audit. Nel riquadro destro, impostare su "Esegui accesso agli oggetti" e "Verifica del processo di verifica" per abilitare in caso di successo. (Non ha molto senso auditare in caso di fallimento, dal momento che i tentativi di accesso non riusciti non determineranno lo spostamento di un file!)

OPPURE - se si utilizza Windows 7 o versioni successive, è possibile scegliere di farlo in questo modo: Nel riquadro di sinistra, accedere a Configurazione computer | Impostazioni di Windows | Impostazioni di sicurezza | Politica di audit avanzata | Criteri di controllo del sistema. In "Tracciamento dettagliato", abilitare "Creazione processo di verifica" per il successo. In "Accesso oggetto", abilitare "Audit File System" per il successo. Questo metodo genererà un po 'meno voci spuri nel registro eventi. NOTA: Se qualcosa è impostato su un valore diverso da "Non configurato" in "Politica di audit avanzata", è meglio apportare anche qui le modifiche successive, come le impostazioni qui e nel meno dettagliato "criterio di controllo" descritto nel paragrafo precedente può produrre strani risultati.

Successivo: In Explorer, vai alla directory di origine della mossa. Fare clic con il tasto destro del mouse su una directory, selezionare Proprietà, quindi la scheda Sicurezza, quindi fare clic su "Avanzate" (quasi tutto è utile sotto una scheda o un pulsante "Avanzate" ...). Fare clic sulla scheda "Controllo", quindi su "Continua", quindi su "Aggiungi". La finestra di dialogo risultante sarà simile a quella per l'aggiunta di una voce a una "lista di autorizzazioni", ma in questo caso, la voce che crei determinerà che le operazioni indicate debbano essere verificate - ad es. Le voci del registro di controllo verranno create per loro.

Per un "Preside", usa il gruppo "Tutti". Per "Tipo" probabilmente vuoi solo "successo" (di nuovo, i tentativi falliti ovviamente non spostano alcun file). "Si applica a:" selezionare "Questa cartella, subfile e file". Seleziona tutte le "autorizzazioni avanzate".

Ripeti per la directory di destinazione.

Se il file in questione esiste già nella directory di origine, è possibile abilitare il controllo solo per quel file anziché per la directory in cui si trova (ma abilitarlo anche per la directory di destinazione).

Tutti i tentativi riusciti di accedere alla directory (o alle directory), o il file se è stato abilitato il controllo a quel livello, verranno ora riportati nel registro di sicurezza.

Per visualizzare le voci di controllo, accedere a Gestione computer, Strumenti di sistema | Visualizzatore eventi, Registri di Windows e selezionare il registro di sicurezza. Correla le voci del registro per l'accesso al file / alla directory con le voci di creazione del processo.

Le voci di controllo spesso richiedono un minuto o due per essere visualizzate nel Visualizzatore eventi. Non aver paura di usare Aggiorna alcune volte.

n.b .: Le voci del registro di controllo sicurezza per "accesso oggetto" (inclusi i file) indicano solo le volte in cui gli oggetti erano ha aperto per l'accesso, non i tempi in cui sono stati effettivamente operati e non le operazioni specifiche.

Ad esempio: se qualcuno apre un file per l'accesso in lettura e scrittura, questo genera una voce di controllo. Successive letture e scritture effettive sul file non generare voci di controllo. E dal registro di controllo non sarà possibile sapere se il file è stato effettivamente scritto - solo che è stato aperto in modo tale da consentire la scrittura. Per ottenere quei dettagli sarà necessario utilizzare Process Monitor come descritto da Mike Nakis.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.