gpt4 book ai didi

powershell - 带和不带引号的Powershell奇数返回DFSR卷路径

转载 作者:行者123 更新时间:2023-12-02 23:59:52 25 4
gpt4 key购买 nike

首先在这里发布!

我正在寻求改善对Windows 2008 R2上DFS复制的监视,因此无法访问2012年及更高版本可用的更好的PS cmdlet。我遇到了一个奇怪的问题,想知道如何摆脱它,好吗?我有点PS新手,所以希望解决方案足够容易。 :-)

我使用WMI查询DFSR VolumeInfo(请参阅ref),因此:

$DFSVolumeInfo = gwmi -Namespace "root\MicrosoftDFS" -Computer $DFSServer -query "select * from DfsrVolumeInfo"

现在,如果返回时不带引号,然后带引号:

write-host $DFSVolumeInfo.VolumePath

\\.\E: \\.\D:

write-host "$DFSVolumeInfo.VolumePath"

\\DC2-SRV-DFS01\root\MicrosoftDFS:DfsrVolumeInfo.VolumeGuid="6C4C4203-2BC9-11E4-9EF3-0050568815FA"

\\DC2-SRV-DFS01\root\MicrosoftDFS:DfsrVolumeInfo.VolumeGuid="D214D634-F794-11E3-9EF3-0050568815FA".VolumePath



后者也给出了 VolumeGuid

该类为 VolumePath提供以下属性

VolumePath数据类型:字符串
访问类型:只读
限定词:DisplayName
(“复制组GUID”)卷路径格式;这是 \\.\C:\\?\volume{GUID}

无论如何,是否有引号而不是GUID返回VolumePath,即C:,D:等?

输出需要更易于理解,因此我将用引号将输出回显,即 "$DFSVolumeInfo.VolumePath on $DFSServer has a state of $DFSVolumeInfo.State"

最佳答案

您可以将变量直接嵌入到这样的字符串中:"$Variable",但是如果您需要更复杂的语句,即使仅访问属性,它也将仅嵌入变量名称(.及其之后嵌入字符串中的所有内容将是按字面解释)。您有几种选择:

子表达

"Here's a thing: $($DFSVolumeInfo.VolumePath) <-- that's a thing"
$()中的所有内容都首先被评估,然后插入到字符串中。它可能是整个powershell程序。

级联
"Here's a thing: " + $DFSVolumeInfo.VolumePath + " <-- that's a thing"

拆开并将它们加在一起。

The format -f operator
"Here's a thing: {0} <-- that's a thing" -f $DFSVolumeInfo.VolumePath

使字符串成为格式表达式,然后填写您传递给运算符右侧的值。

预填充变量
$computedValue = $DFSVolumeInfo.VolumePath
"Here's a thing: $computedValue <-- that's a thing"

关于powershell - 带和不带引号的Powershell奇数返回DFSR卷路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32612048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com