当运行Get-WKSWorkspaces之类的 cmdlet 时,它将返回一组关于您的工作区的属性(例如 WorkspaceID、用户名、SubnetID、BundleID 等),但不会返回您在 AWS GUI 中看到的所有属性。我也特别想提取运行模式、计算类型和创建时间等内容,但似乎找不到在哪里提取它。
在我的研究中,我开始使用 $AWSHistory 来尝试更深入地挖掘从以前的 cmdlet 返回的数据,但肯定碰壁了,似乎无法绕过它。
我确实有一个部分命令可以提供我需要的大部分输出:
$region = Get-DefaultAWSRegion
$lastuserconnect = Get-WKSWorkspacesConnectionStatus | Select LastKnownUserConnectionTimestamp
Get-WKSWorkspace -ProfileName ITSLayer1-053082227562-Profile | Select WorkspaceID, UserName, BundleID, DirectoryID,
@{Name="Region"; Expression={$region.Region}},
@{Name="LastKnownUserConnect"; Expression=
{$lastuserconnect.LastKnownUserConnectionTimestamp}}
后代更新:实际上有一些不错的东西出来。它很慢,但它以表格格式呈现得非常好,并且在开始时包含一些内容以选择您的 AWS 区域。
改进建议包括:
- 自动切换 Region 选择以从我们使用的主要 Regions 中获取所有工作区
- 清理线条,使其更易于阅读
- 让该区域自动附加文件名,这样它就不会每次都覆盖您的文件(它在那里但目前已损坏......仍然会弹出一个以“workspace_properties.csv”为名称的文件)
优化脚本,因为它很慢
$lastuserconnect = Get-WKSWorkspacesConnectionStatus -ProfileName $profile $defaultregion = Get-DefaultAWSRegion $showallregions = Get-AWSRegion $exportpath = "" + $env:USERPROFILE + "\workspace_properties" + $defaultregion.Region + ".csv"
$showallregions | 格式表
$setregion = Read-Host -Prompt 'AWS 区域'
清除-DefaultAWSRegion Set-DefaultAWSRegion $setregion
获取-WKSWorkspace -ProfileName $profile | 选择 WorkspaceID、UserName、BundleID、DirectoryID、@{Name="ComputeType"; 表达式={$ .WorkspaceProperties.ComputeTypeName}},@{Name="RunningMode"; 表达式={$ .WorkspaceProperties.RunningMode}},@{Name="Region"; 表达式={$defaultregion.Region}},@{Name="LastKnownUserConnect"; 表达式={$_ | foreach {$lastuserconnect = Get-WKSWorkspacesConnectionStatus -ProfileName $profile -WorkspaceId $_.WorkspaceId; echo $lastuserconnect.LastKnownUserConnectionTimestamp}}} | 导出-CSV $exportpath