Forum

Pasif Computer obje...
 
Bildirimler
Hepsini Temizle

[Çözüldü] Pasif Computer objelerinin otomatik silinmesi

3 Yazılar
2 Üyeler
0 Reactions
723 Görüntüleme
(@dogukan24)
Gönderiler: 14
Eminent Member
Konu başlatıcı
 

Merhabalar,

Active directory üzerinden son logon name'i 60 günden fazla olan computer objelerini otomatik olarak silmek istiyorum.

Konu hakkında nasıl bir yol izlemem gerekiyor ?

Konu hakkında bilgisi bulunan değerli arkadaşların yardımlarını rica ediyorum.*

 
Gönderildi : 03/02/2022 11:04

Hakan Uzuner
(@hakanuzuner)
Gönderiler: 33320
Illustrious Member Yönetici
 

Merhaba, aşağıdaki PS komutlarını kullanabilirsin.

Function Get-StaleComputers {
    <#
        .SYNOPSIS
        This Function searches Active Directory for stale computer objects.
         
        .DESCRIPTION
        This Function searches Active Directory for stale computer objects based on the NumberOfDays parameter. It checks both the LastLogonDate and PasswordLastSet attributes against NumberOfDays.
 
        .PARAMETER NumberOfDays
            The number of days old a computer object is to be considered stale.  Default is 120 days.
 
        .PARAMETER ExportToCSV
            If specified location and CSV file to output the results. Default is the script directory location and a file named StaleComputers_yyyyMMss.csv.
 
        .EXAMPLE
        Get-StaleComputers
 
        Returns Stale computers using the default values of 120 Days and writes a csv file to the scripts execution location.
        Number Of Days: 120
        Export To CSV : C:\Scripts\StaleComputers_20200106.csv
 
        .EXAMPLE
        Get-StaleComputers -NumberOfDays 180
 
        Returns Stale computers using the value of 180 Days and writes a csv file to the scripts execution location.
        Number Of Days: 180
        Export To CSV : C:\Scripts\StaleComputers_20200106.csv
 
        .EXAMPLE
        Get-StaleComputers -NumberOfDays 180
 
        Returns Stale computers using the value of 180 Days and writes a csv file to the scripts execution location.
        Number Of Days: 180
        Export To CSV : C:\Scripts\StaleComputers_20200106.csv    
 
        .EXAMPLE
        Get-StaleComputers -NumberOfDays 180 -ExportToCSV c:\Reports\StaleComputers.csv
 
        Returns Stale computers using the value of 180 Days and writes a csv file to C:\Reports\StaleComputers.csv.
        Number Of Days: 180
        Export To CSV : c:\Reports\StaleComputers.csv
    #>
 
    [CmdletBinding()]
    param(
        # # of days ago to purge
        [int] $NumberOfDays = 120,
        # Specifies to export to the specified csv file
        [String] $ExportToCSV = $($PSScriptRoot + "\StaleComputers_" + $(Get-Date -Format yyyyMMdd) +".csv")
    )
 
    # Computer Variable Initializations
    Write-Verbose -Message "Initializing Variables."
    $DaysAgo = 0 - $NumberOfDays
    $AllADComputerObjects = $null
    Write-Output "Number Of Days: $NumberOfDays"
    Write-Output "Export To CSV : $ExportToCSV"
 
    # Computer Properties List
    Write-Verbose -Message "Set Property Variables."
    $ComputerPropsAll = $("Name","SamAccountName","Enabled","OperatingSystem","OperatingSystemServicePack","IPv4Address","LastLogonDate","PasswordLastSet","Modified","canonicalname","DistinguishedName","whenChanged","whenCreated")
    $ComputerPropsPlusCreator = $("Name","SamAccountName","Enabled","OperatingSystem","OperatingSystemServicePack","IPv4Address","LastLogonDate","PasswordLastSet","Modified","canonicalname","DistinguishedName","whenChanged","whenCreated",@{Name="CreatedBy";Expression={$(([ADSI]"LDAP://$($_.DistinguishedName)").psbase.ObjectSecurity.Owner)}})
 
    # Gather Computer Data from Active Directory and Analyze
    Write-Verbose -Message "Querying Active Directory for Computer Objects..." 
    $AllADComputerObjects = (Get-ADComputer -Filter * -Properties $ComputerPropsAll)
 
    Write-Verbose -Message "Searching Active Directory for Stale ($DaysAgo Days) Computers."
    $StaleDate = (Get-Date).AddDays($DaysAgo)
    $StaleComputers = ($AllADComputerObjects | ? {$_.PasswordLastSet -le $StaleDate -and $_.LastLogonDate -le $StaleDate}) | Select-Object $ComputerPropsPlusCreator
    If ($StaleComputers) {
        $StaleComputers | Export-Csv -Path $ExportToCSV -NoTypeInformation -Force
        Write-Output "Stale Computers Found: $($StaleComputers.count)"
        Write-Output "Output was sent to $ExportToCSV"
    } Else {
        Write-Output "No Stale Computers Found."
    }
}
cls
Get-Help Get-StaleComputers -Full

Örnek kullanım aşağıdaki gibidir;

# Below are some examples of script execution
        .EXAMPLE
        Get-StaleComputers
  
        Returns Stale computers using the default values of 120 Days and writes a csv file to the scripts execution location.
        Number Of Days: 120
        Export To CSV : C:\Scripts\StaleComputers_20200106.csv
  
        .EXAMPLE
        Get-StaleComputers -NumberOfDays 180
  
        Returns Stale computers using the value of 180 Days and writes a csv file to the scripts execution location.
        Number Of Days: 180
        Export To CSV : C:\Scripts\StaleComputers_20200106.csv
  
        .EXAMPLE
        Get-StaleComputers -NumberOfDays 180
  
        Returns Stale computers using the value of 180 Days and writes a csv file to the scripts execution location.
        Number Of Days: 180
        Export To CSV : C:\Scripts\StaleComputers_20200106.csv    
  
        .EXAMPLE
        Get-StaleComputers -NumberOfDays 180 -ExportToCSV c:\Reports\StaleComputers.csv
  
        Returns Stale computers using the value of 180 Days and writes a csv file to C:\Reports\StaleComputers.csv.
        Number Of Days: 180
        Export To CSV : c:\Reports\StaleComputers.csv

Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************

 
Gönderildi : 03/02/2022 12:06

(@dogukan24)
Gönderiler: 14
Eminent Member
Konu başlatıcı
 

@hakanuzuner Teşekkür ederim.

 
Gönderildi : 03/02/2022 16:03

Paylaş: