

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将本地文件共享配置迁移到 Amazon FSx
<a name="migrate-file-share-config-to-fsx"></a>

可以使用以下过程，将现有文件共享配置迁移到 Amazon FSx。在此过程中，源文件服务器是您要将其文件共享配置迁移到 Amazon FSx 的文件服务器。

**注意**  
在迁移文件共享配置之前，请先将文件迁移到 Amazon FSx。有关更多信息，请参阅 [将现有文件存储迁移到 FSx for Windows File Server](migrate-files-fsx.md)。

**将现有文件共享迁移到 FSx for Windows File Server**

1. 在源文件服务器上，从上下文菜单中选择**以管理员身份运行**。以管理员 PowerShell身份打开 **Windows**。

1. `SmbShares.xml`通过在中运行以下命令，将源文件服务器的文件共享导出到名为的文件中 PowerShell。将该示例中的 F: 替换为要从中导出文件共享的文件服务器上的驱动器盘符。

   ```
   $shareFolder = Get-SmbShare -Special $false | ? { $_.Path -like “F:\*” }
   $shareFolder | Export-Clixml -Path F:\SmbShares.xml
   ```

1. 编辑 `SmbShares.xml` 文件，将对 F:（您的驱动器盘符）的所有引用替换为 D:\\share，因为 Amazon FSx 文件系统位于 D:\\share 上。

1. 将现有文件共享配置导入到 FSx for Windows File Server。在可以访问您的目标 Amazon FSx 文件系统和源文件服务器的客户端上，复制保存的文件共享配置。然后，使用以下命令将其导入到一个变量中。

   ```
   $shares = Import-Clixml -Path F:\SmbShares.xml
   ```

1. 使用以下方法之一，准备在 FSx for Windows File Server 文件服务器上创建文件共享所需的凭证对象。

   要以交互方式生成凭证对象，请使用以下命令。

   ```
   $credential = Get-Credential
   ```

   要使用 Amazon Secrets Manager 资源生成凭证对象，请使用以下命令。

   ```
   $credential = ConvertFrom-Json -InputObject (Get-SECSecretValue -SecretId $AdminSecret).SecretString
   $FSxAdminUserCredential = (New-Object PSCredential($credential.UserName,(ConvertTo-SecureString $credential.Password -AsPlainText -Force)))
   ```

1. 使用以下脚本将文件共享配置迁移到您的 Amazon FSx 文件服务器。

   ```
   $FSxAcceptedParameters = ("ContinuouslyAvailable", "Description", "ConcurrentUserLimit", "CATimeout", "FolderEnumerationMode", "CachingMode", "FullAccess", "ChangeAccess", "ReadAccess", "NoAccess", "SecurityDescriptor", "Path", "Name", "EncryptData")
   ForEach ($item in $shares) {
       $param = @{};
       Foreach ($property in $item.psObject.properties) {
           if ($property.Name -In $FSxAcceptedParameters) {
               $param[$property.Name] = $property.Value
           }
       }
       Invoke-Command -ConfigurationName FSxRemoteAdmin -ComputerName amznfsxxxxxxxxx.corp.com -ErrorVariable errmsg -ScriptBlock { New-FSxSmbShare -Credential $Using:credential @Using:param }
   }
   ```