Запустите скрипт запуска от имени другого пользователя Windows в Google Compute Engine - PullRequest
0 голосов
/ 04 марта 2020

Мне нужно запустить скрипт запуска от имени администратора с Windows. В настоящее время у меня есть это:

vm.create({
  ...config,
  metadata: {
    items: [
      {
        key: "windows-startup-script-cmd",
        value: "cd /Users/admin/Documents && whoami >> log.txt",
      },
    ],
  },
});

Это создает файл log.txt с текущим пользователем, nt authority\system, а не с пользователем по умолчанию, который вы настроили в экземплярах Google Compute.

Имеет Кто-нибудь использовал Windows в Google Compute Engine, чтобы успешно запустить скрипт запуска от имени другого пользователя?

Ответы [ 2 ]

0 голосов
/ 07 марта 2020

Ознакомьтесь с документацией Google [1], в которой рассказывается, как предоставить сценарий запуска, хранящийся в облачном хранилище, новому экземпляру или применить сценарий запуска к запущенным экземплярам.

Для этого вы можете создать .ps1 файл и хранить его в облачном хранилище. Затем вызовите его из следующей команды gcloud:

gcloud compute экземпляры создают пример- windows -instance --scopes storage-ro \ --metadata windows -startup-script-url = gs: // bucket /startupscript.ps1

Примечание. Во избежание несоответствия && в Powershell измените сценарий запуска на: cd / Users / admin / Documents; whoami >> log.txt

[1] https://cloud.google.com/compute/docs/startupscript#providing_a_startup_script

0 голосов
/ 04 марта 2020

Учетная запись nt authority\system - это встроенная системная учетная запись, которая входит в группу администраторов. Эта учетная запись не является пользователем. Экземпляры Google Compute Engine запускают сценарии запуска от имени этой учетной записи.

Ваш вопрос не ясен, что вы подразумеваете под учетной записью Administrator. Этот термин часто используется для обозначения а) учетной записи пользователя с именем «Администратор» и б) учетной записи с повышенными правами доступа.

Учетная запись запускаемой системы является администратором, но она не является учетной записью пользователя с именем «Администратор». Это разные понятия. Я не рекомендую запускать сценарии, которые требуют доступа к пользователю с именем «Администратор». Вместо этого разработайте сценарии запуска для выполнения задач, необходимых для системной учетной записи.

Обратите внимание, что учетные записи администраторов могут иметь любое имя. Использование Administrator является условным. Сценарии запуска не входят в систему как пользователи, поэтому ваша цель запустить сценарий запуска от имени вошедшего в систему пользователя (который не вошел в данный момент) невозможна. Вы должны знать имя пользователя заранее, имя пользователя должно иметь пароль и должно быть включено. Ничего из этого не существует при первом запуске нового экземпляра.

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

Windows Schtasks.exe

...