Forum

GroupPolicy Login L...
 
Bildirimler
Hepsini Temizle

GroupPolicy Login Logout Program çalıştırma

25 Yazılar
7 Üyeler
0 Likes
2,369 Görüntüleme
(@evrenbanger)
Gönderiler: 2439
Üye
Konu başlatıcı
 

Herkese selamlar;

İnternet baktım ama tam bulamadım sanırım yapamadım çünkü 🙂

Yazdığımız exe bir program var. Bunu clientlarda ilk başta masaüstüne kopyalayıp çalıştıktan sonra silinmesini istiyorum. otomatik çalışması gerekiyor bunu nasıl sağlarım .

 

 
Gönderildi : 24/11/2008 18:43

(@serhatakinci)
Gönderiler: 4117
Famed Member
 

Merhaba.

Bir kereye mahsus mu? Yoksa her açılış/kapanışta mı?

 
Gönderildi : 24/11/2008 19:08

(@evrenbanger)
Gönderiler: 2439
Üye
Konu başlatıcı
 

Selamlar her açılış ve kapanışta.

 
Gönderildi : 24/11/2008 19:14

(@serhatakinci)
Gönderiler: 4117
Famed Member
 

Exe yi server üzerinde paylaşıma koyun. ör: \\ServerName\Folder\App.exe

Login Script:

Copy \\ServerName\Folder\App.exe %userprofile%\desktop
%userprofile%\desktop\app.exe

 

Logout Script:

tskill app
delete %userprofile%\desktop\app.exe

 

gibi iki küçük batch file işinizi görecektir.

 
Gönderildi : 24/11/2008 19:36

(@evrenbanger)
Gönderiler: 2439
Üye
Konu başlatıcı
 

Bat dosyası yapıcam dimi bunları ?

 
Gönderildi : 24/11/2008 19:47

(@serhatakinci)
Gönderiler: 4117
Famed Member
 

Evet iki ayrı bat dosyası olacak.

Birisi login sırasında, diğeri logout sırasında çalışacak.

 
Gönderildi : 24/11/2008 19:54

(@evrenbanger)
Gönderiler: 2439
Üye
Konu başlatıcı
 

peki bunlarda exe nasıl calisiyor sanki sadece kopyalanıyomuş gibi geldi bana 🙂 logout dada sadece siliyomuş gibi geldi exe sadece 2-3 sn çalışıp kapanacak logout dada aynen sürekli çalışmıcak yani.

 
Gönderildi : 24/11/2008 19:59

(@SerhatUluturk)
Gönderiler: 7
Active Member
 

Merhaba,


Acaba bu .exe uzantılı dosyayı server üzerinde kullanıcılarda Read and Execute izni verilerek paylaştırılmış bir klasöre kopyalayıp, önceden hazırlamış olduğunuz bir batch file ile de kullanıcıların log on olduğu zaman bu programın çalışmasını sağlamak sorununuzu çözer mi?


Bu şekilde silmeye de gerek kalmayacaktır diye düşünüyorum.

 
Gönderildi : 25/11/2008 13:16

(@evrenbanger)
Gönderiler: 2439
Üye
Konu başlatıcı
 

işte o olmuyor yani illa kullanıcının yetkli olduğu bir yere kopyalamam lazım exe yi.

 
Gönderildi : 25/11/2008 14:04

(@SerhatUluturk)
Gönderiler: 7
Active Member
 

Merhaba,


Aynı mantığı Group Policy ile program kurarken de kullanıyoruz. Orda dosyanın .msi uzantısı olması tek farktır. Önemli olan gerekli izinlerin klasör de olması gerekmektedir.


Acaba paylaşım yapılan klasör başka bir paylaşımın altında da bundan dolayı izinlerde bir sorun mu yaşanıyor?


Bir de bir kere başıma gelmişti, bazen dosyanın path ini doğru yazsanız da sorun çıkabiliyor.Batch ve .exe dosyasına herhangi bir clienttan explorer yardımı ile ulaşıp adres çubuğunda gözüken adresi kopyala yapıştır yaparak yazarsanız daha iyi oluyor.

 
Gönderildi : 25/11/2008 15:28

(@serhatakinci)
Gönderiler: 4117
Famed Member
 

peki bunlarda exe nasıl calisiyor sanki sadece kopyalanıyomuş gibi geldi bana 🙂 logout dada sadece siliyomuş gibi geldi exe sadece 2-3 sn çalışıp kapanacak logout dada aynen sürekli çalışmıcak yani.

 

%userprofile%\desktop\app.exe -> İlk bat dosyasındaki bu satır programın çalışmasını sağlıyor

tskill app -> ikinci bat dosyasındaki bu satır programı kapatıyor.

Tabi burada program oturum kapatılana kadar (yani ikinci bat dosyası çalışana kadar) açık durumdadır.

 

İsteği karşılamak için size özel bir script yazalım. Yanlarına açıklamalarında ekliyorum ki neyin ne iş yaptığı anlaşılsın. Tırnak ile başlayan kısımlar açıklama bölümleri, code içinde sorun yaratmaz. Düzenlemen gereken yerler koyu renkli.

 

 

Const OverwriteExisting = TRUE        'Dosya varsa üzerine yazması için fonksiyon

Dim WshShell, userprofile        'değişkenleri tanımladık

Set WshShell = CreateObject("WScript.Shell")
userprofile = WshShell.ExpandEnvironmentStrings("%userprofile%")        'userprofile değişkenine %userprofile% komutunu atadık

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Wscript.Shell")

