update
This commit is contained in:
50
Active Directory/Get-AdComputerInventory.ps1
Normal file
50
Active Directory/Get-AdComputerInventory.ps1
Normal file
@ -0,0 +1,50 @@
|
||||
$Computers = Get-ADComputer -filter * | Select-Object -ExpandProperty Name
|
||||
# Get-ADComputer -Filter { OperatingSystem -NotLike '*Server*' } -Properties OperatingSystem
|
||||
|
||||
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 win32_bios -ComputerName $Computer -ErrorAction Stop
|
||||
$Xr = Get-WmiObject –class Win32_processor -ComputerName $computer -ErrorAction Stop
|
||||
$ld = get-adcomputer $computer -properties Name, Lastlogondate, operatingsystem, ipv4Address, enabled, description, DistinguishedName -ErrorAction Stop
|
||||
$r = "{0} GB" -f ((Get-WmiObject Win32_PhysicalMemory -ComputerName $computer | Measure-Object Capacity -Sum).Sum / 1GB)
|
||||
$x = gwmi win32_computersystem -ComputerName $computer | Select-Object @{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 Stop
|
||||
$t = New-Object PSObject -Property @{
|
||||
serialnumber = $sr.serialnumber
|
||||
computername = $ld.name
|
||||
Ipaddress = $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
|
||||
Lastlogondate = $ld.lastlogondate
|
||||
LoggedinUser = $x.username
|
||||
}
|
||||
$outtbl += $t
|
||||
}
|
||||
catch [Exception] {
|
||||
"Error communicating with $computer, skipping to next"
|
||||
}
|
||||
$outtbl | Select-Object Computername, enabled, description, ipAddress, Ou, Type, Serialnumber, Manufacturer, Model, Ram, ProcessorName, NumberOfCores, NumberOfLogicalProcessors, Addresswidth, Operatingsystem, loggedinuser, Lastlogondate
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user