uhd-fischkopp
Goto Top

AD - auslesen nach Name Computer, Lastlogon Computer, IP und export CSV

Hi und danke schon einmal an alle ; )

Da ich mit dem Docusnap noch Grün bin muss ich es anders hinbekommen.
PowerShell Kenntnisse +-0.

Ich habe 2 PS Scripte gefunden, einmal gefiltert nach OS und IP + Export


Get-ADComputer -Filter 'enabled -eq "true"' '  
-Properties Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
Sort-Object -Property Operatingsystem |
Select-Object -Property Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
ConvertTo-CSV | Out-File C:\csv\listcomputer.csv

und enmal LastLogon ohne Export

$d = (Get-Date).addDays(-100)
Get-ADComputer -Property LastLogonDate -Filter {lastLogonDate -lt $d} |
select DNSHostName, LastLogonDate

Meine Frage ist wie kann man das zusammenführen, ohne das lauter Fehler aufploppen?
PS: Ich Denke das wird eine Schmerzhafte einarbeitung im Neuen Job face-smile

Content-Key: 639645

Url: https://administrator.de/contentid/639645

Printed on: April 20, 2024 at 02:04 o'clock

Member: UHD-Fischkopp
UHD-Fischkopp Jan 11, 2021 updated at 10:51:12 (UTC)
Goto Top
Schlussendlich habe ich doch noch was gefunden was Funktioniert,
zwar nicht mit z.b. zuletzt >100Tage, aber mit Filter in Excel leicht nachzuholen: )
und für Blindfisch wi ich die csv wird unter c:\Reports gespeichert.
Quelle

#===============================================================================================
# -------------------------------- PARAMS and MODULE -------------------------------------------
#=============================================================================================== 
Try{
    # Import Modules
    Import-Module ActiveDirectory -ErrorAction Stop
     
    # Params
    $RunTime     = (Get-Date).ToUniversalTime()
    $SavePath    = "$PSScriptRoot\Reports"  
    $DCName      = ($env:LOGONSERVER -replace "\\",'')  
    $FileDate    = Get-Date -Format "yyyyMMddHHmmss"  
    $OutputCsv   = "$SavePath\$($FileDate)_All_Computers.csv"   
    $Folder      = Test-Path $SavePath; if (-not $Folder) { [void] (New-Item $SavePath -Type Directory -ErrorAction Stop) }
 
    "::::::: Script start time: $RunTime"  
    "`nGetting all computes"  
    "Results will be saved in: $OutputCsv"  
    "Please wait...."  
}
Catch{
    Write-Warning $_.Exception.Message
    Read-Host "Script will end. Press enter to close the window"  
    Exit
}
 
 
#===============================================================================================
# ---------------------------------- GET COMPUTERS ---------------------------------------------
#=============================================================================================== 
# Properties 
 $Props = @{
        Filter         = "*"  
        Server         = $DCName
        ResultPageSize = 5000000
        ResultSetSize  = $null
        Properties     = 'Name',    
                         'DistinguishedName',   
                         'LastLogonDate',  
                         'OperatingSystem',   
                         'OperatingSystemVersion',   
                         'whenCreated'  
}
 
# Get computers and export to CSV
Get-ADComputer @Props | foreach {
        New-Object PSObject -Property ([ordered]@{ 
   
                        'Computername'             = $_.name  
                        'DistinguishedName'        = $_.DistinguishedName  
                        'OS information'           = If($_.OperatingSystem){$_.OperatingSystem}Else{" - "}  
                        'OS version information'   = If($_.OperatingSystemVersion){$_.OperatingSystemVersion}Else{" - "}  
                        'Last Logon Date'          = $_.LastLogonDate  
                        'When Created'             = $_.WhenCreated  
                    
        }) | Export-Csv $OutputCsv -NoTypeInformation -Append    
} 
 
 
#===============================================================================================
# --------------------------------- FINAL RESULTS ----------------------------------------------
#=============================================================================================== 
# End time
$EndTime = (Get-Date).ToUniversalTime()
"::::::: Script end time: $EndTime"  
$up      = $EndTime - $RunTime
$uptime  = "$($up.Days) days, $($up.Hours)h, $($up.Minutes)mins"  
 
 # Results
"`nScript was running for: $uptime"  
"Total number of computers: $((Import-CSV $OutputCsv | Measure-Object).COUNT)"  
 
Read-Host "Press enter to close"