objFSO.CopyFile "\\ServerName\Share\App.exe" , userprofile & "\desktop\App.exe" , OverwriteExisting         'Paylaşımdaki App.exe yi kullanıcının masaüstüne kopyaladık
objShell.Run("app.exe"), 1, TRUE            'app.exe yi çalıştırdık
wscript.sleep 6000            'code'u 6 saniye durduruyoruz ki app.exe 6 saniye boyunca çalışır durumda kalsın.

strComputer = "."                      '6sn sonra code devam ediyor ve app.exe yi sonlandırıyor.
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'app.exe'")                'burada app.exe uygulamanın process ismi, yani taskmanager>process tabında görünen isim.
For Each objProcess in colProcessList
objProcess.Terminate()
Next

objFSO.DeleteFile userprofile & "\desktop\App.exe"                   'Ve uygulamayı masa üstünden siliyoruz.

 

 
Gönderildi : 25/11/2008 16:25

(@serhatakinci)
Gönderiler: 4117
Famed Member
 

Açıklama satırlarıyla biraz karışık olmuş. Aşağıda toparlıyorum.

 

 

 

Dim WshShell, userprofile

Set WshShell = CreateObject("WScript.Shell")
userprofile = WshShell.ExpandEnvironmentStrings("%userprofile%")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Wscript.Shell")

objFSO.CopyFile "\\ServerName\Share\App.exe" , userprofile & "\desktop\App.exe" , OverwriteExisting
objShell.Run("app.exe"), 1, TRUE
wscript.sleep 6000

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'app.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next

objFSO.DeleteFile userprofile & "\desktop\App.exe"

 
Gönderildi : 25/11/2008 16:34

(@evrenbanger)
Gönderiler: 2439
Üye
Konu başlatıcı
 

Serhat teşekkür ederim.

Şimdi bakıyorum yolladığına bende bişiler karaladım benim kini kontrol edebilirmisin.

 

@echo off
cls
echo ======================================================
echo please do not close this script during logon or logoff
echo ======================================================

echo creating folder
cd C:\Documents and Settings\%username%\Desktop
md Login
cd login

echo copying AgentLogin.exe

copy \\10.0.0.6\App\App\Login$\AgentLogin.exe

AgentLogin.exe

ping 127.0.0.1 -n 5 >NUL:

rd login /s /q

 

 
Gönderildi : 25/11/2008 17:31

(@serhatakinci)
Gönderiler: 4117
Famed Member
 

Login dizinini silerken hata veriyor olmalı çünkü application sonlandırılmamış. RD den önce

tskill agentlogin

şeklinde bir komut ekleyebilirsin.

 
Gönderildi : 25/11/2008 18:03

(@evrenbanger)
Gönderiler: 2439
Üye
Konu başlatıcı
 

sanırım programı çalıştırmıyor tskill diyince process bulunamadı diyor.

 
Gönderildi : 25/11/2008 19:02

(@evrenbanger)
Gönderiler: 2439
Üye
Konu başlatıcı
 

cls
echo ======================================================
echo please do not close this script during logon or logoff
echo ======================================================

echo creating folder
cd C:\Documents and Settings\%username%\Desktop

md Login

cd Login

echo copying AgentLogin.exe

copy \\10.0.0.6\Login$\AgentLogin.exe .

start /WAIT .\AgentLogin.exe

del AgentLogin.exe

cd ..

rd Login

 

 

 

yukardaki kodlarla işi oldu kolay gelsin yardım eden herkese teşekkürler.

 
Gönderildi : 25/11/2008 19:25

(@rahmidilli)
Gönderiler: 2458
Famed Member
 

cls
echo ======================================================
echo please do not close this script during logon or logoff
echo ======================================================

echo creating folder
cd C:\Documents and Settings\%username%\Desktop

md Login

cd Login

echo copying AgentLogin.exe

copy \\10.0.0.6\Login$\AgentLogin.exe .

start /WAIT .\AgentLogin.exe

del AgentLogin.exe

cd ..

rd Login

 

yukardaki kodlarla işi oldu kolay gelsin yardım eden herkese teşekkürler.

Geri bildirim için teşekkürler.

 
Gönderildi : 25/11/2008 19:46

(@serhatakinci)
Gönderiler: 4117
Famed Member
 

Benim sana hazırladığım script çalışıyor, onu kullanabilirsin. En azından ekranda herhangi bir pencere olmayacak, yani kullanıcı cmd ekranı görmeyecek.

 
Gönderildi : 25/11/2008 20:31

(@muratgok)
Gönderiler: 220
Reputable Member
 

Merhaba

 Bu scripti her açılış kapanış değilde bir defaya mahsus clintlara kurmak için scriptte neyi değiştirmemiz gerekir.

DAha doğrusu belirli zamanlarda bilgisayarlara bu scrpti kullanarak  *.exe çalıştırmak istiyorum gpo startup script i ile bunu yapabilirmiyim. Bu nu yapabileceiğim şekilde scripti nasıl değiştirmem gerekir.

 

Açıklama satırlarıyla biraz karışık olmuş. Aşağıda toparlıyorum.

 

 

 

Dim WshShell, userprofile

Set WshShell = CreateObject("WScript.Shell")
userprofile = WshShell.ExpandEnvironmentStrings("%userprofile%")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Wscript.Shell")

objFSO.CopyFile "\\ServerName\Share\App.exe" , userprofile & "\desktop\App.exe" , OverwriteExisting
objShell.Run("app.exe"), 1, TRUE
wscript.sleep 6000

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'app.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next

objFSO.DeleteFile userprofile & "\desktop\App.exe"

 
Gönderildi : 07/04/2009 17:09

Sayfa 1 / 2
Paylaş: