Добавить сценарий выхода из системы для автономной рабочей станции?

У меня есть 6 версий Windows на виртуальных машинах для тестирования программного обеспечения. Виртуальные машины Windows являются автономными и не являются частью домена. Они охватывают Windows XP до Windows 10. Тестируемое программное обеспечение создает от 1,75 ГБ до 2 ГБ выходных артефактов во время тестирования (объектные файлы, файлы баз данных программ, библиотеки и исполняемые файлы).

Я хочу выполнить сценарий выхода из системы, который очищает артефакты. Сценарий довольно прост, так как он должен удалить только 3 папки в определенном каталоге, если его существует. У меня уже есть сценарий.

Я нашел КБ, как Назначить Сценарии Выключения Компьютера и MSDN обсуждения, как запуск сценариев выхода из системы синхронно-Standalone Workstation, но они предполагают, что компьютер Windows является рабочей станцией-членом и частью домена.

Как добавить сценарий выхода к Standalone/не являющихся членами рабочей станции для очистки артефактов сборки во время выхода?

5
задан jww
источник

3 ответов

в зависимости от того, что на самом деле происходит в системе после того как вы сделали тестирование по умолчанию Планировщик Задач Windows. Если пользователь регистрирует выкл далее. Если у вас есть конкретный пользователь, вы даже можете сопоставить его с ним, и, разработав свой скрипт, вы, вероятно, сможете обнаружить выход из системы. В качестве альтернативы вы можете написать пользовательское событие в журнал событий и следить за ним. Я не уверен, что On disconnect from user session вызовет локальный выход из системы.

в противном случае предложение Большого Криса/комментарий к вашему вопросу о том, что вы можете использовать локальные групповые политики, будет применимо. Вы можете столкнуться с проблемами с этим в Windows XP как XP не сильно отличается, но это, наверное, для каждого решения.

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

1
отвечен Seth 2016-10-10 06:36:29
источник

протестировано на Win 7 HP 32,64-Win 7 Ent 32,64

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

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2016-08-17T08:16:28.8123508</Date>
   ! <Author>DOMAIN\USER</Author>
   ! <Description>Your description</Description>
  </RegistrationInfo>
  <Triggers>
    <LogonTrigger>
      <Enabled>true</Enabled>
    </LogonTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
   !   <UserId>S-1-5-18</UserId> -> This is SYSTEM user ID
      <RunLevel>HighestAvailable</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>StopExisting</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
    <UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>P3D</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
    !  <Command>C:\cleanup.bat</Command> This is where your script resides
    </Exec>
  </Actions>
</Task>
1
отвечен dExIT 2016-10-10 07:51:35
источник

использовать локальную групповую политику для назначения сценариев входа.

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

0
отвечен Kinnectus 2016-10-10 05:10:52
источник

Другие вопросы logoff script windows