В сценарии 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
}

0 ответов

Другие вопросы по тегам