В сценарии PowerShell возникают проблемы с навигацией по подразделениям в разных VLAN
У меня есть следующий сценарий PowerShell, который я использую для обзора машин, чтобы определить порядок развертывания обновлений и т. Д. Я просто создаю файл "TestPCs.txt" с экспортом дерева Active Directory, и этого достаточно. тест ping и запуск для всего, что вернется.
Он отлично работает на машинах, которые сопоставляют пароли локального администратора с моими и находятся в одной VLAN, но у меня возникают проблемы с машинами в альтернативных VLAN (общедоступные машины).
Одна вещь, которую я сделал с некоторой степенью успеха, - это подключил машину, сидящую на моем столе, к другой VLAN через провод к порту Ethernet, настроенному для соответствия этим другим машинам, изменил свой пароль локального администратора и запустил сценарий PowerShell. оттуда.
Это кажется успешным на машинах, которым не назначены OU (те, что находятся в контейнере "Компьютеры" по умолчанию). Я хотел бы знать, что я могу сделать, чтобы этот сценарий работал независимо от назначения OU.
Изменить: каждая компьютерная лаборатория имеет собственное подразделение, но машины, не назначенные для этого подразделения, возвращают информацию.
$testcomputers = Get-Content -Path 'C:\PSFiles\TestPCs.txt'
foreach ($computer in $testcomputers) {
if (Test-Connection -ComputerName $computer -Quiet -Count 1) {
Add-Content -Value $computer -Path C:\PSFiles\livePCs.txt
} else {
Add-Content -Value $computer -Path C:\PSFiles\deadPCs.txt
}
}
$exportLocation = 'C:\PSFiles\WMI_Inventory.csv'
$computers = Get-Content -Path 'C:\PSFiles\livePCs.txt'
foreach ($computer in $computers) {
$OS = Get-WmiObject Win32_OperatingSystem -ComputerName $computer
$cpu = Get-WmiObject Win32_Processor -ComputerName $computer
$Bios = Get-WmiObject Win32_Bios -ComputerName $computer
$systemBios = $Bios.SerialNumber
$Hardware = Get-WmiObject Win32_ComputerSystem -ComputerName $computer
$totalMemory = [Math]::Round($Hardware.TotalPhysicalMemory/1GB, 2)
$OutputObj = New-Object -Type PSObject
$OutputObj | Add-Member -MemberType NoteProperty -Name ComputerName -Value $computer.ToUpper()
$OutputObj | Add-Member -MemberType NoteProperty -Name Serial_Number -Value $systemBios
$OutputObj | Add-Member -MemberType NoteProperty -Name Make -Value $Hardware.Manufacturer
$OutputObj | Add-Member -MemberType NoteProperty -Name Model -Value $Hardware.Model
$OutputObj | Add-Member -MemberType NoteProperty -Name Processor -Value $cpu.Name
$OutputObj | Add-Member -MemberType NoteProperty -Name RAM_GB -Value $totalMemory
$OutputObj | Add-Member -MemberType NoteProperty -Name OS -Value $OS.Caption
$OutputObj | Add-Member -MemberType NoteProperty -Name OS_Version -Value $OS.Version
$OutputObj | Export-Csv -Path $exportLocation -Append -NoTypeInformation
}