Windows Server
Powershell AD Komutları
Powershell AD ( Active Directory ) komutları, günlük hayatta işimizi kolaylaştıran komutlardır. Ad üzerinden yapacağımız kontrol ve işleri oldukça kolaylaştırarak zaman kazanmanızı sağlar.
Aşağıda Powershell ile sık kullanılan AD Komutları yer almaktır
# AD Modülü Yükleme #
Import-Module ActiveDirectory
# Date Info Scriptin çalıştırıldığı tarihi bir değişkene kaydeder. Excel çıktısında dosya ismine bu tarih eklenmektedir.#
$d = Get-Date -UFormat %d%m%Y
# Users Info #
# Tüm kullanıcı sayısını getirir.#
$AllUsers = Get-ADUser -Filter * |Measure-Object
# Enable olan kullanıcı sayısını getirir.#
$EnableUsers = Get-ADUser -Filter 'enabled -eq $true' | Measure-Object
# Disable olan kullanıcı sayısını getirir.#
$DisableUsers = Get-ADUser -Filter 'enabled -eq $false' | Measure-Object
# Parolası expire olmayan kullanıcı sayısını getirir.#
$PasswordNeverExpireUsers = Get-ADUser -Filter 'passwordneverexpires -eq $true' | Measure-Object
# Parolası kullanmadan login olabilen kullanıcı sayısını getirir.#
$PasswordNotRequiredUsers = Get-ADUser -Filter 'passwordnotrequired -eq $true' | Measure-Object
# Bu bölümde yukarıdaki değişkenlere atanmış komut setleri custom objelere atanır.
$UsersInfo = New-Object -TypeName PSCustomObject
$UsersInfo |
Add-Member -MemberType NoteProperty -Name 'All Users' -Value $AllUsers.Count -PassThru |
Add-Member -MemberType NoteProperty -Name 'Enable Users' -Value $EnableUsers.Count -PassThru |
Add-Member -MemberType NoteProperty -Name 'Disable Users' -Value $DisableUsers.Count -PassThru |
Add-Member -MemberType NoteProperty -Name 'PasswordNeverExpireUsers' -Value $PasswordNeverExpireUsers.Count -PassThru |
Add-Member -MemberType NoteProperty -Name 'PasswordNotRequiredUsers' -Value $PasswordNotRequiredUsers.Count -PassThru
$UsersInfo |Export-Excel C:\Temp\ADReport_$d.xlsx -Append -WorksheetName "UsersInfo" -TableStyle Medium16 -Title "Users Info" -TitleBold
# Groups Info#
# Tüm grup sayısını getirir.#
$AllGroups = Get-ADGroup -Filter * |Measure-Object
# Security grup sayısını getirir.#
$SecurityGroups = Get-ADGroup -Filter * -Properties GroupCategory | where {$_.GroupCategory -eq 'Security'} | Measure-Object
# Distribution grup sayısını getirir.#
$DistributionGroups = Get-ADGroup -Filter * -Properties GroupCategory | where {$_.GroupCategory -eq 'Distribution'} | Measure-Object
# Üyesi bulunmayan grup sayısını getirir.#
$EmptyGroups = Get-ADGroup -Filter * -Properties Members | where {-not $_.members} | Measure-Object
# Bu bölümde yukarıdaki değişkenlere atanmış komut setleri custom objelere atanır.#
$GroupInfo = New-Object -TypeName PSCustomObject
$GroupInfo |
Add-Member -MemberType NoteProperty -Name 'All Groups' -Value $AllGroups.Count -PassThru |
Add-Member -MemberType NoteProperty -Name 'Security Groups' -Value $SecurityGroups.Count -PassThru |
Add-Member -MemberType NoteProperty -Name 'Distribution Groups' -Value $DistributionGroups.Count -PassThru |
Add-Member -MemberType NoteProperty -Name 'Empty Groups' -Value $EmptyGroups.Count -PassThru
$GroupInfo |Export-Excel C:\Temp\ADReport_$d.xlsx -Append -WorksheetName "GroupInfo" -TableStyle Medium16 -Title "Group Info" -TitleBold
# Computers Info#
# AD üzerindeki aktif olan tüm computer objelerin sayısını getirir.#
$AllComputersEnable = Get-ADComputer -Filter 'enabled -eq $true' | Measure-Object
# AD üzerindeki disable durumda olan tüm computer objelerin sayısını getirir.#
$AllComputersDisable =Get-ADComputer -Filter 'enabled -eq $false' | Measure-Object
# AD üzerindeki enable durumda olan tüm server objelerin sayısını getirir.#
$AllEnableServers= Get-ADComputer -Filter 'operatingsystem -like "*server*" -and enabled -eq "true"' | Measure-Object
# AD üzerindeki disable durumda olan tüm server objelerin sayısını getirir.#
$AllDisableServers = Get-ADComputer -Filter 'operatingsystem -like "*server*" -and enabled -eq "false"' | Measure-Object
# AD üzerindeki enable durumda olan tüm workstation objelerin sayısını getirir.#
$AllEnableWorkStation = Get-ADComputer -Filter 'operatingsystem -notlike "*server*" -and enabled -eq "true"' | Measure-Object
# AD üzerindeki disable durumda olan tüm workstation objelerin sayısını getirir.#
$AllDisableWorkStation = Get-ADComputer -Filter 'operatingsystem -notlike "*server*" -and enabled -eq "false"' | Measure-Object
# Bu bölümde yukarıdaki değişkenlere atanmış komut setleri custom objelere atanır.#
$ComputersInfo = New-Object -TypeName PSCustomObject
$ComputersInfo |
Add-Member -MemberType NoteProperty -Name 'All Computers (Enable)' -Value $AllComputersEnable.Count -PassThru |
Add-Member -MemberType NoteProperty -Name 'All Computers (Disable)' -Value $AllComputersDisable.Count -PassThru |
Add-Member -MemberType NoteProperty -Name 'All Servers (Enable)' -Value $AllEnableServers.Count -PassThru |
Add-Member -MemberType NoteProperty -Name 'All Servers (Disable)' -Value $AllDisableServers.Count -PassThru |
Add-Member -MemberType NoteProperty -Name 'All Workstations (Enable)' -Value $AllEnableWorkStation.Count -PassThru |
Add-Member -MemberType NoteProperty -Name 'All Workstations (Disable)' -Value $AllDisableWorkStation.Count -PassThru
$ComputersInfo |Export-Excel C:\Temp\ADReport_$d.xlsx -Append -WorksheetName "ComputersInfo" -TableStyle Medium16 -Title "Computers Info" -TitleBold