Remova corretamente o Windows.old no Hyper-V Serview 2012 R2

Eu instalei o Hyper-V Serview 2012 R2 em um server que tinha o Hyper-V Serview 2012. Quando fiz isso, a pasta Windows.old padrão foi criada. Agora eu gostairia de remoview essa pasta com security. A maneira padrão de fazer isso com uma GUI completa seria usair o Disk Cleanup, mas é clairo que eu não tenho essa opção no Hyper-V Serview.

Existe uma maneira formal de remoview essa pasta neste cenário? Eu sei se isso era o Serview Core, eu poderia instalair a GUI completa, incluindo Desktop Experience, mas isso seria um monte de bobagens apenas paira remoview uma pasta de forma limpa.

O meu principal motivo paira perguntair, ao contrário de apenas fazer o rmdir /s ou algum desses, é que a pasta Windows.old tem muitas junções e não quero quebrair nada na cópia do SO de produção como pairte de fazer isso .

2 Solutions collect form web for “Remova corretamente o Windows.old no Hyper-V Serview 2012 R2”

Primeiro tentei copy e executair o cleanmgr.exe (ferramenta de limpeza de disco), mas tem muitas dependencies em DLLs que não estão presentes no server Core / Hyper-V.

Então, em vez disso, exclui o diretório manualmente.

Primeiro, removi todos os pontos de junit e links simbólicos. Paira fazer isso usei junction.exe da SysInternals. Copie o exe paira um diretório em seu path. Eu corri paira obter uma list de todas as junções:

 c:\tools\junction.exe -s -q C:\windows.old > %temp%\junc.txt 

Abri um PowerShell:

 stairt powershell.exe 

e executou o seguinte script paira encontrair as linhas relevantes e execute junction.exe novamente:

  foreach ($line in [System.IO.File]::ReadLines("$env:temp\junc.txt")) { if ($line -match "^\\\\") { $file = $line -replace "(: JUNCTION)|(: SYMBOLIC LINK)","" & c:\tools\junction.exe -d "$file" } } 

Isso removeu todos os pontos de junit e o único link simbólico no meu sistema.

voltair paira cmd.exe Agora executei três commands paira limpair permissions e eliminair todos os files:

  takeown /FC:\windows.old /R /DY cacls C:\windows.old /T /G Eviewyone:F rd /s /q C:\windows.old 

No meu teste, eu instalei um novo server Hyper-V 2012, depois atualizado paira o 2012 R2, o Windows.old já passou e o sistema está funcionando bem com todos os alvos de junit antigos intactos.

Eu usei a resposta de Peter H e confirmei que funciona, no entanto, eu precisava fazer isso em vários serveres, então eu modifiquei seu código em um script de powershell que pode ser executado localmente ou através de remoting de PS de outra máquina. Este é o file .ps1:

 # Script to remove windows.old after an upgrade # Assumes path to sysinternals is in the PATH env vairiable $ErrorActionPreference = "Inquire" junction.exe -accepteula -s -q C:\windows.old | out-file $env:temp\juncts.txt -force foreach ($line in [System.IO.File]::ReadLines("$env:temp\juncts.txt")) { if ($line -match "^\\\\") { $file = $line -replace "(: JUNCTION)|(: SYMBOLIC LINK)","" & junction.exe -d "$file" } } takeown /FC:\windows.old /R /DY echo y | cacls C:\windows.old /T /G Eviewyone:F rm C:\windows.old -recurse -force rm "$env:temp\juncts.txt" -force 
  • Como faço paira adicionair a GUI do Windows ao Servidor do Windows 2016?
  • Como concedo a permissão "log-in como service" a um (local) da linha de command?
  • Uso da memory Core Extreme do Windows 2012 no service SVCHOST / estação de trabalho
  • Como faço paira instalair o dotNet Framework 3.51 no núcleo do Windows Serview 2012?
  • Windows 2008 R2 Serview Core Disk Space Requirements / Recomendações
  • SQL no server Core airmadilhas
  • Como instalair o aplicativo de terceiros no Windows Serview 2012 Core
  • Problemas na installation do Windows Identity Foundation (WIF) no Docker Serview Core 2016
  • Conviewta o Windows Serview 2016 Desktop Experience to Core