Назад | Перейти на главную страницу

Удаленный перезапуск в безопасном режиме? (окна)

Я знаю, что вы можете удаленно выключить Windows-машину с помощью командной строки "shutdown". Но я думаю, что невозможно удаленно перевести машину в безопасный режим (с сетью). Кто-нибудь знает, как это сделать?

Если у вас есть права администратора на удаленном компьютере, это возможно.

Вам необходимо отредактировать файл boot.ini (обычно находится в корне диска C:)

Откройте командную строку на вашем локальном компьютере

тип:

EDIT \\MACHINENAME\C$\BOOT.INI

Откроется загрузочный ini-файл, который обычно выглядит примерно так:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional"  
/noexecute=optin /fastdetect

В конце последней строки нужно добавить

/safeboot:network

последняя строка будет выглядеть примерно так

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional"  
/noexecute=optin /fastdetect /safeboot:network

Сохраните изменения, а затем принудительно перезагрузитесь из командной строки, и он должен перезапуститься в безопасном режиме с сетью. Не забудьте вернуть файл boot.ini, когда закончите!

Чтобы перезагрузить Windows 7 в безопасном режиме с подключением к сети, запустите msconfig.exe. На вкладке «Загрузка» вы можете выбрать «Безопасная загрузка» и установить флажок для сети.

Я не уверен, что удаленный рабочий стол будет работать в безопасном режиме. Использую TightVNC. Чтобы служба TightVNC запускалась в безопасном режиме, скопируйте ее запись в реестр в safeboot \ network:

REG COPY HKLM\system\CurrentControlSet\services\tvnserver HKLM\system\CurrentControlSet\control\safeboot\network\tvnserver /s /f

Другие службы VNC, вероятно, можно активировать таким же образом.

Вряд ли для рабочей станции. Вам нужно что-то, что дает вам контроль над самой машиной, чтобы сообщить Windows, как загружаться.

С серверным оборудованием вам повезет больше, поскольку многие поставщики встраивают возможность удаленного подключения к консоли.

Если у вас есть возможность интерактивно подключиться к Windows на машине, вы можете использовать MSCONFIG, чтобы установить переключатель / SAFEBOOT в boot.ini, а затем перезагрузить машину. Сделайте Пуск -> Выполнить и введите MSCONFIG, затем на вкладке boot.ini отметьте / SAFEBOOT в разделе «Параметры загрузки» и выберите безопасный режим, в который вы хотите загрузиться (в данном случае СЕТЬ).

LogMeIn имеет возможность перезагрузки в безопасном режиме.

Именно для этого и предназначена встроенная функция отключения света HP. Редактирование файла boot.ini не очень поможет, поскольку вы не сможете войти в систему, так как служба RDP не будет работать. В случае, если это сервер HP, вы можете напрямую подключиться к его консоли через портал https, а также получить доступ к виртуальной «кнопке питания».

Этот ответ выше о редактировании boot.ini хорош и все такое - ЗА ИСКЛЮЧЕНИЕМ .... вы не можете изменить файл boot.ini ... если вы будете следовать указаниям «Марка» шаг за шагом - вы попадете в кирпичную стену потому что boot.ini доступен только для чтения.

РЕДАКТИРОВАТЬ: И да .... Я тестировал его, войдя в систему как администратор.

Если вы поспешно решили изменить BOOT.ini для перезапуска в безопасном режиме с сетью, а затем перезапуска, вы обнаружите, что вообще не можете удаленно войти в систему. Вы, вероятно, сможете просмотреть загрузочный файл \\machinename\C$\boot.ini, но не сможет изменить его, потому что он доступен только для чтения. Вы также не сможете "щелкнуть правой кнопкой мыши и снять флажок" только для чтения ", потому что вы не сможете перейти к C$ каталог вообще. Теперь мне нужно физически войти на эту виртуальную рабочую станцию, чтобы изменить boot.ini назад. Я больше никогда не совершу эту ошибку!

Что случилось с файлом boot.ini?

Windows 7 Подробнее

В более ранних версиях Windows boot.ini был системным файлом, который содержал информацию об операционных системах Windows, установленных на компьютере. Эта информация отображалась в процессе запуска, когда вы включали компьютер. Это было наиболее полезно в конфигурациях с несколькими загрузками, а также для опытных пользователей или администраторов, которым нужно было настроить запуск Windows.

В этой версии Windows файл boot.ini был заменен данными конфигурации загрузки (BCD). Этот файл более универсален, чем boot.ini, и его можно применять к компьютерным платформам, которые используют для запуска компьютера средства, отличные от базовой системы ввода / вывода (BIOS).

Если вам нужно внести изменения в BCD, например удалить записи из списка отображаемых операционных систем, используйте инструмент командной строки Bcdedit, расширенный инструмент, предназначенный для администраторов и ИТ-специалистов. Для получения технической информации о Bcdedit посетите веб-сайт Microsoft для ИТ-специалистов.

Если ваш компьютер имеет мультизагрузочную конфигурацию, вы все равно можете изменить, какая операционная система Windows будет открываться по умолчанию и как долго будет отображаться список операционных систем, используя «Система» на панели управления.

  1. Откройте систему, нажав кнопку «Пуск» Изображение кнопки «Пуск», щелкнув правой кнопкой мыши «Компьютер» и выбрав «Свойства».

2. На левой панели щелкните Дополнительные параметры системы. Требуется разрешение администратора. Если вам будет предложено ввести пароль администратора или подтверждение, введите пароль или предоставьте подтверждение.

3. Щелкните вкладку «Дополнительно», а затем в разделе «Запуск и восстановление» щелкните «Параметры».

4. В разделе «Запуск системы» выберите операционную систему по умолчанию и время отображения списка операционных систем, нажмите «ОК», а затем снова нажмите «ОК».

http://windows.microsoft.com/en-ca/windows/what-happened-boot-ini-file#1TC=windows-7

Если вы совершите эту ошибку, вы, вероятно, сможете перейти к файлу boot.ini через проводник, поэтому \ hostname \ C $ \ boot.ini, и есть вероятность, что вы также сможете удалить "/ safeboot : network "и сохраните.

Если вы можете сохранить изменения в файле boot.ini, запустите командную строку от имени администратора и попробуйте выполнить эту команду для перезагрузки: shutdown / r / m \ hostname / t 00

Надеюсь, с этим вы вернетесь в бизнес!

Не ответ на вопрос, но, надеюсь, полезно для всех, кто сталкивается с проблемами при попытке этого. Я обнаружил, что, несмотря на перезагрузку в безопасном режиме с сетью, различные службы, включая Remote Desktop Services и Server (т.е. предоставление доступа SMB к boot.ini) не удалось запустить, выдав код ошибки 1084 при запуске через MMC> Services.

В приведенной ниже оболочке PowerShell используется WMI (который, похоже, все еще работает), чтобы вывести удаленный компьютер из безопасного режима и перезапустить его.

Function Repair-RemoteSafeModeBoot {
    [CmdletBinding()]
    Param (
        [Parameter(Mandatory = $true)]
        [string]$ComputerName
    )
    if (-not (Test-Connection -ComputerName $ComputerName -Quiet -Count 1 -ErrorAction 'Stop')) {
        throw "Could not ping $ComputerName; no attempt made to fix it"
    }
    $os = Get-WmiObject -ComputerName $ComputerName -Class 'Win32_OperatingSystem' -ErrorAction 'Stop'
    Write-Verbose "Computer $ComputerName last rebooted at $($os.ConvertToDateTime($os.LastBootUpTime))"
    $cs = Get-WmiObject -ComputerName $ComputerName -Class 'Win32_ComputerSystem' -ErrorAction 'Stop'
    Write-Verbose "Computer $ComputerName bootup state is $($cs.BootupState)"
    if ($cs.BootupState -eq 'Normal boot') {
        Write-Warning "$ComputerName is not in safe mode; no attempt to fix it was made"
        return # we don't want to proceed if the remote device is already in normal mode as we may do more harm than good (unlikely to have any impact tbh; but why risk it)
    }
    if ($cs.BootupState -ne 'Fail-safe with network boot') {
        Write-Warning "$ComputerName has boot up state $($cs.BooupState).  I've never tested with these states, so can't say what will happen.  Please read up on this & if acceptable to proceed amend this script to enable it for your scenario."
        return # probably safe to remove this & continue; but I don't want to be responsible for that decision... Comment this statement out at your own risk
    }

    # run a command on the remote computer to take it out of safe mode: https://superuser.com/a/706664/156700
    $rv = Invoke-WmiMethod –ComputerName $ComputerName -Class 'win32_process' -Name 'create' -ArgumentList 'bcdedit /deletevalue {default} safeboot' -ErrorAction 'Stop' | Select-Object -ExpandProperty ReturnValue
    if ($rv -ne 0) {
        throw "Attempted to run bcdedit, but received return value $rv implying that the command was unsuccessful"
    }
    Start-Sleep -Seconds 5 # probably not required; but added to be safe.  It's not like 5 seconds is much to ask if you're in this scenario.

    #restart the remote computer
    $rv = $os.Reboot() | Select-Object -ExpandProperty ReturnValue
    if ($rv -ne 0) {
        throw "Attempted to reboot the remote device, but received return value $rv, implying that the command was unsuccessful"
    }

    Write-Information "$ComputerName updated to normal mode & restarted.  Wait a few minutes whilst the reboot occurs then try to log in.  If you still have issues try rerunning this command with the -Verbose flag enabled to check whether the boot time or mode have changed."   
}

Repair-RemoteSafeModeBoot -ComputerName 'MyServer' -Verbose # where MyServer is the name of the remote server in safe mode

Примечание: вы можете просто запустить 3 строки ниже; приведенная выше функция просто служит удобной оболочкой. Я не тестировал приведенный выше командлет; хотя я использовал этот метод без оболочки, поэтому могу сказать, что все отдельные части работают.

$ComputerName = 'MyServer'
Invoke-WmiMethod –ComputerName $ComputerName -Class 'win32_process' -Name 'create' -ArgumentList 'bcdedit /deletevalue {default} safeboot'
(Get-WmiObject -ComputerName $ComputerName -Class 'Win32_OperatingSystem').Reboot()

Примечание. Я пробовал это только на Windows Server 2008 R2. YMMV.