PowerShell操作:如何去除Get-RdsSessionHost返回主机名的固定后缀
实现方案
方法1:直接在查询语句中处理后缀
你可以在Select-Object阶段直接通过计算属性移除后缀,无需后续二次处理,命令如下:
Get-RdsSessionHost -TenantName "api" -HostPoolName "vvt" | Select-Object @{Name='SessionHostName';Expression={$_.SessionHostName -replace '\.api\.com\.au$',''}}
这里
-replace用的是正则匹配,末尾的$符号确保只匹配结尾的固定后缀,不会误删域名中间出现的相同字符串。
方法2:对已有查询结果批量处理
如果你已经把查询结果存到了变量比如$sessionHosts里,可以用下面的命令批量处理:
$sessionHosts | ForEach-Object { $_.SessionHostName -replace '\.api\.com\.au$','' }
如果需要保留原对象结构只修改属性值,可以这么写:
$processedHosts = $sessionHosts | ForEach-Object { $_.SessionHostName = $_.SessionHostName -replace '\.api\.com\.au$','' $_ }
方法3:字符串截断法(适合固定后缀长度的场景)
因为你要移除的后缀长度固定为12个字符(.api.com.au共12位),也可以直接截取字符串前n位实现需求:
Get-RdsSessionHost -TenantName "api" -HostPoolName "vvt" | Select-Object @{Name='SessionHostName';Expression={$_.SessionHostName.Substring(0, $_.SessionHostName.Length - 12)}}
以上方法执行后输出的结果均为:
wvdpd24 wvdpd25 wvdpd1
内容的提问来源于stack exchange,提问作者shaker
相关产品推荐
相关产品推荐

