Negare l'accesso dell'applicazione al disco rigido o al volume in Windows 7+


12

Voglio negare ad alcune delle applicazioni sul mio computer di accedere a determinate unità o volumi logici, ma finora non ho trovato una soluzione.

Sfondo: il mio PC ha un SSD come unità di sistema e un Raid-6 da 15 TB con cinque hard disk. Il controller è configurato per spegnere le unità dopo ~ 10-15 minuti. Questo va bene perché a volte non ho bisogno di accedere a nulla sul Raid per un paio d'ore o anche di più. Alcune applicazioni come Adobe Reader accedono a tutti i volumi logici all'avvio per qualche motivo che non riesco a comprendere. La mia ipotesi è che tutti i volumi con una lettera di unità assegnata siano interessati. Rimuovere le lettere e riassegnarle non è affatto un'opzione;)

Come posso impedire ad Adobe Reader o ad altre applicazioni di accedere a questi volumi ai miei host Raid?


Non so come disabilitare l'accesso per determinate applicazioni. Ma sospetto che, se esiste uno strumento per negare l'accesso a SSD per alcune applicazioni, perderai la possibilità di aprire file da quei volumi. Quindi in questo caso è meglio provare a scoprire quale funzione consente ad Adobe Reader di leggere / scrivere qualcosa da / su SSD. Guarda la funzione "file recenti". Forse controlla la loro disponibilità ogni volta.
VIK,

Voglio limitare l'accesso al Raid, non all'SSD. In realtà, non c'è nulla su nessun volume sul Raid, che può essere utile ad Adobe Reader sul mio computer. Quindi, sì, nel mio caso voglio esplicitamente perdere la possibilità di accedere a qualsiasi cosa all'interno di Adobe Reader ciò che non è sull'SSD. Tuttavia, potresti avere ragione sulla funzionalità dei "file recenti" (anche se in questo caso non ci sono file recenti provenienti da quei volumi).
user654123

1
Che dire di una soluzione radicale come l'uso di un altro visualizzatore di PDF? Questo non risolve i problemi con altre app ma, a quanto ho capito, Adobe Reader è la cosa più fastidiosa per te. it.wikipedia.org/wiki/List_of_PDF_software
VIK

Sì, è l'applicazione più fastidiosa :) Speravo che potesse esserci una soluzione integrata a quel problema poiché negare l'accesso a Internet tramite il firewall di Windows funziona bene per altri programmi.
user654123

1
Hai considerato l'esecuzione di Reader come un utente separato che non ha accesso a quei volumi?
TWiStErRob,

Risposte:


6

In Windows, non esiste un modo supportato nativo per bloccare l'accesso a determinate unità a determinati processi, il che va "contro la natura attuale" del modo in cui il sistema operativo gestisce l'accesso alle unità.

Il diritto di accesso è determinato dai diritti dell'utente connesso che avvia l'applicazione. Quindi, se lo sviluppatore del software ha deciso che il suo software dovrebbe cercare tutte le unità accessibili e non ti dà la possibilità di disattivarlo ... beh, questa è una cattiva programmazione che non considera il tuo caso d'uso particolare. Ma ci sono alcune soluzioni alternative.

L'unica soluzione "sicura" è 2, poiché il livello di virtualizzazione hardware (dalla macchina virtuale) può bloccare qualsiasi applicazione per tentare di accedere completamente al "hardware reale". Anche se non ho avuto il caso in cui la soluzione 1 non funziona, ma teoricamente penso che potrebbe essere aggirata.

Opzione "1" - Disabilitazione delle unità a "livello basso" - Nessun software aggiuntivo necessario

Opzione 1a

È possibile disabilitare i volumi su un livello inferiore disabilitando del tutto le unità, ma ciò disabiliterà tutti i volumi sull'unità. Manualmente, puoi farlo avviando diskmgmt.msc, quindi fai clic con il pulsante destro del mouse sull'unità e contrassegnalo come "offline".

inserisci qui la descrizione dell'immagine

Se necessario, dovresti essere in grado di farlo anche usando uno script da riga di comando. Sarebbe applicato in modo simile all'opzione 3a / b. Puoi farlo, ad esempio, tramite cmd come descritto qui o tramite PowerShell, come descritto qui .

Opzione 1b

