我已经写了脚本,但结果是相同的所有计算机.更准确地说,如果我的设备有注册表名称,然后都有它并不反映现实.如果我的设备也有它.我需要帮助来理解我的错误。先谢谢你了
$ADSearchBaseComputers = 'ou=computers,ou=xxx,ou=xx,ou=xxx,dc=xx,dc=xxx,dc=xxx'
$computers= get-adcomputer -filter * -searchbase "$ADSearchBaseComputers" | select -Property SamAccountName
foreach ($computer in $computers)
{
Invoke-Command {
$RegPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
$RegName= Get-ItemProperty -Path $RegPath -Name MTBLogin
if ($RegName)
{
Write-Output "Reg Key presente pour $($computer.SamAccountName)"
}
else
{
Write-Output "Reg Key non presente pour $($computer.SamAccountName)"
}
}
}
最初我在循环之前有$RegPath
和$RegName
值,所以我把它们移到里面,但结果是一样的。
1条答案
按热度按时间zzoitvuj1#
我会这么做给invoke-command整个计算机名数组将使其并行运行。如果你返回一个对象,你会自动得到pscomputername。它应该给予一个结果,无论注册表项是否存在。