服务器 频道

Win2008 R2文件迁移实战之执行迁移后任务

  Send-SmigServerData 和 Receive-SmigServerData cmdlet 会在 MigrationDataResult 对象列表中返回结果。每个 MigrationDataResult 对象都包含关于 cmdlet 所处理的数据或共享的信息、操作的结果、任何错误或警告消息以及其他相关信息。下表描述了 MigrationDataResult 对象的属性。

属性名称

类型

定义

ItemType

枚举

已迁移项目的类型。值包括 FileFolderShare Encrypted File

SourceLocation

字符串

项目的源位置,显示为路径名。

DestinationLocation

字符串

项目的目标位置,显示为路径名。

Success

布尔型

如果迁移成功,则会显示值 True;否则,将显示 False

Size

整数

项目大小(以字节为单位)。

ErrorDetails

列表 <MigrationResultDetails>

MigrationResultDetails 对象列表。

Error

枚举

已发生错误的错误枚举。

WarningMessageList

列表 <String>

警告消息列表。

  下表描述了 MigrationResultDetails 对象内 MigrationResult 对象和 MigrationDataResult 对象公用的对象属性。

属性名称

类型

定义

FeatureId

字符串

与该项目相关的迁移设置的名称。值的示例包括 IPConfig DNS。对于数据迁移,此属性为空。

Messages

列表 <String>

详细事件消息列表。

DetailCode

整数

与每个事件消息关联的错误或警告代码。

Severity

枚举

事件的严重性(如果事件已发生)。值的示例包括 InformationError Warning

Title

字符串

结果对象的标题。值的示例包括 IP 配置的 NIC 物理地址,或本地用户迁移的用户名。

  示例

  以下示例说明如何使用变量存储结果对象的列表,然后在迁移完成之后在查询中使用该变量返回结果对象的内容。

  将结果对象的列表存储为查询的一个变量的步骤

  若要运行 cmdlet 并将结果保存在变量中,请使用以下格式键入一个命令,然后按 Enter。

  $ VariableName = $(Cmdlet)

  以下是一个示例。

  $ImportResult = $(Import-SmigServerSetting -FeatureId DHCP -User all -Group -Path D:\rmt\DemoStore -force -Verbose)

  此命令会运行指定了几个参数的 Import-SmigServerSetting cmdlet,然后在变量 ImportResult 中保存结果对象。

  Import-SmigServerSetting cmdlet 完成其操作后,通过以下面的格式键入命令,然后按 Enter 返回包含在结果对象中的信息。

  $ VariableName

  在以下示例中,会将变量命名为 ImportResult。

  $ ImportResult

  此命令会返回结果对象中所包含的信息,这些结果对象是在步骤 1 中所示的示例中由 Import-SmigServerSetting 返回的。以下是通过调用 ImportResult 变量显示的一个输出示例。

  ItemType  ID                              Success  DetailsList

  --------  --                              -------  -----------

  OSSetting  Local User                         True  {Local User, Loc...

  OSSetting  Local Group                        True  {Local Group, Lo...

  WindowsFeature  DHCP                               True  {}

  上述示例的每一行都是通过使用 Import-SmigServerSetting cmdlet 迁移的某个项目的一个迁移结果。列标题名称是 MigrationResult 对象的属性。可以将这些属性合并到另一个命令中来返回关于结果对象的更多详细信息,如步骤 3 及以后步骤中的示例所示。

  若要在列表中显示所有结果对象的某个特定属性,请使用以下格式键入一个命令,然后按 Enter。

  $<VariableName>| Select-Object -ExpandProperty <PropertyName>

  以下是一个示例。

  $importResult | Select-Object -ExpandProperty DetailsList

  可以通过使用 Windows PowerShell cmdlet 运行更多高级查询来分析结果对象。以下是一些示例。

  以下命令仅返回 ID 为 Local User 的结果对象的那些详细信息。

  $ImportResult | Where-Object { $_.ID -eq "Local User" } | Select-Object -ExpandProperty DetailsList

  以下命令仅返回 ID 为 Local User 的结果对象的那些详细信息,该 ID 的消息严重性等于 Warning。

  $ImportResult | Where-Object { $_.ID -eq "Local User" } | Select-Object -ExpandProperty DetailsList | ForEach-Object { if ($_.Severity -eq "Warning") {$_} }

  以下命令仅返回 ID 为 Local User 的结果对象的详细信息,该 ID 还具有标题 Remote Desktop Users。

  $ImportResult | Where-Object { $_.ID -eq "Local Group" } | Select-Object -ExpandProperty DetailsList | ForEach-Object { if ($_.Title -eq "Remote DesktopUsers") {$_} }

0
相关文章