2016-08-09 5 views
0

В настоящее время я работаю над назначением школы, где мне нужно сделать несколько сценариев powershell, чтобы выполнить базовую конфигурацию сервера Windows 2012 r2. Первый сценарий должен выполнить следующие действия:Сценарий возобновления работы Powershell после перезагрузки

имя O Server: WDC о IP-адрес: 192.168.1.45 O подсеть: 255.255.255.0 о Шлюз: 192.168.1.1 уплотнительное DNS: 192.168.1.1
о Administrator пароль: Admin2016 о Primaire DNS-сервер 8.8.8.8 о сервере Secundaire DNS 192.168.1.45 о Содействие в постоянном о ...

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

Я знаю, что могу сделать это, например, разбив сценарий и продолжая вторую часть с помощью runonce в реестре после перезагрузки, но мой учитель клянется, что это возможно сделать в одном файле ps1, и, кроме того, он говорит, что после перезагрузки должно быть возможно автологино, а затем возобновить тот же файл сценария, с которого он остановился до перезагрузки.

Этот сценарий должен быть выполнен на локальной машине, поэтому я не могу использовать рабочие процессы. Я искал значительное количество времени, но не могу найти подходящего решения, чтобы сделать это именно так, как учитель хочет этого.

Надеюсь, кто-то может помочь.

Cheers

+0

Чтобы использовать только один сценарий, передать параметр (isContinuation, например) к сценарию. В сценарии, если isContinuation является ложным, запустите первую часть. Если это правда, запустите вторую часть. –

+0

Эффективный дубликат http://stackoverflow.com/questions/15166839/powershell-reboot-and-continue-script –

ответ

0

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

Что касается частей автозапуска и повторного запуска сценария, то оба разрешимы. Существует решение, использующее параметры реестра для автоматического входа в систему пользователя. Вам нужно будет добавить пароль для этого входа в реестр, так что это может быть проблемой безопасности. И запуск сценария после входа в систему возможен с помощью планировщика задач Windows. В дополнение к использованию фиксированных графиков времени планировщик также поддерживает запущенные задачи после определенных событий. Если вы используете эти события, есть задержка, это может быть до нескольких минут. Если это неприемлемо, вы также можете использовать ссылку на скрипт в папке StartUp учетной записи пользователя, используемой для автоматического входа в систему.

Автолог работает с ключами реестра. Вам нужно несколько ключей в пространстве имен HKLM:

Path: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 
Value Name: AutoAdminLogon 
Value Type: REG_SZ 
Value data: 1 

Path: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 
Value Name: DefaultUserName 
Value Type: REG_SZ 
Value data: <name of the user you want to log on> 

Path: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 
Value Name: DefaultPassword 
Value Type: REG_SZ 
Value data: <password of the user you want to log on> 

и если это пользователь домена

Path: SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 
Value Name: DefaultDomainName 
Value Type: REG_SZ 
Value data: <name of the domain the user belongs to> 
+0

Thx для справки! который решил первую часть моего вопроса. Я уже пробовал часть Winlogon и, похоже, не работает для меня. Мне нужно автологинировать как администратора, поэтому я использовал Администратор Username, но мне все равно нужно ввести мой pw после перезагрузки.Кроме того, реестр не сохраняет изменения после перезагрузки. –

+0

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

+0

@DriesVandenBergh Не знаете, как вы вносите изменения в реестр, но если вы используете 'regedit/s .reg', а затем сразу же перезагружаете, он не всегда сохраняет изменения. Попробуйте 'start/wait regedit/s .reg' или сделать это раньше в скрипте. –