Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Function Cleanup {
- <#
- Descrição do Script:
- Este Script limpa os arquivos temporários em pastas do Windows, na lixeira dos usuários
- e em pastas do spotify e cache do chrome.
- A execução do script não danifica o desempenho das máquinas.
- #>
- function global:Write-Verbose ( [string]$Message )
- # checa a varíavel $VerbosePreference e liga -Verbose
- { if ( $VerbosePreference -ne 'SilentlyContinue' )
- { Write-Host " $Message" -ForegroundColor 'Yellow' } }
- $VerbosePreference = "Continue"
- $DaysToDelete = 0
- $LogDate = $(((get-date).ToUniversalTime()).ToString("dd-MM-yyyy--hh-mm-ss"))
- $objShell = New-Object -ComObject Shell.Application
- $objFolder = $objShell.Namespace(0xA)
- $ErrorActionPreference = "silentlycontinue"
- ## Cria os caminhos caso não existam e começa a salvar o log no caminho especificado
- New-Item -Path 'C:\Scripts\Infra\Logs' -ItemType Directory
- Start-Transcript -Path C:\Scripts\Infra\Logs\$LogDate.log
- ## Limpa o código da tela
- Clear-Host
- $size = Get-ChildItem C:\Users\* -Include *.iso, *.vhd -Recurse -ErrorAction SilentlyContinue |
- Sort Length -Descending |
- Select-Object Name,
- @{Name="Size (GB)";Expression={ "{0:N2}" -f ($_.Length / 1GB) }}, Directory |
- Format-Table -AutoSize | Out-String
- $Before = Get-WmiObject Win32_LogicalDisk | Where-Object { $_.DriveType -eq "3" } | Select-Object SystemName,
- @{ Name = "Drive" ; Expression = { ( $_.DeviceID ) } },
- @{ Name = "Size (GB)" ; Expression = {"{0:N1}" -f( $_.Size / 1gb)}},
- @{ Name = "FreeSpace (GB)" ; Expression = {"{0:N1}" -f( $_.Freespace / 1gb ) } },
- @{ Name = "PercentFree" ; Expression = {"{0:P1}" -f( $_.FreeSpace / $_.Size ) } } |
- Format-Table -AutoSize | Out-String
- ## Para o serviço do Windows Update
- Get-Service -Name wuauserv | Stop-Service -Force -Verbose -ErrorAction SilentlyContinue
- ## Deleta o conteúdo da pasta Software Distribution, do Windows.
- Get-ChildItem "C:\Windows\SoftwareDistribution\*" -Recurse -Force -Verbose -ErrorAction SilentlyContinue | remove-item -force -Verbose -recurse -ErrorAction SilentlyContinue
- ## Deleta o conteúdo da pasta CCMcache, do Windows.
- Get-ChildItem "C:\Windows\ccmcache\*" -Recurse -Force -Verbose -ErrorAction SilentlyContinue | remove-item -force -Verbose -recurse -ErrorAction SilentlyContinue
- ## Deleta o conteúdo da pasta CCMsetup, do Windows.
- Get-ChildItem "C:\Windows\ccmsetup\*" -Recurse -Force -Verbose -ErrorAction SilentlyContinue | remove-item -force -Verbose -recurse -ErrorAction SilentlyContinue
- ## Deleta o conteúdo da pasta Installer, do Windows
- Get-ChildItem "C:\Windows\Installer\*" -Recurse -Force -Verbose -ErrorAction SilentlyContinue | remove-item -force -Verbose -recurse -ErrorAction SilentlyContinue
- ## Deleta o conteúdo da pasta Temp, do Windows || Respeitando a contagem de dias da variável DaysToDelete
- Get-ChildItem "C:\Windows\Temp\*" -Recurse -Force -Verbose -ErrorAction SilentlyContinue |
- Where-Object { ($_.CreationTime -lt $(Get-Date).AddDays(-$DaysToDelete)) } |
- remove-item -force -Verbose -recurse -ErrorAction SilentlyContinue
- ## Deleta o conteúdo da pasta Spotify, em todos os usuários || Respeitando a contagem de dias da variável DaysToDelete
- Get-ChildItem "C:\users\*\AppData\Local\Spotify\Data\*" -Recurse -Force -ErrorAction SilentlyContinue |
- Where-Object { ($_.CreationTime -lt $(Get-Date).AddDays(-$DaysToDelete))} |
- remove-item -force -Verbose -recurse -ErrorAction SilentlyContinue
- ## Deleta o conteúdo da pasta Cache, do chrome de todos os usuários || Respeitando a contagem de dias da variável DaysToDelete
- Get-ChildItem "C:\users\*\AppData\Local\Google\Chrome\User Data\Default\Cache*" -Recurse -Force -ErrorAction SilentlyContinue |
- Where-Object { ($_.CreationTime -lt $(Get-Date).AddDays(-$DaysToDelete))} |
- remove-item -force -Verbose -recurse -ErrorAction SilentlyContinue
- ## Deleta o conteúdo da pasta Temporary Internet Files, de todos os usuários || Respeitando a contagem de dias da variável DaysToDelete
- Get-ChildItem "C:\users\*\AppData\Local\Microsoft\Windows\Temporary Internet Files\*" `
- -Recurse -Force -Verbose -ErrorAction SilentlyContinue |
- Where-Object {($_.CreationTime -le $(Get-Date).AddDays(-$DaysToDelete))} |
- remove-item -force -recurse -ErrorAction SilentlyContinue
- ## Limpa os logs do IIS, se possível
- Get-ChildItem "C:\inetpub\logs\LogFiles\*" -Recurse -Force -ErrorAction SilentlyContinue |
- Where-Object { ($_.CreationTime -le $(Get-Date).AddDays(-60)) } |
- Remove-Item -Force -Verbose -Recurse -ErrorAction SilentlyContinue
- ## Limpa a lixeira
- $objFolder.items() | ForEach-Object { Remove-Item $_.path -ErrorAction Ignore -Force -Verbose -Recurse }
- ## Inicia de novo o serviço do Windows Update
- ##Get-Service -Name wuauserv | Start-Service -Verbose
- $After = Get-WmiObject Win32_LogicalDisk | Where-Object { $_.DriveType -eq "3" } | Select-Object SystemName,
- @{ Name = "Drive" ; Expression = { ( $_.DeviceID ) } },
- @{ Name = "Size (GB)" ; Expression = {"{0:N1}" -f( $_.Size / 1gb)}},
- @{ Name = "FreeSpace (GB)" ; Expression = {"{0:N1}" -f( $_.Freespace / 1gb ) } },
- @{ Name = "PercentFree" ; Expression = {"{0:P1}" -f( $_.FreeSpace / $_.Size ) } } |
- Format-Table -AutoSize | Out-String
- ## Envia informações sobre antes&depois do script
- Hostname ; Get-Date | Select-Object DateTime
- Write-Verbose "Before: $Before"
- Write-Verbose "After: $After"
- Write-Verbose $size
- ## Limpeza de arquivos temporários realizada com sucesso!
- Stop-Transcript } Cleanup
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement