Forum

Ad Powershell/Scrip...
 
Bildirimler
Hepsini Temizle

Ad Powershell/Scripts Konusunda Yardıma İhtiyacım Var

11 Yazılar
3 Üyeler
0 Reactions
388 Görüntüleme
(@volkancamur)
Gönderiler: 35
Eminent Member
Konu başlatıcı
 

Merhaba Arkadaşlar,

Kullanıcıların Şifresi Expires olmadan 7 gün önce kullanıcıya x gün kaldı şifreni değiştirmen gerekiyor diye sistem üzerinden otomatik mail attırıyorum. (All User)

 

Senaryo:

AD üzerinde oluşturmuş olduğum OU 'lerden herhangi birinin içinde bulunan kullanıcılar (No Domain User) x gün içinde şifresini değiştirmezse rondom olarak şifresini değiştirmek ve kullanıcıya bu şifreyi mail attırmak istiyorum. 

 

Bu işlemi AD / Task Scheduler üzerinden Script yolu gösterek yapmayı planlıyorum, Ayrıca third party uygulamalar kullanmak istemiyorum.

 

Konu hakkında desteğinizi rica ediyorum arkadaşlar.

Yardımcı olabilirseniz çok sevinirim.

Saygılarımla.

Bu konu 6 ay önce volkan camur tarafından düzenlendi
 
Gönderildi : 26/06/2024 15:18
Konu Etiketleri

(@volkancamur)
Gönderiler: 35
Eminent Member
Konu başlatıcı
 

Hakan hocam bu konu hakkında bilginiz var mı veya beni yönlendirebileceğiniz bir kullanıcı çok sevinirim @hakanuzuner

 
Gönderildi : 26/06/2024 17:38

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

Selam, çok özel bir istek, oturup yazmak lazım malum o da danışmanlığa girer, hazır bir şey olsa idi paylaşırdım. 

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 : 26/06/2024 17:42

(@volkancamur)
Gönderiler: 35
Eminent Member
Konu başlatıcı
 

Gönderen: @hakanuzuner

Selam, çok özel bir istek, oturup yazmak lazım malum o da danışmanlığa girer, hazır bir şey olsa idi paylaşırdım. 

 

Değerli hocam benim elimde kullanıcının adını ve kalan süresini sorgulayan ve mail atan çalışan bir script var şuanda belki bunu düzenlemek daha kolay olabilir, eğer kalan gün sayısı 1 ise rondom şifre verip, şifresini mail attırmak lazım.

Ayrıca dediğiniz gibi danışmanlık konu ise ücreti nedir bilgi verebilirseniz çok sevinirim.

 

 

 
Gönderildi : 26/06/2024 17:47

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

ÇözümPark, gönüllülük esasına dayanıyor, ben zaten ITSTACK ve diğer şirketlerimden profesyonel olarak para kazanıyorum, buradaki vaktim ise gönüllü olarak harcıyorum ondan benim bir ücret talebim yok ama buradan bu şekilde profesyonel hizmet vermiyorum. Yapan birisi var ise belki hazır elinde komut seti olan veya bana göre zamanı daha uygun olan birileri oturup gönüllü yardımcı olabilirler sana.

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 : 26/06/2024 17:53

(@volkancamur)
Gönderiler: 35
Eminent Member
Konu başlatıcı
 

Gönderen: @hakanuzuner

ÇözümPark, gönüllülük esasına dayanıyor, ben zaten ITSTACK ve diğer şirketlerimden profesyonel olarak para kazanıyorum, buradaki vaktim ise gönüllü olarak harcıyorum ondan benim bir ücret talebim yok ama buradan bu şekilde profesyonel hizmet vermiyorum. Yapan birisi var ise belki hazır elinde komut seti olan veya bana göre zamanı daha uygun olan birileri oturup gönüllü yardımcı olabilirler sana.

 

Anladım peki teşekkür ederim umarım bir arkadaş bu konuda bana yardımcı olur.

 

 
Gönderildi : 27/06/2024 10:16

(@serkanates)
Gönderiler: 1323
Üye
 

Ayrıca bknz: ChatGPT

 
Gönderildi : 28/06/2024 11:37

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

Serkan aslında tam öyle değil, bende GPT4o hesabı var, kıyak olsun diye yazdırayım dedim örnek smtp tarafı sorun orayı eklemedi, şimdi öyle versen mail atmadı diyecek, sonra relay ayarları, spam düşmesi yani gpt için bile bir kaç kodu birleştirmek lazım, özetle uğraşmak lazım. Ondan dedim hazırda birisinde var ise ki sanmıyorum paylaşır, veya vakti çok olan birisi oturur yazar, test eder paylaşır.

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 : 28/06/2024 16:10

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

