1

我们公司正处于服务器过渡阶段。我需要一些帮助来解决我遇到的一些问题。

首先关。或者现有域正在为他们的“我的文档”等使用文件夹重定向。原始设置是在用户主文件夹中完成的。(例如 \server1\users\%username%*.* )

我们正在将所有内容迁移到一个全新的域。使用帐户是从头开始创建的,而不是迁移的。我们确实需要将所有用户文档移动到相关文件夹。用户名相同,但位置布局不同(例如 \server2\users\%username%\My Documents*.* )基本上我们在他们的主文件夹中创建了一个文件夹来存放他们的文档。这主要是因为 Windows 7 显示的整个“我的文档”标签以及区分 Mac 系统上文件夹的简单方法。

所以我开始使用 RichCopy 手动推送文件,输入每个用户的源和目标,因为它们不匹配。有没有人有办法让我做到这一点,以便它有一个特定的变量来解释。

理论上:\server1\users\%username%\ 移动到 \server2\users\%username%\My Documents\

该变量将搜索用户名,匹配它们,并为 \users\ 中的每个文件夹自动推送

任何类型的 GUI 界面程序,甚至是我可以稍微操作的 powershell 脚本都会非常有帮助。我看不到为每个用户手动执行此操作,我们有大约 1000 个用户。

我非常感谢您提前提供的任何帮助!

到目前为止,我一直在使用 Powershell 运行 Robocopy 来执行此操作。我正在尝试让 powershell 从 csv 中提取用户名并将其输入到 robocopy 字符串中。这是我的代码:

    $usernames = import-csv c:\scripts\usernames.csv


 foreach($user in $username)

   {

    $field1 = $user.username


   Echo "$field1"

   }

$source = "\\server03\Staff-MyDocs\$user"
$destination = "\\server3\users$\Staff\$user\My Documents\"

robocopy $source $destination /S /E /COPY:DATSOU /R:1 /W:5 >C:\scripts\HomeDir_robocopy.log

有更好的想法来完成这项工作吗?

4

1 回答 1

1

根据您的描述,这应该有效:

$csv = 'C:\scripts\usernames.csv'
$log = 'C:\scripts\HomeDir_robocopy.log'

Import-Csv $csv | % { $_.username } | % {
  $src = "\\server1\Users\$_"
  $dst = "\\server2\Users\$_\My Documents\"

  robocopy "$src" "$dst" /e /copyall /r:1 /w:5 /log+:"$log"
}
于 2013-08-02T23:58:00.417 回答