È possibile disattivare del tutto il driver dell'unità. Per eseguire manualmente: avviare diskmgmt.msc, quindi fare clic con il tasto destro, selezionare "opzioni". Quindi vai alla scheda "Driver" e seleziona "Disattiva". L'unità "scomparirà" nel gestore disco e non sarà più accessibile tramite il sistema operativo. A meno che il software non esegua i comandi del codice macchina per comunicare direttamente con l'hardware, l'applicazione non dovrebbe avere accesso alle unità. Almeno per quanto riguarda la mia conoscenza dei dettagli per i sistemi operativi.

inserisci qui la descrizione dell'immagine

Se necessario, dovresti essere in grado di farlo anche usando uno script da riga di comando. Sarebbe applicato in modo simile all'opzione 3a / b usando, ad esempio Devcon.exe,. Puoi trovare una descrizione dettagliata qui .

Opzione 2: utilizzo di un ambiente virtuale (principalmente con software di terze parti)

Se l'esecuzione dell'applicazione in un ambiente virtuale è un'opzione, ci sono molte soluzioni disponibili:

  • a seconda della versione di Windows (Win7 e versioni successive) e della licenza ("Professional" richiesto, "Home" non funziona), è possibile utilizzare Hyper-V per configurare un ambiente virtuale senza software di terze parti.

  • puoi usare un software di terze parti per configurare un sistema virtuale come VMplayer, Virtual Box, ecc. Esistono molte alternative freeware e payware. Usando questa soluzione, avrai bisogno di una seconda licenza per Windows (o la lasci senza licenza, ma poi otterrai un overlay nell'angolo in basso a destra dello schermo che ti dirà di registrare Windows). Ciò impedirà sicuramente al software di accedere all'unità.

  • potresti usare un'applicazione "sandbox". Ma dipenderà dal livello di virualizzazione offerto dall'applicazione sandbox. In alcuni casi, può risolvere il problema; in altri casi no. Sandboxie, ad esempio (quello descritto da harrymc nella sua risposta ), non risolve il problema con la configurazione di harrymc descritta nella sua (originale) risposta. Sebbene il software possa bloccare l'accesso, l'unità continuerà a spostarsi verso l'alto. Un'alternativa sarebbe quella di utilizzare un'applicazione sandbox diversa come Cameyo, ecc.

A proposito, ecco un buon articolo per la principale differenza tra i diversi software di virtualizzazione, in particolare la differenza tra una macchina virtuale "intera" (come Virtual Box) o applicazioni "semi virtuali" (come Sandboxie).

Opzione 3 - Smontare solo i volumi (lasciando l'unità "intatta") - Nessun software aggiuntivo necessario, MA potrebbe non funzionare nel tuo caso

Opzione 3a

Invece di avviare l'applicazione tramite il suo collegamento regolare, è possibile scrivere un file batch utilizzando il comando mountvolche prima smonta il volume inutilizzato, quindi avvia l'applicazione e quindi rimonta il volume quando l'applicazione non accede più all'unità. Il processo di montaggio / smontaggio tramite riga di comando è descritto qui e qui . Puoi anche usare diskpartcome descritto qui e qui .

Opzione 3b

In alternativa, è possibile lasciare l'unità smontata in generale e montarla tramite un file batch che monta l'unità che si avvia manualmente quando necessario. Dopo aver finito di usarlo, è possibile smontarlo manualmente utilizzando un secondo file batch. È possibile automatizzarlo monitorando le richieste di accesso al file system e montando / smontando l'unità come richiesto secondo determinate regole, ad esempio alcune applicazioni non avranno accesso. Ma non sono sicuro che l'automazione valga lo sforzo extra che comporta.

Opzione 4: limitazione dell'accesso a una lettera di unità (volume). Semplice da fare, ma necessari due piccoli strumenti di Microsoft: MA potrebbe non funzionare nel tuo caso

Se vuoi farlo senza software di terze parti ma non ti dispiace usare due piccoli strumenti di Microsoft (se non lo usi già). Preferisco questa soluzione perché ottiene il problema "dalla radice" (differenziazione tra i diritti dell'utente e dell'applicazione) ed è abbastanza semplice e non è necessario alcun "grande" software di terze parti.

Fondamentalmente, aggiungi un utente senza accesso all'unità e quindi avvii il programma con quei diritti limitati (accederai comunque come utente normale, non utilizzerai l'account limitato per accedere).

  • Aggiungi un account utente.

  • Limitare l'accesso del nuovo account utente all'unità utilizzando il controllo di accesso di Windows per il file system. Ecco un buon How-To che include schermate.

  • Quindi, avviare il software con tali diritti. Ad esempio, è possibile utilizzare PsExec.exe per farlo o Process Explorer, ecco come . Uno di questi due dovrai scaricare dal sito Web Microsoft, se non li hai già.


4

Propongo una soluzione che utilizza Sandboxie . Non ho il tuo ambiente, quindi ho testato l'esecuzione Acrobat.exein una sandbox in cui il suo accesso D:era bloccato. Quando apro in Acrobat il menu File> Apri , ottengo questo:

Immagine

Si noti che Acrobat non riesce nemmeno a trovare l'etichetta del disco D:, quindi è costretto a visualizzarlo in modo scadente e come viene bloccato quando faccio clic su "Disco locale (D :)".

I passaggi che ho usato sono stati:

  • Sandboxie installato
  • In Controllo sandboxie, fai clic con il pulsante destro del mouse sulla sandbox predefinita e scegli Impostazioni sandbox
  • Apri il ramo di Accesso alle risorse> Accesso ai file e fai clic su Accesso bloccato
  • Fai clic su Aggiungi programma e aggiungi Acrobat (il mio era C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat\Acrobat.exe)
  • Fai clic su Aggiungi e aggiungi discoD:
  • Clicca OK
  • In Sandboxie Control, apri il ramo di Start del programma> Cartelle forzate
  • Fai clic su Aggiungi cartella
  • Aggiungi la cartella in cui risiede Acrobat (il mio era C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat)
  • Clicca OK

Da ora in poi, tutti i programmi avviati dalla cartella Acrobat sono costretti a eseguire operazioni in sandbox e in particolare Acrobat.exeviene impedito l'accesso al disco D:. Potrebbe essere necessario aprire alcune altre restrizioni sandbox se Acrobat avrà delle difficoltà nell'esecuzione all'interno della sandbox.

Non so se questo bloccherà anche la specifica chiamata API di Windows utilizzata da Acrobat per causare il riattivazione del disco, ma potrebbe valere la pena provare.

Sandboxie è un prodotto eccezionale e versatile che raccomando, gratuito per un sandbox predefinito. Per più sandbox si tratta di payware, ma il prezzo della licenza a vita è molto ragionevole (ho pagato). Ad esempio, installo i prodotti che collaudo in una sandbox e posso quindi cancellarli con un clic e non è necessario un programma di disinstallazione.


Un'altra soluzione di isolamento è l'utilizzo di Adobe Reader all'interno di un contenitore Docker . I contenitori Docker sono piccoli e funzionano come macchine virtuali, ma senza la necessità di creare la macchina, poiché i contenitori pronti vengono scaricati dalla galleria Docker.

Puoi usare Chocolatey come gestore dei pacchetti.

Chocolatey ha molti pacchetti predefiniti disponibili con Adobe Reader presso Adobe Acrobat Reader DC 2018.011.20063 .

Con Docker è possibile un isolamento assoluto per quanto riguarda le risorse e, d'altra parte, è possibile condividere risorse come le cartelle in modo completamente nativo.


2
@WackGet: qualche commento?
harrymc,

Dice che non funziona, l'unità continua a girare, almeno nel suo caso d'uso. Mi chiedo, Sandboxie ti dà la possibilità di nascondere le risorse a livello hardware? Non l'ho ancora installato.
Albin,

@WackGet: Sandboxie ha più impostazioni disponibili nei suoi file di configurazione. Ma prima di tutto: i dischi si riattivano al momento dell'avvio di Adobe o solo quando si utilizza il menu File> Apri ?
harrymc,

Oltre alla domanda sopra, ho aggiunto un'altra opzione di isolamento leggero, usando Docker. I contenitori Docker sono piccoli e funzionano come macchine virtuali, ma senza la necessità di crearli, poiché i contenitori sono già pronti e vengono scaricati dalla galleria Docker.
harrymc,

Scelta interessante. A quale applicazione Docker ti riferisci poiché è piuttosto una soluzione sviluppatore / impresa. Sfortunatamente i prodotti docker che ho visto non sono liberi di usare (solo il trialware è possibile) ... ma forse ho trascurato s.th.
Albin,
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.