首页 > 解决方案 > 在 Google Compute Engine 上以另一个 Windows 用户身份运行启动脚本

问题描述

我需要在 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 实例中设置的默认用户。

有没有人在 Google Compute Engine 上使用过 Windows 并以其他用户身份成功运行启动脚本?

标签: javascriptwindowscmdgoogle-cloud-platformgoogle-compute-engine

解决方案


该帐户nt authority\system是属于管理员组的内置系统帐户。此帐户不是用户。Google Compute Engine 实例以此帐户运行启动脚本。

您的问题不清楚您所说的Administrator帐户是什么意思。该术语通常用于表示 a) 名为 Administrator 的用户帐户和 b) 具有提升权限的帐户。

启动系统帐户是管理员,但它不是名为管理员的用户帐户。这些是不同的概念。我不建议您运行需要访问名为 Administrator 的用户的脚本。相反,设计您的启动脚本来执行作为系统帐户的一部分所需的任务。

请注意,管理员帐户可以具有任何名称。的用法Administrator只是一个约定。启动脚本未作为用户登录,因此您无法以登录用户(当时未登录)运行启动脚本的目标。您必须事先知道用户名,用户名必须有密码并且必须启用。在新实例的第一次启动时这些都不存在。

schtasks您可以使用启动脚本中的命令安排任务以任何用户名运行。用户帐户必须已启用并具有密码。

Windows Schtasks.exe


推荐阅读