【发布时间】:2015-08-26 14:40:56
【问题描述】:
我正在从 WMI 中提取机器的本地登录用户,并将其存储在一个变量中,如下所示:
$user = (Get-WmiObject -Class Win32_ComputerSystem -ComputerName $hostname).username
而且效果很好。问题是 WMI 以
格式返回信息contoso\用户名
我需要将变量插入到 Get-ADUser 命令中,该命令不接受
"contoso\"
当我尝试在 powershell 中使用替换命令时,由于命令中存在“\”而失败:
$user = $user -replace "CONTOSO\"
The regular expression pattern CONTOSO\ is not valid.
At line:1 char:1
+ $user = $user -replace "CONTOSO\"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (CONTOSO\:String) [], RuntimeException
+ FullyQualifiedErrorId : InvalidRegularExpression
是否有其他方法可以删除这些字符,以便我可以将其插入 Get-ADUser?也许在我将其插入 Get-ADUser 之前清理 gwmi 的输出?或者,是否有某种字符转义序列?
【问题讨论】:
-
\ 是我所知道的大多数语言中的转义字符。尝试将其替换为 \\:
$user = $user -replace "CONTOSO\\" -
酱汁真棒!做到了,而且,呃!从一开始就应该考虑尝试。谢谢!
标签: powershell-3.0