Powershell Bat备份脚本

Powershell Bat备份脚本,powershell,batch-file,Powershell,Batch File,我试图做的是将用户配置文件从本地工作站备份到我们的备份服务器,并在备份完成后向我发送电子邮件。我现在有两个不同的脚本。如果我们能在一个脚本中实现这一点,那就太好了。如果我需要两个脚本,这不会是一个问题 第一个脚本是备份,它工作得很好 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\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分钟自动打开,以防用户关闭其计算机。

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

每台计算机的步骤:

  • 获取当前登录用户的登录名(是我当前使用的方法)
  • 获取此用户的SID-比如说
    $userSID
    (描述了一种方法)
  • 在远程计算机上浏览此注册表项
    HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\$userSID
    ,并读取值
    ProfileImagePath
    ,它保存此计算机上此用户的本地配置文件路径(远程注册表访问)
  • 将本地路径转换为网络路径(
    C:\Users\…
    ->
    \\computerName\C$\Users
  • 打电话给robocopy,喝点咖啡(从loop中取出咖啡)
  • 可以简单地选择
    \\computer\c$\Users\$userLogin
    ,但正如OP的示例所示,Windows有时会以一种不可预测的方式将您的域名附加到本地配置文件文件夹名称中的用户名

    (远程注册表服务必须在远程计算机上运行)


    如果工作站被关闭,然后被唤醒,你会发现我的目标是
    C:\Users

    中最后一个修改过的文件夹嗨,我想你应该把这个问题分成两个独立的问题。在附件中,包括实际失败的代码。关于另一个,请定义应该使用哪个用户的配置文件(当前登录?上次登录?)@sodawillow根据建议分成两个不同的帖子。我们所有的员工在一天结束时都会保持登录状态。10分钟后,计算机将锁定并强制他们重新登录。我想我需要的是当前登录的。一旦我在所有工作站上启用了远程注册表服务,脚本就可以正常工作了。当您在第4步中提到从本地路径更改为网络时,我仔细研究了一下,发现我可以将脚本整合下来。因此,我将不再在每台计算机上运行一个脚本,而是在一台计算机上运行一个脚本。再次感谢@sodawillow。我比以往更快地完成了这个项目。:)