gpt4 book ai didi

windows - 用可变用户 ID 替换 Windows 目录路径中的用户名

转载 作者:可可西里 更新时间:2023-11-01 10:04:03 26 4
gpt4 key购买 nike

我有一个可能由多个用户运行的剧本。该剧本运行由我们的审计部门创建的批处理脚本。我们不允许以任何方式修改脚本。他们的脚本获取有关服务器的各种信息并将其输出到用户“文档”文件夹内的文件夹中。我的目标是创建一个 Ansible 剧本,审计团队中的任何人都可以运行它

  1. 删除旧的审计数据
  2. 运行批处理脚本
  3. 存档文件夹
  4. 下载存档文件夹

我目前创建了以下任务:

---
- name: Remove old audit data
win_file:
path=C:\Users\my-username\Documents\PCI-Audit-Evidence
state=absent

- name: Run audit check
script: ../files/Windows-2008-2012-PCI.cmd

- name: Archive audit folder for download
script: ../files/zipfolder.ps1

- name: Download audit file
fetch:
dest: "audits/{{ inventory_hostname }}/"
src: "C:/Users/my-username/Documents/PCI-Audit-Evidence.zip"
flat: yes

一切正常。我的问题是我已将我的用户名硬编码到第一个和最后一个任务的源字段中。我需要“我的用户名”作为一个变量,该变量会根据运行剧本的人而变化。我试过使用 Windows 环境变量“$env:username”,但这不起作用。我也试过 "{{ ansible_user_id }} 但在查看 Windows 2008 服务器的事实后,ansible 实际上并没有将用户名记录为事实。

我唯一能想到的是添加另一个任务来运行脚本以登录到服务器并运行 whoami 或其他东西,然后将其注册为变量,但这似乎过于复杂。

有更简单的方法吗?

注意:我需要来自远程系统的用户名。

另外,如果本地机器上的文件已经存在,我该如何获取文件并覆盖该文件?

最佳答案

可以使用环境变量USERPROFILE(或者USERNAME来严格回答问题):

- name: Remove old audit data
win_file:
path: "{{ ansible_env.USERPROFILE }}\Documents\PCI-Audit-Evidence"
state: absent

- name: Download audit file
fetch:
dest: "audits/{{ inventory_hostname }}/"
src: "{{ ansible_env.USERPROFILE }}\Documents\PCI-Audit-Evidence.zip"
flat: yes

关于windows - 用可变用户 ID 替换 Windows 目录路径中的用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39713507/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com