我有以下PowerShell代码:
$strCategory = "computer"
$objDomain = New-Object System.DirectoryServices.DirectoryEntry("LDAP://OU=Computers,OU=2 Streetsville,DC=ourdomain,DC=local")
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher($objDomain)
$objSearcher.Filter = ("(objectCategory=$strCategory)")
$colProplist = "name"
foreach ($i in $colPropList){[void]$objSearcher.PropertiesToLoad.Add($i)}
$colResults = $objSearcher.FindAll()
当我们的 LDAP 路径不包含空格时,代码运行良好:
LDAP://OU=Computers,OU=DataCenter,DC=ourdomain,DC=local
但是,当我们将 DataCenter OU 重命名为地址时:
LDAP://OU=Computers,OU=2 Streetsville,DC=ourdomain,DC=local
突然代码不再起作用。
我认为没问题,我只需要使用以下命令逃离空间\
:
LDAP://OU=Computers,OU=2\ Streetsville,DC=ourdomain,DC=local
然而,这是行不通的。我还尝试了一个双斜杠来逃避空格:
LDAP://OU=Computers,OU=2\\ Streetsville,DC=ourdomain,DC=local
我不知道还能尝试什么。我可以回到一个没有空格的 OU 名称,但我宁愿不这样做。有人可以帮我弄清楚如何正确逃离这个空间吗?