Windows’ta yerel kullanıcı ve grup yönetimi, bir bilgisayarın kendi hesap veritabanındaki (SAM) kullanıcıları oluşturmak, parolalarını ve parola bayraklarını ayarlamak ve bu hesapları yerel gruplara eklemek demektir. 2018’de bu işleri kısa VBScript dosyalarıyla yapıyorduk; bugün doğru araç PowerShell’in Microsoft.PowerShell.LocalAccounts modülü, çok sayıda bilgisayardaki yerel yönetici parolası için ise Windows LAPS.
Bu sayfa, sitede ayrı ayrı duran dört eski notu (kullanıcı oluşturma, parola sıfırlama, “parola asla sona ermesin” ve yerel yönetici grubuna domain grubu ekleme) tek rehberde birleştiriyor. Her görevde önce eski betiğin düzeltilmiş ve açıklamalı hâlini, sonra PowerShell karşılığını veriyorum. PowerShell’e yeniyseniz önce PowerShell’e giriş rehberine göz atın.
VBScript neden emekliye ayrılıyor?
Microsoft, VBScript’i Ekim 2023’te Windows’un kullanımdan kaldırılan özellikler (deprecated features) listesine ekledi. Mayıs 2024’te Windows IT Pro Blog’da yayımlanan “VBScript deprecation: Timelines and next steps” yazısı süreci üç aşamada tanımlıyor:
| Aşama | Zaman | Ne oluyor? |
|---|---|---|
| 1 | Windows 11 24H2 ile | VBScript isteğe bağlı özellik (Feature on Demand, FoD) oldu; önceden yüklü ve varsayılan olarak açık. |
| 2 | 2027 civarı | FoD varsayılan olarak kapalı gelecek; ihtiyacı olan Ayarlar > Sistem > İsteğe bağlı özellikler’den elle açacak. |
| 3 | 2027 sonrası, tarih belirsiz | VBScript Windows’tan çıkarılacak; tüm VBScript DLL’leri kaldırılacağı için ona bağlı projeler çalışmayacak. |
Microsoft’un önerdiği iki yol PowerShell ve JavaScript. Yönetim betikleri için doğal geçiş hedefi PowerShell. Bir bilgisayarda VBScript özelliğinin durumunu şöyle görebilirsiniz:
Get-WindowsCapability -Online | Where-Object Name -like 'VBSCRIPT*' |
Select-Object Name, State # yönetici oturumunda çalıştırın
Geçişi planlamak için önce nerede VBScript kullandığınızı bulmanız gerekiyor. Microsoft’un Mayıs 2025 tarihli “Detection strategies” yazısı dört yol öneriyor: Sysmon ile vbscript.dll yüklenmelerini izlemek (Olay Kimliği 7), Grup İlkesi oturum açma/başlangıç betiklerini ve zamanlanmış görevleri taramak, dosya sistemindeki .vbs dosyalarını envanterlemek ve özel MSI paketlerindeki gömülü VBScript özel eylemlerini (custom action) kontrol etmek. İlk tarama için iki sorgu iyi bir başlangıç. Birincisi, Grup İlkesi betiklerinin çoğunlukla durduğu SYSVOL’deki .vbs dosyalarını listeler:
Get-ChildItem -Path "\\$env:USERDNSDOMAIN\SYSVOL" -Filter *.vbs -Recurse -ErrorAction SilentlyContinue |
Select-Object FullName, LastWriteTime
İkincisi, wscript, cscript ya da doğrudan .vbs çağıran zamanlanmış görevleri bulur:
Get-ScheduledTask | ForEach-Object {
foreach ($eylem in $_.Actions) {
$komut = "$($eylem.Execute) $($eylem.Arguments)"
if ($komut -match 'wscript|cscript|\.vbs') {
[pscustomobject]@{ Gorev = $_.TaskPath + $_.TaskName; Komut = $komut }
}
}
}
Başlamadan önce: yetki, modül ve PowerShell sürümü
- Yönetici yetkisi: Kullanıcı ve grup değiştiren her komut yükseltilmiş (Run as administrator) oturum ister. Betiklerin başına
#Requires -RunAsAdministratorkoymak, yetkisiz çalıştırmayı baştan engeller. - Modül:
Microsoft.PowerShell.LocalAccounts, Windows 10 / Windows Server 2016 ve sonrasında Windows PowerShell 5.1 ile birlikte gelir. Belgelere göre 64 bit sistemde 32 bit PowerShell’de kullanılamaz. - PowerShell 7: Microsoft modülü PowerShell 7 ile yerel olarak uyumlu listeliyor; ancak bazı 7.x sürümlerinde tür yükleme hatası bildirildi. Böyle bir hatada
Import-Module Microsoft.PowerShell.LocalAccounts -UseWindowsPowerShellile uyumluluk katmanını kullanın ya da betiği Windows PowerShell 5.1’de çalıştırın. - Kodlama: VBScript (Windows Script Host) dosyaları ANSI ya da UTF-16 okunur, UTF-8 desteklemez; bu yüzden aşağıdaki VBScript örneklerinde metinleri ASCII tuttum. PowerShell betiklerini 5.1’de çalıştıracaksanız UTF-8 BOM’lu kaydedin.
Görev 1: Yerel kullanıcı oluşturmak
Eski VBScript, düzeltilmiş hâliyle
Orijinal notta parola betiğin içinde düz metin duruyordu ve bağlama yolu ("WinNT://" & strComputer & "") belirsizdi. Düzeltilmiş hâli:
' yerel-kullanici-olustur.vbs - yonetici komut isteminde: cscript //nologo yerel-kullanici-olustur.vbs
Option Explicit
Dim strComputer, strUser, strPassword, objComputer, objUser
strComputer = "." ' "." = bu bilgisayar
strUser = "kullanici05"
strPassword = "<GUCLU-PAROLA>" ' Yer tutucu. Gercek parolayi dosyaya yazmayin.
' ",computer" eki, WinNT saglayicisina bilgisayar nesnesine baglandigimizi soyler
Set objComputer = GetObject("WinNT://" & strComputer & ",computer")
Set objUser = objComputer.Create("user", strUser)
objUser.SetPassword strPassword
objUser.SetInfo ' Hesap ancak SetInfo ile SAM'e yazilir
WScript.Echo strUser & " olusturuldu."
VBScript’in temel sorunu burada görünüyor: parolayı gizli girdi olarak almanın yerleşik bir yolu yok. InputBox bile parolayı ekranda açık gösterir.
PowerShell karşılığı
#Requires -RunAsAdministrator
$parola = Read-Host -Prompt 'kullanici05 icin parola' -AsSecureString
$params = @{
Name = 'kullanici05' # en fazla 20 karakter
Password = $parola # SecureString; ekranda ve geçmişte görünmez
FullName = 'Vardiya Operatoru'
Description = 'Uretim hatti A vardiya PC' # en fazla 48 karakter
}
$kullanici = New-LocalUser @params
if ((Get-LocalGroupMember -SID 'S-1-5-32-545').SID -notcontains $kullanici.SID) {
# Users grubu (S-1-5-32-545): adı dil sürümüne göre değişir, SID değişmez
Add-LocalGroupMember -SID 'S-1-5-32-545' -Member $kullanici
}
New-LocalUser için kullanıcı adı en fazla 20 karakter, açıklama en fazla 48 karakter olabilir; parola 127 karakteri geçemez. -PasswordNeverExpires, -UserMayNotChangePassword, -AccountExpires ve -Disabled gibi bayrakları hesap oluşturulurken de verebilirsiniz.
Görev 2: Parolayı sıfırlamak ve “sonraki oturumda değiştirsin” bayrağı
Eski not, yerel yönetici hesabının parolasını değiştirip PasswordExpired değerini 0 yapıyordu. Bu değer “kullanıcı bir sonraki oturum açışta parolayı değiştirmeli” bayrağıdır: 0 zorunluluğu kaldırır, 1 zorunlu kılar.
Option Explicit
Dim objUser
Set objUser = GetObject("WinNT://./yerelyonetici,user")
objUser.SetPassword "<YENI-PAROLA>" ' Yer tutucu
objUser.Put "PasswordExpired", 0 ' 0 = zorunluluk yok, 1 = sonraki oturumda degistirmeli
objUser.SetInfo
PowerShell’de parola Set-LocalUser ile değişir. LocalAccounts modülünde “sonraki oturumda değiştirsin” için ayrı bir parametre yok; bunun için aynı ADSI özelliğini ya da net user komutunu kullanıyoruz:
#Requires -RunAsAdministrator
$yeni = Read-Host -Prompt 'Yeni parola' -AsSecureString
Set-LocalUser -Name 'yerelyonetici' -Password $yeni
$adsi = [ADSI]"WinNT://$env:COMPUTERNAME/yerelyonetici,user"
$adsi.Put('PasswordExpired', 1) # 1 = sonraki oturumda değiştirmeli, 0 = zorunluluk yok
$adsi.SetInfo()
Get-LocalUser -Name 'yerelyonetici' |
Select-Object Name, Enabled, PasswordLastSet, PasswordExpires, UserMayChangePassword
Komut isteminde (cmd) aynı bayrağın karşılığı net user yerelyonetici /logonpasswordchg:yes komutudur.
Görev 3: “Parola asla sona ermesin” ayarı
Üçüncü not, kullanıcı bayraklarına ADS_UF_DONT_EXPIRE_PASSWD (0x10000) bitini ekliyordu. Mantık doğruydu; eksik olan, bitin zaten açık olup olmadığını kontrol etmek ve geri alma yolunu göstermekti:
Option Explicit
Const ADS_UF_DONT_EXPIRE_PASSWD = &H10000
Dim objUser, intFlags
Set objUser = GetObject("WinNT://./kullanici05,user")
intFlags = objUser.Get("UserFlags")
If (intFlags And ADS_UF_DONT_EXPIRE_PASSWD) = 0 Then
objUser.Put "UserFlags", intFlags Or ADS_UF_DONT_EXPIRE_PASSWD
' Geri almak icin: intFlags And (Not ADS_UF_DONT_EXPIRE_PASSWD)
objUser.SetInfo
End If
PowerShell’de bit işlemine gerek yok:
Set-LocalUser -Name 'kullanici05' -PasswordNeverExpires $true # geri almak için $false
Get-LocalUser | Where-Object { $_.Enabled -and -not $_.PasswordExpires } |
Select-Object Name, PasswordLastSet, Description # parolası süresiz etkin hesaplar
Not: Yerel “En uzun parola kullanım süresi” ilkesi 0 ise PasswordExpires tüm hesaplarda boş görünür; listeyi yorumlarken bunu hesaba katın.
Bu ayarın gerçek güvenlik riski
Microsoft, Windows 10 1903 güvenlik temelinde (security baseline) periyodik parola değişimi zorunluluğunu kaldırdı ve bunu düşük değerli, eski bir önlem olarak niteledi. Yani “parola süresiz” bayrağı kendi başına kırmızı alarm değil. Sahada gördüğüm asıl sorun başka: yerel yönetici ve hizmet hesaplarında aynı parolanın onlarca bilgisayarda yıllarca değişmeden durması. Bir bilgisayarda ele geçirilen parola ya da parola özeti (hash), aynı parolayı taşıyan her bilgisayarın kapısını açar; Microsoft’un LAPS belgesi bunu yanal hareket (lateral movement) riski olarak açıkça anlatıyor.
Benim önerim şu ayrım:
- Gerçek kişiler: Mümkünse yerel hesap değil, çok faktörlü kimlik doğrulamalı domain ya da Microsoft Entra ID hesabı.
- Yerel yönetici: Parolası Windows LAPS ile cihaza özel ve düzenli döndürülen tek hesap.
- Hizmetler: Parolası elle yönetilen “süresiz” kullanıcı yerine yönetilen hizmet hesabı (gMSA) ya da sanal hizmet hesabı.
Görev 4: Yerel Administrators grubuna domain grubu eklemek
Dördüncü not, “External” domain’indeki “ServerAdmins” grubunu yerel Administrators grubuna ekliyordu. İki hatası vardı: On Error Resume Next yorum satırı olduğu için hata yakalama hiç çalışmıyordu ve kullanılan ole.err nesnesi Windows’un standart bir bileşeni değildi. Üstelik grup adı “Administrators” diye sabit yazılmıştı; Türkçe Windows’ta bu grubun adı “Yöneticiler” olduğu için betik orada doğrudan hata verir. Düzeltilmiş hâli grubu SID’iyle buluyor:
Option Explicit
Dim strDomain, strGroup, strComputer, objWMI, colGroups, objGroup, strAdmins, objLocal
strDomain = "CONTOSO" ' NetBIOS domain adi
strGroup = "ServerAdmins" ' Eklenecek domain grubu
strComputer = CreateObject("WScript.Network").ComputerName
' Yerlesik Administrators grubunun yerel adini SID ile bul
Set objWMI = GetObject("winmgmts:\\.\root\cimv2")
Set colGroups = objWMI.ExecQuery( _
"SELECT Name FROM Win32_Group WHERE LocalAccount = TRUE AND SID = 'S-1-5-32-544'")
For Each objGroup In colGroups
strAdmins = objGroup.Name
Next
Set objLocal = GetObject("WinNT://" & strComputer & "/" & strAdmins & ",group")
If objLocal.IsMember("WinNT://" & strDomain & "/" & strGroup) Then
WScript.Echo "Zaten uye."
Else
On Error Resume Next
objLocal.Add "WinNT://" & strDomain & "/" & strGroup
If Err.Number <> 0 Then
WScript.Echo "Hata 0x" & Hex(Err.Number) & ": " & Err.Description
WScript.Quit 1
End If
On Error GoTo 0
WScript.Echo "Eklendi."
End If
PowerShell karşılığı dört satır. Add-LocalGroupMember, üye zaten gruptaysa hata verdiği için önce kontrol ediyoruz:
#Requires -RunAsAdministrator
$uye = 'CONTOSO\ServerAdmins'
$mevcut = Get-LocalGroupMember -SID 'S-1-5-32-544'
if ($mevcut.Name -notcontains $uye) { Add-LocalGroupMember -SID 'S-1-5-32-544' -Member $uye }
CSV’den toplu kullanıcı oluşturmak
Vardiya bilgisayarları, laboratuvar ya da kiosk gibi domain’e alınamayan cihazlarda birden çok yerel hesabı elle açmak hata üretir. CSV dosyası şöyle olabilir; GroupSid sütunu isteğe bağlı ek grubu tutar (S-1-5-32-555, yerleşik Remote Desktop Users grubudur):
Name,FullName,Description,GroupSid
vardiya01,Vardiya Operatoru 1,Uretim hatti A,
kalite01,Kalite Kontrol,Laboratuvar PC,S-1-5-32-555
Betik her kullanıcıya rastgele bir ilk parola üretir, hesabı açar, gruplara ekler ve ilk oturumda parola değişimini zorunlu kılar. Parolalar CSV’de tutulmaz:
#Requires -RunAsAdministrator
param([Parameter(Mandatory)][string]$CsvPath)
function New-RandomPassword {
param([ValidateRange(14, 64)][int]$Length = 16)
# 64 karakterlik küme: 256, 64'e tam bölündüğü için bayt->karakter eşlemesi eşit dağılır
$chars = 'ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789!#%*+-=?'
$rng = [System.Security.Cryptography.RandomNumberGenerator]::Create()
do {
$bytes = [byte[]]::new($Length)
$rng.GetBytes($bytes)
$pw = -join ($bytes | ForEach-Object { $chars[$_ % $chars.Length] })
} until ($pw -cmatch '[A-Z]' -and $pw -cmatch '[a-z]' -and $pw -match '\d' -and $pw -match '[^A-Za-z0-9]')
$pw
}
$sonuc = foreach ($satir in Import-Csv -Path $CsvPath -Encoding UTF8) {
if (Get-LocalUser -Name $satir.Name -ErrorAction SilentlyContinue) {
Write-Warning "$($satir.Name) zaten var, atlandi."
continue
}
$ilkParola = New-RandomPassword
$kullanici = New-LocalUser -Name $satir.Name -FullName $satir.FullName `
-Description $satir.Description `
-Password (ConvertTo-SecureString $ilkParola -AsPlainText -Force)
# Users grubu; kullanıcı zaten üyeyse gelen hatayı yok say
Add-LocalGroupMember -SID 'S-1-5-32-545' -Member $kullanici -ErrorAction SilentlyContinue
if ($satir.GroupSid) { Add-LocalGroupMember -SID $satir.GroupSid -Member $kullanici }
# İlk oturumda parolayı değiştirmeye zorla
$adsi = [ADSI]"WinNT://$env:COMPUTERNAME/$($satir.Name),user"
$adsi.Put('PasswordExpired', 1)
$adsi.SetInfo()
[pscustomobject]@{ Kullanici = $satir.Name; IlkParola = $ilkParola }
}
$sonuc | Format-Table -AutoSize
İlk parolaları ekrandan güvenli bir kanalla (ör. parola kasası) iletin ve dosyaya kaydetmeyin. Aynı betiği önce New-LocalUser ve Add-LocalGroupMember satırlarına -WhatIf ekleyerek kuru çalıştırmak iyi bir alışkanlıktır.
Uzak bilgisayarlarda Invoke-Command ile çalışmak
Aynı işi birçok bilgisayarda yapmak için PowerShell uzaktan yönetimi (remoting) kullanılır. Windows Server’da varsayılan olarak açıktır; Windows istemcilerde Enable-PSRemoting ile ya da Grup İlkesi’yle açmanız gerekir. Invoke-Command, uzak tarafta varsayılan olarak Windows PowerShell 5.1 uç noktasına bağlandığı için LocalAccounts modülü orada sorunsuz çalışır. Önce denetim: her bilgisayarın yerel Administrators grubunda kimler var?
$bilgisayarlar = Get-Content -Path .\bilgisayarlar.txt # her satırda bir ad
Invoke-Command -ComputerName $bilgisayarlar -ScriptBlock {
Get-LocalGroupMember -SID 'S-1-5-32-544' | Select-Object Name, ObjectClass, PrincipalSource
} | Sort-Object PSComputerName |
Format-Table PSComputerName, Name, ObjectClass, PrincipalSource -AutoSize
Sonra değişiklik: domain grubunu, yoksa, ekleyin. Yerel değişkenleri uzak betik bloğuna $using: ile taşırsınız:
$grup = 'CONTOSO\ServerAdmins'
Invoke-Command -ComputerName $bilgisayarlar -ScriptBlock {
$uyeler = Get-LocalGroupMember -SID 'S-1-5-32-544'
if ($uyeler.Name -notcontains $using:grup) {
Add-LocalGroupMember -SID 'S-1-5-32-544' -Member $using:grup
[pscustomobject]@{ Durum = 'eklendi' }
} else {
[pscustomobject]@{ Durum = 'zaten uye' }
}
}
Invoke-Command çıktısına bilgisayar adını PSComputerName olarak kendisi ekler. Tek seferlik düzeltmeler için bu yöntem hızlıdır; kalıcı durum için ise Grup İlkesi’nin kısıtlı gruplar / yerel kullanıcılar ve gruplar tercihlerini ya da Intune’un yerel grup üyeliği ilkesini kullanın. Aksi hâlde birisi elle bir üye eklediğinde kimse fark etmez. Domain tarafındaki kontroller için Active Directory kurulum doğrulama rehberine de bakabilirsiniz.
Windows LAPS ile yerel yönetici parolası
Invoke-Command ile yüz bilgisayarın yerel yönetici parolasını aynı değere çekmek teknik olarak mümkün, ama tam da kaçınılması gereken şey bu. Windows LAPS (Local Administrator Password Solution) her cihazın yerel yönetici parolasını ayrı üretir, düzenli döndürür ve Active Directory’ye ya da Microsoft Entra ID’ye yedekler; yetkili yöneticiler gerektiğinde okur.
Microsoft Learn’e göre Windows LAPS, 11 Nisan 2023 güncellemeleriyle Windows 10, Windows 11 21H2/22H2, Windows Server 2019 ve 2022’ye geldi; Windows 11 23H2 ve Windows Server 2025’te yerleşik. Eski (legacy) Microsoft LAPS ürünü Windows 11 23H2 ve sonrasında kullanımdan kaldırıldı ve yeni sürümler eski MSI’ın kurulumunu engelliyor. Özellik ücretsiz; Entra ID’ye yedekleme için Entra ID Free lisansı yeterli.
Active Directory senaryosu dört adımdan oluşur:
- Orman düzeyinde bir kez şema güncellemesi (Schema Admins yetkisi gerekir).
- Bilgisayarların bulunduğu OU’ya, cihazların kendi parolalarını yazabilmesi için izin.
- Parolayı okuyacak grup (ör. yardım masası) için okuma izni.
- Grup İlkesi’nde Bilgisayar Yapılandırması > Yönetim Şablonları > Sistem > LAPS altında “Configure password backup directory” ayarını Active Directory yapmak.
İlk üç adımın komutları:
Update-LapsADSchema -Verbose
Set-LapsADComputerSelfPermission -Identity 'OU=Sunucular,DC=contoso,DC=local'
Set-LapsADReadPasswordPermission -Identity 'OU=Sunucular,DC=contoso,DC=local' `
-AllowedPrincipals 'CONTOSO\LAPS-Okuyucular'
İlke uygulandıktan sonra günlük kullanım:
Invoke-LapsPolicyProcessing # cihazda: ilkeyi beklemeden işle
Get-LapsADPassword -Identity 'SRV01' -AsPlainText # yönetici makinesinde: parolayı oku
Reset-LapsPassword # cihazda: parolayı hemen döndür
LAPS ilkeyi saatte bir işler; parolanın AD’ye yazıldığını cihazın LAPS olay günlüğündeki 10018 kimlikli olaydan doğrulayabilirsiniz.
İki ayrıntı önemli. Birincisi, özel bir yönetici hesabı belirtmezseniz LAPS yerleşik Administrator hesabını adıyla değil, iyi bilinen göreli kimliğiyle (RID) bulur; yani dil sürümü sorun olmaz. İkincisi, özel bir hesap kullanacaksanız LAPS o hesabı oluşturmaz; hesabı yukarıdaki New-LocalUser ile ya da Intune/GPO ile sizin açmanız gerekir. Windows 11 24H2 ve Windows Server 2025’te gelen otomatik hesap yönetimi (Automatic Account Management) ayarları bu adımı da LAPS’e bırakmanıza izin veriyor.
Kontrol listesi
- VBScript envanterini çıkarın: SYSVOL betikleri, zamanlanmış görevler,
.vbsdosyaları ve MSI özel eylemleri. - Her VBScript görevini
Microsoft.PowerShell.LocalAccountscmdlet’leriyle yeniden yazın; parolaları yalnızca SecureString olarak alın. - Yerleşik grupları adla değil SID ile hedefleyin (Administrators S-1-5-32-544, Users S-1-5-32-545, Remote Desktop Users S-1-5-32-555).
- “Parola süresiz” bayrağı taşıyan hesapları listeleyin; yerel yönetici için LAPS’e, hizmetler için gMSA’ya geçin.
- Toplu ve uzak değişiklikleri önce
-WhatIfile deneyin, kalıcı durumu GPO ya da Intune ile yönetin.
Aynı eski not setinden güncellenen diğer iki rehber: USB depolama aygıtlarını engelleme ve Windows önyükleme onarımı.
Sık sorulan sorular
VBScript Windows'tan ne zaman kaldırılacak?
Microsoft'un Mayıs 2024'te yayımladığı plana göre VBScript, Windows 11 24H2'de önceden yüklü ve varsayılan olarak açık bir isteğe bağlı özellik (Feature on Demand). 2027 civarında varsayılan olarak kapatılacak ama elle açılabilecek; tarihi henüz belirlenmemiş son aşamada ise VBScript DLL'leriyle birlikte Windows'tan tamamen çıkarılacak.
PowerShell ile yerel kullanıcı nasıl oluşturulur?
Yönetici olarak açılmış PowerShell'de parolayı $pw = Read-Host -AsSecureString ile güvenli biçimde alın, ardından New-LocalUser -Name 'kullanici05' -Password $pw -FullName 'Ad Soyad' komutunu çalıştırın. Gruba eklemek için Add-LocalGroupMember kullanılır; yerleşik gruplarda grup adı yerine SID vermek daha güvenlidir.
Yerel hesapta 'parola asla sona ermesin' ayarı güvenli mi?
Tek başına sorun değildir; Microsoft da periyodik parola değişimini artık zorunlu tutmuyor. Asıl risk, yerel yönetici ve hizmet hesaplarında aynı parolanın yıllarca ve birçok bilgisayarda değişmeden kalmasıdır. Yerel yönetici için Windows LAPS, hizmetler için yönetilen hizmet hesapları tercih edilmelidir.
Windows LAPS nedir, ek lisans gerektirir mi?
Windows LAPS, yerel yönetici hesabının parolasını her cihaz için ayrı üreten, düzenli değiştiren ve Active Directory ya da Microsoft Entra ID'ye yedekleyen yerleşik Windows özelliğidir. Nisan 2023 güncellemeleriyle Windows 10/11 ve Windows Server 2019/2022'ye geldi; ücretsizdir, Entra ID yedeklemesi için Entra ID Free lisansı yeterlidir.
Kaynaklar
- VBScript deprecation: Timelines and next steps (Windows IT Pro Blog) techcommunity.microsoft.com
- VBScript deprecation: Detection strategies for Windows (Windows IT Pro Blog) techcommunity.microsoft.com
- Deprecated features in the Windows client (Microsoft Learn) learn.microsoft.com
- New-LocalUser (Microsoft.PowerShell.LocalAccounts) learn.microsoft.com
- Add-LocalGroupMember (Microsoft.PowerShell.LocalAccounts) learn.microsoft.com
- Windows LAPS overview (Microsoft Learn) learn.microsoft.com