मेरे पास जो स्क्रिप्ट है, वह मेरे द्वारा वांछित जानकारी को लिखता है। हालाँकि मैंने देखा है कि प्रत्येक नई मान्य प्रविष्टि अंतिम की जगह लेती है। मैं यह पता नहीं लगा सकता कि क्यों। तो क्या मैं अंत में हर बार सिर्फ 1 प्रविष्टि है, भले ही 1000 कंप्यूटर का पता चला था। कृपया इसका पता लगाने में मेरी सहायता करें।
$computers = Get-ADComputer -SearchBase "DC=some,DC=web,DC=com" -Filter * | Select-Object -ExpandProperty Name
foreach ($computer in $computers){
if(!(Test-Connection -CN $computer -BufferSize 16 -Count 1 -ea 0 -quiet))
{write-host "Cannot reach $computer offline." -f red}
else {
$outtbl = @()
Try{
$sr=Get-WmiObject -Class Win32_BIOS -ComputerName $computer -ErrorAction Continue
$Xr=Get-WmiObject -Class Win32_Processor -ComputerName $computer -ErrorAction Continue
$ld=Get-ADComputer $computer -Properties * -ErrorAction Continue
$r="{0} GB" -f ((Get-WmiObject Win32_PhysicalMemory -ComputerName $computer |Measure-Object Capacity -Sum).Sum / 1GB)
$x = gwmi win32_computersystem -ComputerName $computer |select @{Name = "Type";Expression = {if (($_.pcsystemtype -eq '2') )
{'Laptop'} Else {'Desktop Or Other something else.'}}},Manufacturer,@{Name = "Model";Expression = {if (($_.model -eq "$null") ) {'Virtual'} Else {$_.model}}},username -ErrorAction Continue
$t= New-Object PSObject -Property @{
ServiceTag = $sr.serialnumber
ComputerName = $ld.name
IPV4Address=$ld.ipv4Address
Enabled=$ld.Enabled
Description=$ld.description
OU=$ld.DistinguishedName.split(',')[1].split('=')[1]
Type = $x.type
Manufacturer=$x.Manufacturer
Model=$x.Model
RAM=$R
ProcessorName=($xr.name | Out-String).Trim()
NumberOfCores=($xr.NumberOfCores | Out-String).Trim()
NumberOfLogicalProcessors=($xr.NumberOfLogicalProcessors | Out-String).Trim()
AddressWidth=($xr.Addresswidth | Out-String).Trim()
OperatingSystem=$ld.operatingsystem
OperatingSystemServicePack=$ld.OperatingSystemServicePack
OperatingSystemVersion=$ld.OperatingSystemVersion
OperatingSystemHotfix=$ld.OperatingSystemHotfix
LastLogonDate=$ld.lastlogondate
ObjectCreated=$ld.Created
ObjectModified=$ld.whenChanged
LoggedInUser=$x.username
}
$outtbl += $t
}
catch [Exception]
{
"Error communicating with $computer, skipping to next"
}
$outtbl | select Computername,ServiceTag,IPV4Address,Description,Enabled,OU,Type,Manufacturer,Model,RAM,ProcessorName,NumberOfCores,NumberOfLogicalProcessors,AddressWidth,OperatingSystem,OperatingSystemServicePack,OperatingSystemVersion,OperatingSystemHotfix,ObjectCreated,ObjectModified,LoggedInUser,LastLogonDate | Format-Table * -Wrap -AutoSize | Out-String -Width 4096 | Out-File $env:USERPROFILE\Desktop\AD-Inventory.txt
}
}
आपने क्या प्रयास किया है? ऐसा लगता है कि आप Array में ठीक से आइटम नहीं जोड़ रहे हैं।
—
Twisty Impersonator