【发布时间】:2014-08-07 15:12:27
【问题描述】:
这是我的函数的简化版本:
function DetectLocalUser($localGroup, $members)
{
$result = net localgroup "$localGroup"
#$members= $members.Replace("\","\\")
if ($result -match $members)
{
return $true
}
else
{
return $false
}
}
要调用我使用此示例的函数(我将收到的典型值):
DETECTLocalUser "test" "iis apppool\userapi"
参数不受我控制。如果是,我会直接转义第二个参数 "iis apppool\\userapi"
在执行时,参数中的 \ 有问题。确切的错误是:
解析“iis apppool\icisapi” - 无法识别的转义序列 \i。在 C:\k\a.ps1:6 字符:9 + if ($result -match $members) + ~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (:) [], ArgumentException + FullyQualifiedErrorId : System.ArgumentException
我通过添加 #$members= $members.Replace("\","\\") 找到了解决方法,但我不确定是否是最佳选择。
我的工作方法可以接受还是有更好的方法来转义 $members 参数?
【问题讨论】:
标签: powershell escaping