gpt4 book ai didi

powershell - bat 备份脚本

转载 作者:行者123 更新时间:2023-12-02 23:57:23 24 4
gpt4 key购买 nike

我要做的是将用户个人资料从其本地工作站备份到我们的备份服务器,并在完成后向我发送电子邮件。我目前有两个不同的脚本。如果我们可以在一个脚本中做到这一点,那就太好了。如果我需要两个脚本,那将不是问题。

第一个脚本是备份,它一直运行良好。

robocopy C:\Users\TravisWhiteman.ArchwaySys\AppData \\10.1.10.6\WorkstationBackup\Test\AppData /mir /W:3 /R:1 /log:CopylogAppData.txt
robocopy C:\Users\TravisWhiteman.ArchwaySys\Desktop \\10.1.10.6\WorkstationBackup\Test\Desktop /mir /W:3 /R:1 /log:CopylogDesktop.txt
robocopy C:\Users\TravisWhiteman.ArchwaySys\Documents \\10.1.10.6\WorkstationBackup\Test\Documents /mir /W:3 /R:1 /log:CopylogDocuments.txt
robocopy C:\Users\TravisWhiteman.ArchwaySys\Downloads \\10.1.10.6\WorkstationBackup\Test\Downloads /mir /W:3 /R:1 /log:CopylogDownloads.txt

现在,我想添加一些功能,但我不知道该怎么做。我想将其从手动设置用户配置文件目录更改为系统自动找出用户身份。我认为它类似于%USERNAME%。目标是让系统确定用户的位置,因此我不必为每个工作站都更改C:\ Users \ TravisWhiteman.ArchwaySys。万一用户要关闭计算机,我们的所有工作站都将在预定任务备份前10分钟自动打开。

最佳答案

基本上,您需要的是用于远程计算机列表的当前登录用户的配置文件路径。

每台计算机的步骤:

  • 获取当前登录的用户的登录名(here是我当前使用的方法)
  • 获取此用户的SID-假设$userSID(方法描述为here)
  • 在远程计算机上浏览此注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$userSID,并读取值ProfileImagePath,它保存此用户在此计算机上的本地配置文件路径(远程注册表访问的example)
  • 将本地路径转换为网络路径(C:\Users\...-> \\computerName\c$\Users)
  • 调用robocopy并获取一些咖啡(从循环中删除咖啡)

  • 可以简单地输入 \\computer\c$\Users\$userLogin,但是正如OP的示例所示,Windows有时会以一种不可预知的方式将您的域名添加到本地配置文件文件夹名称中的用户名中。

    ( Remote Registry服务必须在远程计算机上运行)

    如果工作站已关闭然后又被唤醒,您将定位到 C:\Users中最后修改的文件夹。

    关于powershell - bat 备份脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41470777/

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