PowerShell'i kullanarak tüm Etki Alanı Bilgisayarlarını yeniden başlatın
Bu makalede, Bilgisayarı Yeniden Başlat komutunu kullanarak tüm etki alanı bilgisayarlarının yeniden başlatılmasının nasıl zorlanacağını göstereceğim.
Hazırlık
Tüm Bilgisayar Adlarını Organizasyon Birimlerine Göre Listeleyin
Öncelikle tüm etki alanı bilgisayarlarının bir listesine ihtiyacım var. Temizlenmiş bir ortamda tüm etki alanı bilgisayarları ayrı bir kuruluş biriminde depolanır. Bu durumda tüm bilgisayarların listesine buradan ulaşılabilir.
(Get-ADComputer -Filter * -SearchBase "OU=Workstations,DC=pagr,DC=inet").Name | Out-File c:\Temp\computers.txt
Bilgisayar adları bir dosyada saklanır. Bir değişken de kullanabilirsiniz.
Tüm Bilgisayar Adlarını Özelliğe Göre Listeleyin
Daha önce de belirtildiği gibi düzenli ortamlar nadirdir. Etki alanı bilgisayarları yakınlarda bir yerde olabilir, bir tohuwabohu vardır (önemli bir ipucu: Konteyner Bilgisayarları). Daha sonra hepsini yakalamak için işletim sistemi özelliğini kullanarak arama yapabilirsiniz. Tüm istemci bilgisayarlar, ancak sunucu yok.
(Get-ADComputer -Filter 'operatingsystem -notlike "*server*"').Name | Out-File C:\Temp\computers.txt
Güvenlik Duvarı: WMI Gelen
WMI gelen güvenlik duvarı kuralının tüm etki alanı bilgisayarlarında etkinleştirilmesi gerekir. Bu manuel olarak veya Grup İlkeleri aracılığıyla yapılabilir.
Eylemde Yeniden Başlat
Tüm okuyucuların şimdi durup kendilerine şu soruyu sormalarını öneriyorum: "Gerçekten tüm bu bilgisayarları yeniden başlatmak istiyor musunuz?" ? Bilgisayar listesini dikkatli bir şekilde kontrol edin. Artık tüm bilgisayarlar yeniden başlatıldı. Açık dosyalar kaydedilmez ve kullanıcının oturumu kapatılır. Eğer “yanlış” olanı yakalarsanız bu hoş olmayan bir durum olabilir.
Restart-Computer -ComputerName (Get-Content C:\Temp\computers.txt) -Force -ErrorAction SilentlyContinue -ErrorVariable NoRestart
-Force parametresi, kullanıcılar oturum açmış olsa bile yeniden başlatmayı zorlar. -ErrorAction parametresi herhangi bir hata görüntülemez (veritabanındaki bilgisayarlar çevrimdışı olabilir). -ErrorVariable parametresi hataları NoRestart değişkeninde saklar.
Hatalar
Tamamladıktan sonra makine istemcim01'e erişilemediğini görebilirsiniz. Bu bilgi NoRestart değişkeninde saklanır.
Yeniden başlatılmayan bilgisayarların listesi bilgisayar adına göre kaydedilecektir. Kontrol etmek için tüm “Yeniden Başlatma Yok” bilgisayarlarını bilgisayar adına göre almak ve bunları bir dosyaya kaydetmek için aşağıdaki komutu çalıştırın.
$NoRestart.targetobject | Out-File C:\Temp\NoRestart.txt
Çözüm
Bu yaklaşım SCCM gibi Kurumsal Çözümlerin yerini almaz. Ancak Kurumsal Çözüm kullanamayanlar için bu makale, tüm Bilgisayarları PowerShell'de Tek Satırla yeniden başlatmak yararlı olabilir.
Tüm etki alanı bilgisayarlarında gpupdate'i zorunlu kılmak için şu makaleme bakın: PowerShell: Tüm Etki Alanı Bilgisayarlarında gpupdate'i zorla
Ortamınızı belgelemek için bkz.: PowerShell: Tüm Etki Alanı Bilgisayarlarında sistem bilgilerini çalıştırarak ortamınızı belgeleme


