View Full Version : Problema permessi cartella Temp su W8.1 anche dopo format
Ciao a tutti ragazzuoli, oggi vi espongo un problema che mi sta creando numerosi grattacapi, più che altro dal momento che disperatamente qualche giorno fa ho deciso di formattare per ovviare al problema che però si è ripresentato pari pari anche dopo il format.
Il problema è molto semplice, e l'ho scoperto grazie a Dropbox che all'avvio mi avverte di non riuscire ad avviarsi per un errore nelle autorizzazioni della cartella Temp (più precisamente dal log di dropbox risulta: BrokenTempDirError: Broken temporary directory (missing execute permission): u'd:\\users\\francesco\\appdata\\local\\temp'), di cui posterò più sotto la schermata.
http://i58.tinypic.com/a084rc.jpg
Facilmente si trovano thread di altre persone sul web, ma mentre alcuni hanno risolto modificando le autorizzazioni della cartella stessa, io ho fatto lo stesso ma la modifica funziona per pochi giorni, poi un bel giorno al primo avvio si ripresenta il problema. Inoltre fosse solo Dropbox a non partire, avrei usato l'interfaccia web per caricare i files, ma purtroppo molti .exe di app da installare ancora, danno errore anch'essi per via delle autorizzazioni della cartella Temp stessa, alcuni addirittura non fanno proprio nulla, non si aprono nemmeno.
Da notare che anche dopo aver formattato il problema si è ripresentato pari pari dopo uno dei primi riavvii, e Dropbox è una delle prime app che ho installato. Credo di aver capito a cosa è legato il problema: ai drivers nVidia installati automaticamente da Windows al primo avvio, insieme al software "Driver grafico NVidia", "Driver grafico NVidia 3dVision" e altre cose inutili. Credo ciò perché nella cartella Temp c'è una cartella NVIDIA con dei files, e il problema spesso mi si ripresenta quando si aggiornano i drivers della scheda video. Però è solo una mia opinione.
In ogni caso logicamente ho disinstallato il software e rimosso la cartella NVIDIA da Temp ma purtroppo ad ogni riavvio Windows mi reinstalla tutto il pacchetto automaticamente...
Dopo aver formattato speravo di aver risolto e invece niente, ormai sono a corto di idee, qualcuno ha una genialata in mente? :ciapet:
Grazie a tutti :)
x_Master_x
09-09-2014, 12:31
Il problema dei permessi è che non si possono "bloccare", qualunque software di terze parti ( che sia NVIDIA o altro non importa, la causa è causata da terzi ) con diritti amministrativi può cambiare i permessi ad una cartella.
Senza perderci molto tempo, io farei una Task ( con Pianifica Attività-Operazioni Pianificate ) con i privilegi elevati e/o account SYSTEM in modo di non avere il prompt UAC ( nella scheda "Generale" della Task creata clicca su "Cambia utente o gruppo", scrivi SYSTEM e dai conferma ) che ad ogni avvio reimposti i permessi della cartella %TEMP%
Per rendere la cartella accessibile dovrebbe bastare:
TAKEOWN /r /d S /f "C:\Users\NOME_UTENTE\Appdata\Local\Temp"
Buon divertimento :D
Ottimo! Provo la modifica dopo e ti tengo aggiornato nei giorno successivi sperando non si ripresenti! Grazie mille per la risposta :)
Aggiorno il thread, in quanto purtroppo la tua soluzione non funge. Il problema è che io sono già il proprietario di Temp e quello che invece viene eliminato non è la proprietà della cartella bensì il mio nome utente nella tab "Autorizzazioni", ecco la schermata.
http://i59.tinypic.com/15s5wsj.jpg
Dopo il lancio dello script che mi hai passato effettivamente prendo proprietà di tutte le cartelle, ma in realtà lo sono già. A me serve comparire in questa lista come in questa seconda schermata:
http://i57.tinypic.com/2a8epg0.jpg
ed onestamente non ho la benchè minima idea di come farlo tramite script :stordita:
Grazie ancora!
EDIT: credo di aver trovato qualcosa, il comando
icacls <foldername> /grant administrators:F /T
dovrebbe andare se sostituisco il mio username al posto di administrators?
ARIEDIT: il comando non modifica nulla, aggiunge solo il mio utente ma di fatto senza nessuna autorizzazione. Il codice usato è
icacls D:\Users\Francesco\AppData\Local\Temp /grant Francesco:F /T
ed ho riprovato anche con :M, :RX ed altri, lo script inserisce il mio username tra quelli presenti ma senza di fatto aggiungere autorizzazioni all'utente stesso, non a caso Dropbox continua a non partire.
x_Master_x
09-09-2014, 17:34
Quasi giusto:
ICACLS "C:\Percorso\Cartella" /grant "NOME_UTENTE":(OI)(CI)F /T
Allora, aggiorno il thread. Sono riuscito a prendere il controllo della cartella tramite il comando di reset dei permessi:
icacls D:\Users\Francesco\Local\AppData\Temp /reset /T
ed ora pare che non possa modificare nemmeno io le autorizzazioni poiché il reset ha anche abilitato l'ereditarietà dei permessi (io sono Admin quindi siccome gli Admin hanno controllo completo lo ho anche io), lascio così senza inserire lo script come task da eseguire all'avvio, forse ora Nvidia non dovrebbe essere più in grado di modificare i permessi. Se lo fa ancora, imposto il reset come task eseguibile all'avvio del PC e prego che funzioni.
In attesa di un responso ufficiale, ti ringrazio dell'aiuto in ogni caso, se non fosse stato per te con il consiglio del TAKEOWN non sarei mai riuscito a trovare uno script adatto e nemmeno ci avrei pensato. Spero di poter essere d'aiuto anche ad altri che abbiano questo problema :D
EDIT: non avevo letto in tempo il tuo messaggio, proverò anche questo. Ma scusa, nell'help del comando dice che F mi dà accesso completo, come mai devo inserire anche le altre due autorizzazioni singole?
x_Master_x
09-09-2014, 18:34
Di nulla, una genialata al giorno toglie il medico di torno :asd:
Scherzi a parte, quando hai formattato i permessi erano quelli di default ma NVIDIA o chi per esso li ha modificati comunque, te lo ripeto chiunque/qualunque cosa con diritti amministrativi é in grado di modificare le autorizazioni, impossibile che il tuo utente amministratore non li possa più modificare.
In ogni caso hai la stringa giusta e la procedura da seguire in caso ti dovesse servire. Icalcs...le due sigle stanno per "Container Inherit" e "Object Inherit", cioé le informazioni dell'ereditarietà. Trovi tutte le spiegazioni sulla documentazione ufficiale o l'help della commandline.
Di nulla, una genialata al giorno toglie il medico di torno :asd:
Scherzi a parte, quando hai formattato i permessi erano quelli di default ma NVIDIA o chi per esso li ha modificati comunque, te lo ripeto chiunque/qualunque cosa con diritti amministrativi é in grado di modificare le autorizazioni, impossibile che il tuo utente amministratore non li possa più modificare.
In ogni caso hai la stringa giusta e la procedura da seguire in caso ti dovesse servire. Icalcs...le due sigle stanno per "Container Inherit" e "Object Inherit", cioé le informazioni dell'ereditarietà. Trovi tutte le spiegazioni sulla documentazione ufficiale o l'help della commandline.
Si questo l'avevo capito, ma speravo che essendo l'ereditarietà attiva Nvidia non fosse in grado di cambiare i permessi. So che li posso modificare ma per farlo devo disattivare l'ereditarietà degli stessi.
In ogni caso seguo il tuo consiglio e metto un'attività all'avvio con la stringa che mi hai dato, così anche se dovesse ricapitare, Nvidia se la prende in :ciapet: (scusa la finezza, ma quando ce vò, ce vò) e le app fungono normalmente.
Grazie ancora :)
Master, mi dispiace ma debbo riaprire il thread :cry: pensavo di aver risolto e invece ora che ho acceso il PC dropbox mi ha dato di nuovo problemi! :cry: Controllando i permessi della cartella, il mio account mancava di nuovo, nonostante la task che ho aggiunto funzionasse.
L'ho messa da eseguire ad ogni AVVIO di conseguenza devo immaginare che qualunque app modifichi le autorizzazioni della maledettissima cartella Temp, lo fa anch'essa all'avvio ma DOPO la Task.
A questo punto penso, potrei eseguire la task ad ogni ACCESSO di un qualsiasi utente anzichè all'avvio, oppure come posso risolvere? :fagiano:
Grazie ancora e scusa per la rompiballagine :help:
x_Master_x
11-09-2014, 17:33
Proviamo a cambiare approccio, aggiungiamo l'utente prima dell'apertura del programma.
Copia-Incolla queste stringhe su un Blocco Note e salva come .VBS
' x_Master_x
Dim objShell
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run """ICACLS"" ""C:\Users\NOME_UTENTE\AppData\Local\Temp"" /grant ""NOME_UTENTE"":(OI)(CI)F /T""", 0, True
If WScript.Arguments.Count = 0 Then
WScript.Echo "Nessun software selezionato"
WScript.Quit
End If
objShell.Run """" & WScript.Arguments(0) & """", 1, False
Set objShell = Nothing
Sostituisci NOME_UTENTE con il tuo.
P.S. Se vuoi poi usare anche il reset delle impostazioni, basta sostituire la quarta linea con questa:
objShell.Run """ICACLS"" ""C:\Users\NOME_UTENTE\AppData\Local\Temp"" /reset /T""", 0, True
Questo VBS sarà la base per tutte le applicazioni che ti danno il problema dei permessi. Tasto destro sul desktop --> Nuovo --> Collegamento
Il percorso da scrivere sarà:
C:\Windows\System32\wscript.exe "C:\Percorso\File.vbs" "C:\Windows\System32\notepad.exe"
Sostituisci "C:\Percorso\File.vbs" con il percorso del tuo VBS e "C:\Windows\System32\notepad.exe" con il percorso del programma, es. Dropbox. Conferma tutte le schermate e infine se vuoi cambia l'icona con quella del software in questione che hai aggiunto come parametro.
Ho provato con una cartella creata apposta senza diritti in un ambiente protetto e funziona correttamente, vediamo questa volta come va a finire.
Grazie mille! :D Ora provo, così dovrebbe andare.
Ah, non credo sia importante, ma lo dico comunque. Il percorso esatto della cartella Users è in D: e non in C: perché avendo l'SSD (C) ed un hard disk (D) ho fatto un relocate della cartella Users nel secondo, altrimenti l'SSD si riempiva in niente :fagiano:
Ovviamente i percorsi li ho sempre inseriti correttamente (ossia icacls D:\ecc.. /grant ecc...)
EDIT: inoltre il percorso di Temp nel mio PC è AppData/Local/Temp e non Local/AppData/Temp :)
ariedit: ma l'@echo "Nessun software selezionato" nel vbs devo sostituirlo con qualcosa o lo devo lasciare così? Poi alla fine metto il tutto in Esecuzione Automatica? O devo creare una task?
x_Master_x
11-09-2014, 18:04
Non sono d'accordo al reindirizzo dell'intera cartella "User" su un'altra partizione usando le junction ( bisognerebbe fare un'installazione ad-hoc ) poiché crea incompatibilità varie, magari chi mi dice che non sia quella la causa dei permessi rimossi?
Il percorso Local\AppData l'ho preso dal tuo post :D
P.S. Ho editato il VBS, ho messo un False al posto di un True. Nulla di che però é meglio dirtelo.
EDIT: Il messaggio serve, lascialo stare. Devi fare un collegamento ( o più collegamenti, dipenda da quali programmi danno errore con la cartella Temp ) come indicato ed avviare il software dal suddetto.
Non sono d'accordo al reindirizzo dell'intera cartella "User" su un'altra partizione usando le junction ( bisognerebbe fare un'instalkazione ad-hoc ) poiché crea incompatibilità varie, magari chi mi dice che non sia quella la causa dei permessi rimossi?
Il percorso Local\AppData l'ho preso dal tuo post :D
P.S. Ho editato il VBS, ho messo un False al posto di un True. Nulla di che però é meglio dirtelo.
EDIT: Il messaggio serve, lascialo stare. Devi fare un collegamento ( o più collegamenti, dipenda da quali programmi danno errore con la cartella Temp ) come indicato ed avviare il software dal suddetto.
Perfetto. Ho capito :) In ogni caso, non è che ho spostato a caso la cartella Users, il relocate l'ho fatto dall'account Admin al primo avvio di Windows prima di inserire il primo utente, seguendo questa guida (http://www.eightforums.com/tutorials/4275-user-profiles-relocate-another-partition-disk.html), questo relocate lo uso da anni ed il problema di dropbox me l'ha dato solo da quando ho il nuovo PC con relativa scheda nVidia :)
x_Master_x
11-09-2014, 21:31
L'installazione con sysprep-oobe é la procedura a cui mi riferivo ed é la più sicura possibile, pensavo avessi fatto le junction come tanti erroneamente fanno.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.