Ben en azından GPT' nin verdiği kodları buraya ekliyorum, biraz ekleme, çıkarma ile çözersin sanki

Kullanıcıların Şifrelerini Değiştirmesi için Hatırlatma Göndermek

Import-Module ActiveDirectory

# Hatırlatma gönderme süresi (gün)
$reminderDays = 7
# Şifresini değiştirmesi gereken gün sayısı
$passwordExpirationDays = 30

# Kullanıcıları al
$users = Get-ADUser -Filter {Enabled -eq $true -and PasswordNeverExpires -eq $false -and PasswordLastSet -le (Get-Date).AddDays(-$passwordExpirationDays + $reminderDays)} -Properties PasswordLastSet, EmailAddress

foreach ($user in $users) {
$daysLeft = $passwordExpirationDays - ((Get-Date) - $user.PasswordLastSet).Days

if ($daysLeft -le $reminderDays) {
$emailAddress = $user.EmailAddress
$username = $user.SamAccountName

# Hatırlatma e-postası gönderme
$subject = "Şifre Değiştirme Hatırlatma"
$body = "Merhaba $username, Şifrenizin süresi dolmak üzere. Lütfen şifrenizi $daysLeft gün içinde değiştiriniz."

Send-MailMessage -To $emailAddress -From "[email protected]" -Subject $subject -Body $body -SmtpServer "smtp.yourdomain.com"
}
}

Şifresini Değiştirmeyen Kullanıcıların Şifrelerini Rastgele Değiştirmek

Import-Module ActiveDirectory

# Şifresini değiştirmesi gereken gün sayısı
$passwordExpirationDays = 30

# Kullanıcıları al
$users = Get-ADUser -Filter {Enabled -eq $true -and PasswordNeverExpires -eq $false -and PasswordLastSet -le (Get-Date).AddDays(-$passwordExpirationDays)} -Properties PasswordLastSet, EmailAddress

foreach ($user in $users) {
# Rastgele şifre oluştur
$newPassword = [System.Web.Security.Membership]::GeneratePassword(12, 3)

# Şifreyi güncelle
Set-ADAccountPassword -Identity $user -Reset -NewPassword (ConvertTo-SecureString -AsPlainText $newPassword -Force)
Set-ADUser -Identity $user -PasswordNeverExpires $false

$emailAddress = $user.EmailAddress
$username = $user.SamAccountName

# Yeni şifreyi e-posta ile gönderme
$subject = "Yeni Şifreniz"
$body = "Merhaba $username, Şifrenizi zamanında değiştirmediğiniz için yeni şifreniz oluşturulmuştur. Yeni şifreniz: $newPassword"

Send-MailMessage -To $emailAddress -From "[email protected]" -Subject $subject -Body $body -SmtpServer "smtp.yourdomain.com"
}

Scripti Task Scheduler ile Çalıştırma

  1. PowerShell scriptini bir .ps1 dosyası olarak kaydedin.
  2. Task Scheduler'ı açın ve yeni bir görev oluşturun.
  3. "Actions" sekmesinde "New" butonuna tıklayın.
  4. "Action" olarak "Start a Program" seçin ve program/script olarak powershell.exe yazın.
  5. "Add arguments (optional)" kısmına aşağıdaki argümanları ekleyin

-File "C:\Path\To\YourScript.ps1"

 

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 : 28/06/2024 16:14

(@volkancamur)
Gönderiler: 35
Eminent Member
Konu başlatıcı
 

Gönderen: @hakanuzuner

Ben en azından GPT' nin verdiği kodları buraya ekliyorum, biraz ekleme, çıkarma ile çözersin sanki

Kullanıcıların Şifrelerini Değiştirmesi için Hatırlatma Göndermek

Import-Module ActiveDirectory

 

# Hatırlatma gönderme süresi (gün)
$reminderDays = 7
# Şifresini değiştirmesi gereken gün sayısı
$passwordExpirationDays = 30

# Kullanıcıları al
$users = Get-ADUser -Filter {Enabled -eq $true -and PasswordNeverExpires -eq $false -and PasswordLastSet -le (Get-Date).AddDays(-$passwordExpirationDays + $reminderDays)} -Properties PasswordLastSet, EmailAddress

