Я написал этот небольшой скрипт, и когда я тестирую Write-Host $serial
, он выглядит нормально, но когда он работает в фоновом режиме, $serial
, кажется, содержит массив.
Он пытается переименовать компьютер в C000@{SerialNumber=F7ZL3F2}
вместо C000F7ZL3F2
.
Что мне нужно сделать, чтобы получить строку, а не этот массив?
Import-Module ActiveDirectory
Get-ADComputer -Filter {Name -like 'DESKTOP-*'} -Properties * | Select Name, DNSHostName | ForEach-Object {
$rtn = Test-Connection -CN $_.dnshostname -Count 1 -BufferSize 16 -Quiet
if ($rtn -match 'True') {
$serial = Get-WMIObject Win32_Bios -ComputerName $_.name | Select-String SerialNumber
$serial = "C000$serial"
// Write-Host $serial
Rename-Computer -ComputerName $_.name -NewName $serial -DomainCredential $mycreds -Force -Restart
}
}