运行:
nltest /sc_query:domain /server:servername
产地:
Flags: 30 HAS_IP HAS_TIMESERV
Trusted DC Name \\hostname.domain
Trusted DC Connection Status Status = 0 0x0 NERR_Success
The command completed successfully
我想抓住$只是在\\仅仅是'主机名'之后。
到目前为止:'(?< = \\\\)。*'(所以Expresso Regex util告诉我) 这会抓住'\\'
之后的所有内容我如何在PowerShell中对此进行编码,以便只获取主机名?
答案 0 :(得分:1)
你也可以使用-match
运算符:
nltest /sc_query:domain /server:servername | Where {$_ -match '\\\\([a-zA-Z0-9_-]+)'} |
Foreach {$matches[1]}
答案 1 :(得分:0)
您可以使用:
$output = nltest /sc_query:domain /server:servername
$Hostname = ([regex]::Match($output,'(?<=\\\\).+?(?=\.)')).value
编辑:更新了Regex以获得主机名。
(?<=\\\\) = Positive look-behind for the string `\\` (It will start grab characters after the `\\`)
.+? = Any character one or more times
(?=\.) = Positive look-ahead (It will only grab characters before a `.`)
编辑2:已实现我应该使+
非贪婪,以便它会在第一个.
停止。为未来访问者调整正则表达式。