foreach ($user in $users) {
$daysLeft = $passwordExpirationDays - ((Get-Date) - $user.PasswordLastSet).Days

if ($daysLeft -le $reminderDays) {
$emailAddress = $user.EmailAddress
$username = $user.SamAccountName

# Hatırlatma e-postası gönderme
$subject = "Şifre Değiştirme Hatırlatma"
$body = "Merhaba $username, Şifrenizin süresi dolmak üzere. Lütfen şifrenizi $daysLeft gün içinde değiştiriniz."

Send-MailMessage -To $emailAddress -From "[email protected]" -Subject $subject -Body $body -SmtpServer "smtp.yourdomain.com"
}
}

Şifresini Değiştirmeyen Kullanıcıların Şifrelerini Rastgele Değiştirmek

Import-Module ActiveDirectory

 

# Şifresini değiştirmesi gereken gün sayısı
$passwordExpirationDays = 30

# Kullanıcıları al
$users = Get-ADUser -Filter {Enabled -eq $true -and PasswordNeverExpires -eq $false -and PasswordLastSet -le (Get-Date).AddDays(-$passwordExpirationDays)} -Properties PasswordLastSet, EmailAddress

foreach ($user in $users) {
# Rastgele şifre oluştur
$newPassword = [System.Web.Security.Membership]::GeneratePassword(12, 3)

# Şifreyi güncelle
Set-ADAccountPassword -Identity $user -Reset -NewPassword (ConvertTo-SecureString -AsPlainText $newPassword -Force)
Set-ADUser -Identity $user -PasswordNeverExpires $false

$emailAddress = $user.EmailAddress
$username = $user.SamAccountName

# Yeni şifreyi e-posta ile gönderme
$subject = "Yeni Şifreniz"
$body = "Merhaba $username, Şifrenizi zamanında değiştirmediğiniz için yeni şifreniz oluşturulmuştur. Yeni şifreniz: $newPassword"

Send-MailMessage -To $emailAddress -From "[email protected]" -Subject $subject -Body $body -SmtpServer "smtp.yourdomain.com"
}

Scripti Task Scheduler ile Çalıştırma

  1. PowerShell scriptini bir .ps1 dosyası olarak kaydedin.
  2. Task Scheduler'ı açın ve yeni bir görev oluşturun.
  3. "Actions" sekmesinde "New" butonuna tıklayın.
  4. "Action" olarak "Start a Program" seçin ve program/script olarak powershell.exe yazın.
  5. "Add arguments (optional)" kısmına aşağıdaki argümanları ekleyin

-File "C:\Path\To\YourScript.ps1"

 

 

Öncelikle değerli desteğiniz için çok teşekkür ederim yarın deneyeceğim, bu arada bunu belirli bir klasöre uygulayabilirmiyiz ? örnek OU saha klasörü içindeki kullanıcılara uygulamak istiyorum domainde olmayan kullanıcılara mümkün mü acaba.

 

 
Gönderildi : 28/06/2024 16:37

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

Tabi, ou isminde bir değişken eklemen lazım komutlara, ben ilkine ekledimi diğerine ekleyebilirsin.

Import-Module ActiveDirectory

# Hatırlatma gönderme süresi (gün)
$reminderDays = 7
# Şifresini değiştirmesi gereken gün sayısı
$passwordExpirationDays = 30

# Belirli bir OU'daki kullanıcıları al
$ou = "OU=YourOU,DC=yourdomain,DC=com"
$users = Get-ADUser -Filter {Enabled -eq $true -and PasswordNeverExpires -eq $false -and PasswordLastSet -le (Get-Date).AddDays(-$passwordExpirationDays + $reminderDays)} -Properties PasswordLastSet, EmailAddress -SearchBase $ou

foreach ($user in $users) {
$daysLeft = $passwordExpirationDays - ((Get-Date) - $user.PasswordLastSet).Days

if ($daysLeft -le $reminderDays) {
$emailAddress = $user.EmailAddress
$username = $user.SamAccountName

# Hatırlatma e-postası gönderme
$subject = "Şifre Değiştirme Hatırlatma"
$body = "Merhaba $username, Şifrenizin süresi dolmak üzere. Lütfen şifrenizi $daysLeft gün içinde değiştiriniz."

Send-MailMessage -To $emailAddress -From "[email protected]" -Subject $subject -Body $body -SmtpServer "smtp.yourdomain.com"
}
}

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 : 28/06/2024 18:48

Paylaş: