【问题标题】:Windows 7 Migrate User ProfilesWindows 7 迁移用户配置文件
【发布时间】:2014-04-15 07:27:58
【问题描述】:

我们正在尝试创建一个脚本来迁移 Windows 7 中的每个用户配置文件,以防因故障等原因更换 PC。

我们一直在使用以下:

Dim fso 
Dim oFolder1, objFolder, oFolder
Dim path
Dim colFolders
Dim sDocsAndSettings 
Dim strDirectory

Set fso = createobject("Scripting.FileSystemObject")

'===========================================================
'CHANGE SDESTINATION FOLDER PATH HERE
sPath =  "C:\Backup"
'===========================================================
Set proFolder = fso.GetFolder(sPath)

'COPY FILES FROM USER PROFILES
sDocsAndSettings = "C:\Users\"   
Set colFolders = fso.GetFolder(sDocsAndSettings) 

For Each oFolder In colFolders.SubFolders
    Select Case LCase(oFolder.Name)
        Case "admin", "administrator", "newuser", "all users", "default user", "default user.original", "localservice", "networkservice"
            'LEAVE THE DEFAULT PROFILES ON THE MACHINE
        Case Else
            'MsgBox oFolder.Name            
            If fso.FolderExists(proFolder) Then
                strDirectory = proFolder & "\" & oFolder.Name 
                If fso.FolderExists(strDirectory) Then
                Else 
                    Set objFolder = fso.CreateFolder(strDirectory)
                End If

                'COPY USER PROFILE FOLDERS to Destination Folder
                fso.CopyFolder sDocsAndSettings & oFolder.Name & "\Favorites" , objFolder & "\", True
                fso.CopyFolder sDocsAndSettings & oFolder.Name & "\Documents" , objFolder & "\", True
                fso.CopyFolder sDocsAndSettings & oFolder.Name & "\Desktop" , objFolder & "\", True
            End If
    End Select 
Next

MsgBox "Backup has been completed successfully!"

Set fso = Nothing

我们似乎遇到了与每个配置文件中的连接点(例如我的文档)有关的问题,这会因权限错误而停止脚本,因为取出我的文档行,脚本可以工作。任何想法,或者是否有更简单的脚本来迁移配置文件(我们需要能够迁移特定的子文件夹)。

【问题讨论】:

  • On Error Resume Next 关闭 vbs 错误检查。错误现在在 err 对象中。检查 err.number 由您决定,如果已修复或忽略,请使用 err.clear 清除错误。

标签: windows windows-7 vbscript


【解决方案1】:

源文件夹是否应该是 "\My Documents" ?它可能正在寻找一个不存在的文件。

 fso.CopyFolder sDocsAndSettings & oFolder.Name & "\Documents" , objFolder & "\", True

我不知道这是否会有所不同,但如果您将覆盖设置为 TRUE,您也可以使用 object.Copy( destination[, overwrite] );,这可以确保所有文件和文件夹都将被覆盖。您能否将权限问题解释为“正在以权限错误停止脚本”有点含糊。

【讨论】:

  • 我已尝试使用“我的文档”,但仍然出现相同的权限错误。 (确切的错误是权限被拒绝)如果我打开显示隐藏的受保护文件,我无法访问我的文档的连接点(快捷方式),权限被拒绝。但是,其他“我的文档”(不是受保护/隐藏的文件)可以正常打开。
  • 如果它适用于除此连接点之外的其他文件夹,那么您是否检查过该文件夹的安全和管理员权限与成功复制的文件夹相比?
猜你喜欢
  • 1970-01-01
  • 2012-08-11
  • 1970-01-01
  • 2015-08-11
  • 2016-03-22
  • 2021-05-26
  • 1970-01-01
  • 1970-01-01
  • 2012-04-29
相关资源
最近更新 更多