Как Уменьшить крупный Hyper-V VM

$computername = Get-Content H:\computers\Computers.txt;
$password = type H:\Powershell\MyPassword.txt | ConvertTo-SecureString
$cred = New-Object -TypeName System.Management.Automation.PSCredential -argumentlist “domain\user”,$password
$filename = "{0:yyyy-MM-dd} start" -f (Get-Date) 
$tid = Get-Date -f HH:mm:ss



function StartIfStopped([string]$ServiceName) {
    $Service = Get-WmiObject Win32_Service -computername $computername -cred $cred -Filter "name='$ServiceName'"
    if (!$Service) {
        # Service is not installed
        Write-Host "$ServiceName is not installed on $computername."
    } else {
        # Service is installed
        if ($Service.State -eq "Stopped") {
            if ($Service.StartMode -eq "Disabled") {
                Write-Host "Cannot start service $ServiceName as it is disabled." 
            } else {
                #Write-Host "Starting service $ServiceName ..." 
                Write-Output "$tid Starting $ServiceName ." >> H:\logfiler\$filename.txt

                #virker kun lokalt på servere       
                #Start-Service $ServiceName

                #virker på remote servere også i andre domainer 
                (Get-WmiObject Win32_Service -filter "name='$ServiceName'" -computername $computername -cred $cred ).StartService()

            }           
        }  else {
            #Write-Host "$ServiceName is already running."
            Write-Output "$tid already running $ServiceName." >> H:\logfiler\$filename.txt
        }
    }
}

StartIfStopped 'BTSSvc$BizTalkServerApplication'
StartIfStopped 'BTSSvc$TASMSMQHost'
StartIfStopped 'BTSSvc$TASProcessingHost'
StartIfStopped 'BTSSvc$TASSendHost'
StartIfStopped 'BTSSvc$TASTrackingHost'
StartIfStopped 'BRNTService'
StartIfStopped 'TimerService'
StartIfStopped 'BouncedMailTracker'
StartIfStopped 'CMToolService'
StartIfStopped 'CalculationExcelService'
StartIfStopped 'ControlNTService'
StartIfStopped 'EnvelopeService'
StartIfStopped 'PrinterService'

Обновление на сценарии, я получил его работа, но теперь мне нужен он, чтобы войти в систему несколько серверов и запустить сервисы.

2
задан 22 September 2012 в 13:05
4 ответа

Вам действительно нужен диск на 190 ГБ? Если вы запускаете 2008 R2 в гостевой системе, сожмите свой раздел внутри гостевой системы, а затем сожмите его. Это позволит достичь наилучших результатов.

  1. Дефрагментация диска.
  2. Откройте Управление дисками и уменьшите размер раздела до более разумного размера, например, 40 ГБ. Убедитесь, что все свободное пространство находится в конце диска.
  3. Выключите гостевую систему.
  4. Сожмите VHD.
1
ответ дан 3 December 2019 в 10:10

Да, всегда большая проблема в Hyper-V. Я могу только сказать вам, что я делаю, хотя могу только думать (надеяться), что должно быть лучшее решение.

1) Захватите полный размер диска

2) Создайте новый пустой VHD нужного мне размера диск, который должен быть.

3) На хосте используйте Symantec ghost для копирования с диска на диск от большого к новому. Это только копирует данные.

4) Удалите большой VHD

Надеюсь, что это поможет. Я знаю, что не идеально.

1
ответ дан 3 December 2019 в 10:10

Удалите все снимки VSS на вашем VHD , если они есть. Затем попробуйте еще раз "компактный" шаг.

1
ответ дан 3 December 2019 в 10:10

Пробовали ли вы запустить precompact.exe или аналогичный инструмент (проще всего, смонтировав файл ISO) сначала на гостевой системе, чтобы обнулить освобожденное пространство? Затем запустите процесс сжатия VHD после этого.

См. Сжатие / сжатие расширяемого / динамического VHD для полного восстановления пространства

1
ответ дан 3 December 2019 в 10:10

Теги

Похожие вопросы