Script per configurare i permessi di una cartella di rete per un utente

Network_Folder Avete cartelle private di un utente in una posizione di rete condivisa e volete che solo l’utente possa vederle?

Ecco lo script che fa per voi!

Spesso capita che in una cartella condivisa gli utenti creino una cartella personale, ma in essa i permessi sono aperti a tutti gli utenti previsti nella cartella padre (amministratori compresi).
Come è possibile assegnare i permessi al solo utente in modo semplice, e renderlo anche proprietario della cartella in modo che nessuno possa accedere o modificare queste impostazioni?

I comandi TAKEOWN e ICACLS ci vengono in aiuto per velocizzare l’operazione.

Consiglio comunque di testare prima l’operazione su una cartella di prova e poi di procedere su quella definitiva.

Ecco lo script:

@echo off
set ERROLEVEL=0
cls
echo =============================================
echo      SCRIPT PER LA DEFINIZIONE DEI
echo   CORRETTI PERMESSI DI UNA CARTELLA UTENTE
echo =============================================
echo.
echo.
echo.
echo.
echo.
SET QUESTOUTENTE=%USERDOMAIN%\%USERNAME%

:IMPOSTAVARIABILI
set Dominio=
Set Utente=
Set Cartella=
echo Dominio
echo -------
set /p Dominio=Inserire il nome del dominio (niente per dominio corrente oppure %COMPUTERNAME% per utente locale):
if "%Dominio%"=="" set Dominio=%USERDOMAIN%
echo.
echo.
echo Utente
echo ------
set /p NomeUtente=Inserire il nome account utente:
echo.
echo.
echo Cartella
echo --------
:: La riga qui di seguito viene usata quando si ripete per piu utenti lo script
if "%Percorso%" NEQ "" echo Attualmente il percorso e' impostato su: %Percorso% && echo premere solo invio per confermarlo && echo.
set /p Percorso=Inserire il percorso della cartella si trova la cartella dell'utente in cui modificare i permessi (la cartella padre):
if NOT Exist %Percorso% goto ERRORE
echo.
echo.
echo Nome cartella a cui cambiare i permessi
echo ---------------------------------------
echo.
echo Cartelle presenti in %Percorso%:
echo ..................................................
FOR /F "tokens=4 delims= " %%A IN ('dir /ad %Percorso% ^|findstr /C:""^|findstr /V /E /C:"."') DO @echo %%A
echo ''''''''''''''''''''''''''''''''''''''''''''''''''
echo.
set /p Cartella=Scrivere il nome della cartella a cui bisogna cambiare i permessi (desktop, documenti o altro a seconda della necessita'):
echo.
echo.
cls
echo =============================================
echo ATTENZIONE!!!
echo =============================================
echo.
echo.
echo.

echo Saranno cambiati i permessi della cartella
echo %Percorso%\%Cartella%
echo impostando come proprietario l'utente %QUESTOUTENTE%
echo.
set /p Risposta=Si',No, Annulla (S/N/A):

if "%Risposta%"=="S" goto ESEGUI
if "%Risposta%"=="N" goto IMPOSTAVARIABILI
goto ANNULLA

:ESEGUI
cls
echo =============================================
echo SCRIPT PER LA DEFINIZIONE DEI
echo CORRETTI PERMESSI DI UNA CARTELLA UTENTE
echo =============================================
echo.
echo.
echo.
echo.
echo.
echo Cambio i permessi della cartella
echo %Percorso%\%Cartella%
echo con proprietario %DOMINIO%\%NomeUtente%
echo.
cls
echo.
TAKEOWN /f %Percorso%\%Cartella% /r /d S | findstr /I /V /B /C:"Operazione riuscita" | findstr /C:" "
echo.
echo Fine comando takeown
echo -------------------------------
echo.
echo L'utente %QUESTOUTENTE% e' diventato il proprietario della cartella %Percorso%\%Cartella%
echo.
pause
cls
echo.
ICACLS "%Percorso%\%Cartella%" /reset /T | findstr /I /V /B /C:"File elaborato"
echo.
echo Fine comando reset
echo -------------------------------
echo.
echo Sono stati resettati i permessi della cartella %Percorso%\%Cartella%
echo.
pause
cls
echo.
ICACLS "%Percorso%\%Cartella%" /grant:r "%DOMINIO%\%NomeUtente%":(OI)(CI)F /grant:r "SYSTEM":(OI)(CI)F /grant:r "%QUESTOUTENTE%":(OI)(CI)F | findstr /V /B /C:"File elaborato"
echo.
echo Fine comando assegna permessi
echo ------------------------------
echo.
echo La cartella %Percorso%\%Cartella% ha ora i permessi impostati per %DOMINIO%\%NomeUtente%,SYSTEM e %QUESTOUTENTE%
echo (L'utente amministratore %QUESTOUTENTE% sara' poi rimosso a fine script se non e' l'utente designato come proprietario)
echo.
pause
cls
echo.
ICACLS "%Percorso%\%Cartella%" /inheritance:r | findstr /I /V /B /C:"File elaborato"
echo.
echo Fine comando Imposta ereditarieta'
echo ----------------------------------
echo.
echo Attivata ereditarieta' sulla cartella %Percorso%\%Cartella%
echo.
pause
cls
echo.
ICACLS "%Percorso%\%Cartella%" /setowner "%DOMINIO%\%NomeUtente%" /T | findstr /I /V /B /C:"File elaborato"
echo.
echo Fine comando Imposta Proprietario
echo ----------------------------------
echo.
echo La cartella %Percorso%\%Cartella% ha ora come proprietario %DOMINIO%\%NomeUtente%
echo.
pause
cls
echo.
if "%username%"=="%NomeUtente%" (

echo Utente impostato = utente corrente. Lascio permessi intatti.
) else (
echo Rimuovo %QUESTOUTENTE% come utente con permessi
ICACLS "%Percorso%\%Cartella%" /remove "%QUESTOUTENTE%" | findstr /I /V /B /C:"File elaborato"
)
echo.
echo.
pause
goto FINE

:ANNULLA
echo =============================================
echo SCRIPT PER LA DEFINIZIONE DEI
echo CORRETTI PERMESSI DI UNA CARTELLA UTENTE
echo =============================================
echo.
echo. OPERAZIONE ANNULLATA
echo RILANCIARE LO SCRIPT
echo ED AGGIORNARE I PERMESSI
echo.
echo.
goto ENDOFSCRIPT

:ERRORE
echo =============================================
echo SCRIPT PER LA DEFINIZIONE DEI
echo CORRETTI PERMESSI DI UNA CARTELLA UTENTE
echo =============================================
echo.
echo. RISCONTRATO ERRORE. VERIFICARE I DATI
echo.
echo.
goto ENDOFSCRIPT

:FINE
cls
echo =============================================
echo SCRIPT PER LA DEFINIZIONE DEI
echo CORRETTI PERMESSI DI UNA CARTELLA UTENTE
echo =============================================
echo.
echo.
echo.
echo.
:ENDOFSCRIPT
echo.
echo Elaborazione terminata
pause

P.S.
Lo script deve essere lanciato da un utente con permessi amministrativi

Lascia un commento qui

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...