Forum
Merhaba
Tüm clientlara bir çeşit zamanlanmış Logoff script eklemem gerekiyor
Bu görevi tek seferde serverdan tüm clientlara nasıl dağıtabilirim ?
Asagidaki post'ta benzer konu tartisilmisti ve komut satirindan nasil zamanlanmis gorev eklenecegine dair bir ornek vermistim.
http://www.cozumpark.com/forums/thread/92286.aspx
Active d. account özelliklerindeki logon hours ayarıyla ilgili bişe sormadım ben Murat bey.
hazırlayacagım bir schedule task i eklemek istiyorum clientlara server dan
Logon hours ayarını yaptıgımda logoff yapmıyor .
Schedule task olarak logoff komutu çalıştıracağım bu sefer logon hours policy sine takılacaklar
Logoff olması için yine gpo dan force etmeniz gerekir. İlgili GPO ayarını altta yazıyorum
Computer Configuration >> Windows Settings >> Security
Settings >> Local Policies >> Security Options
>>
set the "force logoff when logon hours expire"
Murat bey o ayar zaten tanımlı logoff yapmıoyr SMB oturmlarını sonlandırıyor !
Arkadaslar yukarida gondermis oldugum linki incelediniz mi ? Bu konu daha once konusulmustu ve en son Serhat Bey'in asagidaki cevabi ile nihayi kararina varilmisti. Ayni mesaj icerisinde komut satirindan client bilgisayarina nasil zamanlanmis bir gorev eklenebileceginin ornegide verilmisti.
Malesef bu policy'ler işinize yaramıyor
çünkü bunlar SBM oturumlarını sonlandırmak için. Siz kullanıcı
oturumlarının logoff olmasını istiyorsunuz, bu da bu policyler ile
olmaz.. İstediğinizi yapan bir policy de yok.Arkadaşlarımında söylediği gibi script veya batch file ile task zamanlayarak belki çözüm üretilebilir.
Kullanamnız gereken komut logoff
Yanlız
böyle bir senaryoda kullanıcı tarafını da düşünmek lazım. Örneğin bir
kullanıcının 15:00'a kadar logon hakkı var ve siz script ile 15:00 da
logoff uyguluyorsunuz. Bu durumda kullanıcı için açık uygulamalardaki
çalışmalarını kaybetme riski söz konusu. Bu gibi durumları iyi
değerlendirmelisiniz. Örneğin bir msgbox ile bilgi verip, belirli bir
süre sonunda logoff ettiriebilirsiniz.
Ordaki orneklerin yetersiz oldugnu dusunuyorum yada yorumlayabilen arkadas varsa yardımcı olursa sevinirim
Anliyamadiginiz nokta tam olarak neresidir ? Ayni mesaj icerisinde komutlarin ne anlama geldigini acikliyan bir teknik makale linkide mevcut. Ben yinede size satir satir izah etmeye calisiyim.
schtasks /CREATE /F /SC DAILY /TN
LogOff /S \\10.0.0.1 /U DOMAIN\Administrator /P 1234 /RU
DOMAIN\Administrator /RP 1234 /ST 18:00 /TR
"%systemroot%\System32\shutdown.exe -l -f"
schtasks /CREATE > yeni bir task olusturur
/F > Gorevi zorla olusturur, gorev var ise uyari vermez
/SC DAILY > zaman sıklıgı tanimlanir. HOURLY, DAILY, WEEKLY vs.
/TN
LogOff > gorev ismi
/S \\10.0.0.1 > uzak makina ismi veya ip'si
/U DOMAIN\Administrator > schtasks.exe calistirmak isteyen user. zaten domain\admin ile login isen /u /p belirtmene gerek yok.
/P 1234 > schtasks.exe calistirmak isteyen user'in sifresi.
/RU
DOMAIN\Administrator > client tarafina eklenen gorevin hangi user ile calistirilacagi
/RP 1234 > client tarafina eklenen gorevin user'inin sifresi
/ST 18:00 > baslangic saati
/TR
"%systemroot%\System32\shutdown.exe -l -f" > calistirilacak uygulama
tek seferde networkdeki tum pclere task i oluşutmam gerekiyor sorun bu
komut anahtar acıklamalrı zaten var o konuda
Network'unuzde toplam kac adet bilgisayariniz var ? 50-100 pc'lik bir network'te makina isimlerinin listesini alip batch file icinde ayni satiri calistirmanin pek fazla zor olmayacagini dusunuyorum.
Asagidaki komut ile network'unuzdeki makina isimlerini c:\1.txt icine kayit etmis olursunuz. Veya AD uzerinde Bilgisayar'lar tabina sag tiklayip disari export edebilirsiniz.
net view /cache > c:\1.txt
Orn;
\\PC5
\\PC6
\\PC7
\\PC8
Yapilacak is hepsinin basina ve sonuna gerekli satirlari yerlestirmek;
schtasks /CREATE /F /SC DAILY /TN
LogOff /S \\PC5 /U DOMAIN\Administrator /P 1234 /RU
DOMAIN\Administrator /RP 1234 /ST 18:00 /TR
"%systemroot%\System32\shutdown.exe -l -f"
schtasks /CREATE /F /SC DAILY /TN
LogOff /S \\PC6 /U DOMAIN\Administrator /P 1234 /RU
DOMAIN\Administrator /RP 1234 /ST 18:00 /TR
"%systemroot%\System32\shutdown.exe -l -f"
schtasks /CREATE /F /SC DAILY /TN
LogOff /S \\PC7 /U DOMAIN\Administrator /P 1234 /RU
DOMAIN\Administrator /RP 1234 /ST 18:00 /TR
"%systemroot%\System32\shutdown.exe -l -f"
schtasks /CREATE /F /SC DAILY /TN
LogOff /S \\PC8 /U DOMAIN\Administrator /P 1234 /RU
DOMAIN\Administrator /RP 1234 /ST 18:00 /TR
"%systemroot%\System32\shutdown.exe -l -f"
Ama benim network'umde 500 uzerinde pc var ben tek tek ugrasamam diyorsanizda batch file icinde bir for dongusu ile tek tek makina isimleri komut arasina yerlestirip calistiran bir script hazirliyabilirsiniz.
Merhaba ;
Belki ; batch file de computer adı yerine 127.0.0.1 kullanılsa script butun gilgisayar da otomatik çalışablir yada çalışabillir mi ? Aşağıdaki gibi.
Teşekkürler.
schtasks /CREATE /F /SC DAILY /TN LogOff /S \\127.0.0.1 /U DOMAIN\Administrator /P 1234 /RU DOMAIN\Administrator /RP 1234 /ST 18:00 /TR "%systemroot%\System32\shutdown.exe -l -f"
Network'unuzde toplam kac adet bilgisayariniz var ? 50-100 pc'lik bir network'te makina isimlerinin listesini alip batch file icinde ayni satiri calistirmanin pek fazla zor olmayacagini dusunuyorum.
Asagidaki komut ile network'unuzdeki makina isimlerini c:\1.txt icine kayit etmis olursunuz. Veya AD uzerinde Bilgisayar'lar tabina sag tiklayip disari export edebilirsiniz.
net view /cache > c:\1.txt
Orn;
\\PC5
\\PC6
\\PC7
\\PC8
Yapilacak is hepsinin basina ve sonuna gerekli satirlari yerlestirmek;
schtasks /CREATE /F /SC DAILY /TN LogOff /S \\PC5 /U DOMAIN\Administrator /P 1234 /RU DOMAIN\Administrator /RP 1234 /ST 18:00 /TR "%systemroot%\System32\shutdown.exe -l -f"
schtasks /CREATE /F /SC DAILY /TN LogOff /S \\PC6 /U DOMAIN\Administrator /P 1234 /RU DOMAIN\Administrator /RP 1234 /ST 18:00 /TR "%systemroot%\System32\shutdown.exe -l -f"
schtasks /CREATE /F /SC DAILY /TN LogOff /S \\PC7 /U DOMAIN\Administrator /P 1234 /RU DOMAIN\Administrator /RP 1234 /ST 18:00 /TR "%systemroot%\System32\shutdown.exe -l -f"
schtasks /CREATE /F /SC DAILY /TN LogOff /S \\PC8 /U DOMAIN\Administrator /P 1234 /RU DOMAIN\Administrator /RP 1234 /ST 18:00 /TR "%systemroot%\System32\shutdown.exe -l -f"
Ama benim network'umde 500 uzerinde pc var ben tek tek ugrasamam diyorsanizda batch file icinde bir for dongusu ile tek tek makina isimleri komut arasina yerlestirip calistiran bir script hazirliyabilirsiniz.
strComputer = "."
Set objService = GetObject("winmgmts:\\" & strComputer)
Set objNewJob = objService.Get("Win32_ScheduledJob")
errJobCreated = objNewJob.Create _
("logoff.exe", "********155000.000000+180", _
True , 1 OR 2 OR 4 OR 8 OR 16 OR 32, , , JobID)
Bu konuda Ayrıntılı bilgiyi buradan edinebilirsin.
http://www.microsoft.com/technet/scriptcenter/guide/sas_man_lpja.mspx?mfr=true