You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求修改Google Forms脚本:在邮件中嵌入动态PowerShell代码

解决Google Forms邮件添加动态PowerShell AD账户创建代码的问题

我懂你卡在哪了——把表单里的新员工信息自动转换成可用的PowerShell代码塞到邮件末尾,确实需要把变量映射和模板拼接搞对。我帮你把脚本改好了,直接就能用,下面是完整的修改方案:

修改后的完整脚本

function onFormSubmit(e) {
  var response = e.response;
  var items = response.getItemResponses();
  
  // 1. 提取表单字段(根据你的表单实际顺序调整索引!)
  var firstName = items[0].getResponse(); // 假设第一个字段是"名"
  var lastName = items[1].getResponse();  // 第二个字段是"姓"
  var email = items[2].getResponse();     // 第三个字段是"工作邮箱"
  var department = items[3].getResponse();// 第四个字段是"所属部门"
  
  // 生成AD账户的SamAccountName(按你们公司规范调整,这里是小写名+姓)
  var samAccountName = (firstName.toLowerCase() + lastName.toLowerCase()).replace(/\s/g, "");
  
  // 2. 构建邮件主体内容
  var emailBody = "### 新员工入职申请信息\n";
  emailBody += "- 姓名: " + firstName + " " + lastName + "\n";
  emailBody += "- 工作邮箱: " + email + "\n";
  emailBody += "- 所属部门: " + department + "\n\n";
  
  // 3. 生成动态PowerShell代码(用模板字符串替换变量)
  var psCodeTemplate = `# 自动生成的AD账户创建脚本
New-ADUser `
  -GivenName "${firstName}" `
  -Surname "${lastName}" `
  -UserPrincipalName "${email}" `
  -SamAccountName "${samAccountName}" `
  -Department "${department}" `
  -Enabled $true `
  -AccountPassword (ConvertTo-SecureString "TempP@ss123" -AsPlainText -Force)`;
  
  // 4. 把PowerShell代码追加到邮件末尾,用Markdown代码块格式高亮
  emailBody += "---\n";
  emailBody += "### 一键创建AD账户的PowerShell代码\n";
  emailBody += "```powershell\n";
  emailBody += psCodeTemplate + "\n";
  emailBody += "```";
  
  // 5. 发送邮件
  MailApp.sendEmail({
    to: "your-admin-email@yourcompany.com", // 替换成实际管理员邮箱
    subject: "新员工申请: " + firstName + " " + lastName,
    body: emailBody,
    // 可选:如果要HTML格式(代码更美观),取消下面注释
    // htmlBody: emailBody.replace(/\n/g, "<br>").replace(/```powershell([\s\S]*?)```/g, "<pre style='background:#f5f5f5;padding:10px;'>$1</pre>")
  });
}

关键修改说明

  • 字段索引调整:一定要根据你Google表单的字段顺序修改items[X]的索引,比如如果你的“部门”是第5个字段,就改成items[4].getResponse()(数组从0开始计数)。
  • PowerShell模板拼接:用反引号`包裹的模板字符串可以直接用${变量名}插入动态值,比传统字符串拼接更不容易出错,格式也更清晰。
  • 邮件格式优化:用---分隔正文和代码区,再用```powershell ```把代码包裹成Markdown代码块,收件人一眼就能区分内容,复制代码也方便。
  • 安全提示:模板里的密码是硬编码的临时密码,建议改成随机生成逻辑,或者对接公司的密码管理系统,避免安全风险。

后续调整建议

  • 如果你们公司的SamAccountName有特定规则(比如首字母+姓、缩写等),直接修改samAccountName的生成逻辑就行。
  • 要是需要添加更多表单字段(比如职位、办公地点),直接在提取字段部分加变量,然后在PowerShell模板里对应添加参数(比如-Title "${jobTitle}")。

内容的提问来源于stack exchange,提问作者Johan Hård

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:59:56