Eu uso o DISM para personalizar e atualizar imagens que implanto em nossos computadores. Eu faço isso em uma unidade externa porque é muito pesado em E/S. Há algum tempo, parece que deixei a imagem montada na minha unidade F como F:\WIN81MOUNT. Os arquivos estão lá. A execução, dism /get-mountedwiminfo
entretanto, mostra que não há WIMs montados. Como tal, não tenho ideia de como excluir o WIN81MOUNT, pois não consigo remontar, desmontar ou apenas excluir a pasta (os arquivos têm permissões de coisas como SYSTEM, como estão na imagem do Windows).
Como posso forçar a desmontagem ou remontagem deste WIM? Eu tentei todas as opções padrão, como unmount-wim, cleanup-image, remount-wim... nenhuma delas funciona, dizendo que a solicitação não é suportada. O log indica "Este não é um ponto de montagem WIM".
Responder1
As informações a seguir são de "http://trueliarx.blogspot.co.uk/2014/07/force-unmount-and-clean-up-of-wim-image.html"
Forçar a desmontagem e limpeza de uma imagem Wim usando DISM
Quando você usa RT7 (+ AIK) às vezes ocorre um erro informando que há um wim montado (ex.
boot.wim
).Para resolver o problema você deve executar, como administrador, o comando:
dism /cleanup-wim
Se não funcionar, encontrei outra solução editando o registro e excluindo todas as entradas (necessárias) em:
HKLM\SOFTWARE\Microsoft\WIMMount\mounted images\
Deve funcionar desde que você seja um administrador.
O procedimento normal, que você já usou (?) é mostrado abaixo:
As informações podem ser encontradas no arquivo de log em:
C:\Windows\Logs\DISM\dism.log
No caso de ferramentas de manutenção de 64 bits executadas anteriormente em Windows de 64 bits;
Em um problema de prompt de comando elevado;
cd C:\Program Files\Windows AIK\Tools\amd64\Servicing
No mesmo problema de prompt de comando elevado;
dism /?
Algumas informações úteis podem ser exibidas.
No mesmo problema de prompt de comando elevado;
dism /Get-MountedWimInfo
Informações sobre imagens montadas podem ser exibidas.
Se houver algum Dirs montado, que precise ser desmontado, para cada problema de Dir;
dism /Unmount-Wim /Mountdir:C:\examplepath /commit
Depois que isso for concluído, os arquivos wim relacionados, encontrados com Get-MountedWimInfo
, podem ser excluídos usando o Windows Explorer.
Responder2
Nenhuma das opções acima funcionou para mim, pois parecia que não havia nada para limpar na parte dism, apenas as permissões na pasta.
Finalmente encontrei algo funcionando (se as soluções de registro e dism listadas acima não funcionarem):
Primeiro você deve alterar a permissão do proprietário da pasta de montagem "danificada":
Clique com o botão direito na pasta -> Propriedades -> guia Segurança -> botão Avançado -> guia Proprietário -> botão Editar -> Selecione sua conta de usuário -> Ativar Substituir proprietário em subcontêineres e objetos.
Quando terminar, feche todas as janelas de propriedades e abra Propriedades novamente -> guia Segurança -> botão Avançado -> guia Permissões -> botão Alterar Permissões -> Adicione sua conta de usuário e selecione Substituir todos os objetos filhos...
Em seguida, abra o prompt de comando com privilégios de administrador ( https://technet.microsoft.com/fi-fi/library/cc947813%28v=ws.10%29.aspx )
Digite o seguinte e pressione Enter:
DISM /Cleanup-Wim Agora você deve ser capaz de excluir todos os arquivos/pastas restantes.
Responder3
Como último recurso:
- Abra o registro e vá na chave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WIMMount\Mounted Images.
- Lá, você deverá encontrar uma ou mais subchaves com nomes estranhos, como [e86b54b7-dc5f-4c15-8eb5-9b615bc3b154]
- Abra a primeira dessas pastas e descubra se ela corresponde à imagem montada que parece corrompida; use os valores [Mount Path], [WIM Path] e [Image Index] para descobrir. Depois de encontrar a subchave correta mencionada no ponto 2 acima, exclua-a.
- Exclua e recrie a pasta Mount.
Responder4
Faça um loop e desmonte qualquer Wim restante com o PowerShell.
$subKeyMatch = "Mount Path"
$orphMountedWims = @()
$regMounted = "REGISTRY::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WIMMount\mounted images"
$mountedKey = [array](Get-ChildItem "$($regMounted)\" -Recurse -Depth 0)
foreach ($key in $mountedKey) {
$keyProps = ((Get-Item -path "REGISTRY::$key").property)
foreach ($subKey in $keyProps) {
if ($subKey -like "$($subKeyMatch)") {
$regSubPropValue = Get-ItemProperty -path "REGISTRY::$Key" | Select-Object -ExpandProperty $subKey
$orphMountedWims += $regSubPropValue
}
}
}
if (($orphMountedWims | Measure-Object).Count -ge 1) {
Write-Warning "Orphaned WIM(s) have been found."
foreach ($oMWim in $orphMountedWims) {
try {
Write-Output "Attempting to dismount and discard changes for Orphaned [Path: $($oMWim)]"
Dismount-WindowsImage -Path "$($oMWim)"-Discard
Write-Output "Success discarding changes."
}
catch [System.exception] {
Write-Error "Error - Failed to dismount and dicard changed from Orphaned wim [Mount Path: $($oMWim)]. Error: $($_.exception.message)"
continue
}
}
}
else {
Write-output "No Orphaned WIM files found, module clear to run."
}