Associazione file via script per tutti gli utenti (terminal server)

Sistema per eseguire l'associazione file su un server terminal o citrix per tutti gli utenti.

Il problema nasce dal fatto che l'associazione file riguarda il contesto utente quindi bisogna eseguire la configurazione per ogni utente su ogni server.



(qui è mostrato come gestire i file .tiff ma può essere applicato ad ogni estensione)
concetti di base:

il comando  "assoc .tiff" avremo:

>assoc .tif
.tif=TIFImage.Document

significa che l'estensione è associata al tipo di documento; invece il comando

>assoc .tif
.tif=ft000002

ci mostra un tipo di associazione diversa.
eseguendo,

>ftype TIFImage.Document
TIFImage.Document=rundll32.exe C:\WINDOWS\system32\shimgvw.dll,ImageView_Fullscreen %1

vedremo quale programma è associato per l'apertura del tipo di file, nel mio caso

>ftype ft000002
Tipo di file 'ft000002' non trovato o nessun comando è associato ad esso.

nel mio caso ho già un estensione funzionante ( la .tiff) devo solo assegnare la stessa estensione anche al . tif con il comando
assoc .tif=TIFImage.Document


nel caso non avessi un tipo di file registrato dovrei assegnare  un nuovo programma con il comando:
ftype TIFImage.Document=%SystemRoot%\system32\shimgvw.dll %1
oppure
ftype TIFImage.Document=%SystemRoot%\system32\NOTEPAD.EXE %1
oppure
ftype TIFImage.Document="G:\Program Files\Windows NT\Accessories\wordpad.exe" "%1"


fino qui abbiamo visto come modificare l'associazione file, ma resta il problema di come applicare queste impostazioni a tutti gli utenti; ci sono diverse strade:
 usare le PGO precerence per impostare l'associazione file come spiegato qui
http://www.evernote.com/shard/s241/sh/661bb292-4c64-4cde-afb0-1054775b309c/e17ebbf0a803456c9a89f8aec3f1f224

o qui
http://www.grouppolicy.biz/2011/09/how-to-use-group-policy-to-change-open-with-file-associations/

l'utilizzo della policy però di solito pone il problema di come applicare la regola solo ai server con il problema e non a tutte le macchine: una soluzione puo essere quella di usare le funzioni di loopback come piegato qui  (metodo 2 ) http://support.microsoft.com/kb/260370

io personalmente ho optato per un sistema "sporco" ma molto preciso e funzionale:
1) ho creato uno script .bat  con i comandi che mi servivano.
2) ho messo lo scritp su una cartella locale del server (con un nome insolito > vedi punto 3)
3) ho creato una gpo con impostazione utente che esegue quello script usando il percorso relativo  (ad es c:\script\sctiptassociazione.bat)

questo sistema fa si che quando l' utente fa accesso su una macchina done non esiste lo script in c:\ questo non viene trovato e di conseguenza non eseguito.




Nessun commento:

Posta un commento

Lascia qui il tuo commento.