Non è necessario che installi la powershell su tutti i client. E' sufficiente che tu la abbia su un pc , che condivida le due cartelle e che abbia i permessi di scrittura sulle stesse.Originariamente inviato da morcas
grazie 1000 per il consiglio. Il problema è che devo fare questo tipo di pulizia su 20 pc che eseguono un software. Sinceramente vorrei evitare di installare questo powershell su tutti i pc e per questo vorrei tentare la strada del batch.
Comunque grazie vedo cosa posso fare.
Per esempio condividi le cartelle tempdb e log lasciando loro lo stesso nome. Avrai quindi le share nel seguente formato
\\nome_computer1\log
\\nome_computer1\tempdb
\\nome_computer2\log
\\nome_computer2\tempdb
e così via.
Ti suggerisco di scaricare powershell analyzer
http://www.powershellanalyzer.com/
risulta infatti più comoda un'interfaccia grafica quando si scrivono comandi più lunghi di una sola riga.
Ti serve adesso un semplice file di testo che conterrà l'elenco di tutti i pc.
Esempio
File elenco_pc.txt
nome_computer1
nome_computer2
...
nome_computerN
Lo script tramite get-content (cui passerai l'esatto percorso del file di testo), recupera l'elenco di tutti i computer della tua rete, tramite un ciclo foreach li esamina uno per uno, andrà ad analizzare le due cartelle condivise su ciascuno di essi ed eliminerà tutti i file più vecchi di tre giorni.codice:$computers = get-Content "C:\Documents and Settings\...tuo_path...\elenco_pc.txt" foreach($computer in $computers) { gci \\$computer\tempdb, \\$computer\log -rec -filter *.txt | ? {$_.creationtime -lt (get-date).adddays(-3) } | % {remove-item $_.fullname -whatif} }
Come ti avevo già scritto, nel caso sia tutto come ti aspetti, rimuovi il -whatif.
![]()