如何将Get-ItemPropertyValue输出用引号包裹且元素以逗号分隔?
PowerShell转换NullSessionPipes输出格式的解决办法
给你两个简单可行的解决办法,直接就能得到你想要的"netlogon,samr,lsarpc"格式:
方法一:字符串替换法
如果输出是空格分隔的字符串,直接替换空格为逗号再包裹双引号:
# 获取原始参数值 $nullSessionPipes = Get-ItemPropertyValue -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters' -Name NullSessionPipes # 转换为目标格式并输出 "`"$($nullSessionPipes -replace ' ', ',')`""
- 核心逻辑:
-replace ' ', ','把空格分隔符替换成逗号; - 用
""..."""的写法,通过反引号`转义双引号,让最终输出被双引号完整包裹。
方法二:数组拼接法(更稳妥)
有时候Get-ItemPropertyValue返回的是字符串数组而非拼接好的字符串,这种时候用-join拼接更靠谱:
# 获取原始参数值 $nullSessionPipes = Get-ItemPropertyValue -Path 'HKLM:\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters' -Name NullSessionPipes # 转换为目标格式并输出 "`"$($nullSessionPipes -join ',')`""
-join ','会直接把数组里的每个元素用逗号连接,完全避免空格相关的问题。
之前反引号转义失败,大概率是没在双引号字符串里正确处理变量替换逻辑,上面两种写法都能解决这个问题。
内容的提问来源于stack exchange,提问作者szaboors
相关产品推荐
相关产品推荐

