这让我发疯了。我是Powershell的初学者,但我看不出这里有什么问题。
我基本上运行一个脚本,该脚本关闭并检查AD中的描述字段,查找用户输入的匹配项并回读PC名称和相关描述。如下:
import-module activedirectory
$User = Read-Host -Prompt "Enter User's First OR Surname OR partial String"
$User = '*' + $User + '*'
Get-ADComputer -Filter 'Description -like $User' -Properties Description | Select Name, Description
write-Host "================================================================="
}
这对它自己的工作正常。但是我想循环它直到它关闭,所以用户可以立即进行另一次搜索。当我将它放入循环时,第一次运行搜索时,不会返回任何结果。第二次使用第二批返回第一批结果。从那时起,它正常工作。
所以输出看起来像:
Enter User's First OR Surname OR partial String: Test
=================================================================
Enter User's First OR Surname OR partial String: Test
Name Description
---- -----------
COMPXXX01 Test, PS
COMPXXX01 Test, PS
=================================================================
所以基本上第一批结果在第二次运行时就会出现。
我尝试了几种循环方式,例如:
import-module activedirectory
While($true)
{
$User = Read-Host -Prompt "Enter User's First OR Surname OR partial String"
$User = '*' + $User + '*'
Get-ADComputer -Filter 'Description -like $User' -Properties Description | Select Name, Description
write-Host "================================================================="
}
任何建议都会得到很好的接受。
由于
答案 0 :(得分:0)
有趣的发现。据我所知,控制台和控制台存在某种错误。 GET-ADComputer。 Get-Adcomputer在获取信息时“工作”(放入变量,内容显示),但不输出。有趣的是,如果你把输出两次,它将第二次工作:
While($true)
{
$User = Read-Host -Prompt "Enter User's First OR Surname OR partial String"
$User = '*' + $User + '*'
Get-ADComputer -Filter 'Description -like $User' -Properties Description | Select Name, Description
Get-ADComputer -Filter 'Description -like $User' -Properties Description | Select Name, Description
write-Host "================================================================="
}
解决方法是第一次有一面旗帜:
$firstTime = $true
While($true)
{
$User = Read-Host -Prompt "Enter User's First OR Surname OR partial String"
$User = '*' + $User + '*'
$computerTable = Get-ADComputer -Filter 'Description -like $User' -Properties Description | Select Name, Description
if($firstTime){
$firstTime = $false
$computerTable
}
$computerTable
write-Host "================================================================="
}