GroupPolicy Login L...
 
Bildirimler
Hepsini Temizle

GroupPolicy Login Logout Program çalıştırma  

Sayfa 1 / 2
  RSS
Evren Banger
(@evrenbanger)
Saygın Üye Forum Yöneticisi

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 .

 

Alıntı
Gönderildi : 24/11/2008 17:43
Serhat AKINCI
(@serhatakinci)
Tecrübeli Üye

Merhaba.

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

CevapAlıntı
Gönderildi : 24/11/2008 18:08
Evren Banger
(@evrenbanger)
Saygın Üye Forum Yöneticisi

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

CevapAlıntı
Gönderildi : 24/11/2008 18:14
Serhat AKINCI
(@serhatakinci)
Tecrübeli Üye

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.

CevapAlıntı
Gönderildi : 24/11/2008 18:36
Evren Banger
(@evrenbanger)
Saygın Üye Forum Yöneticisi

Bat dosyası yapıcam dimi bunları ?

CevapAlıntı
Gönderildi : 24/11/2008 18:47
Serhat AKINCI
(@serhatakinci)
Tecrübeli Üye

Evet iki ayrı bat dosyası olacak.

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

CevapAlıntı
Gönderildi : 24/11/2008 18:54
Evren Banger
(@evrenbanger)
Saygın Üye Forum Yöneticisi

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.

CevapAlıntı
Gönderildi : 24/11/2008 18:59
Serhat Ulutürk
(@SerhatUluturk)
Üye

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.

CevapAlıntı
Gönderildi : 25/11/2008 12:16
Evren Banger
(@evrenbanger)
Saygın Üye Forum Yöneticisi

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

CevapAlıntı
Gönderildi : 25/11/2008 13:04
Serhat Ulutürk
(@SerhatUluturk)
Üye

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.

CevapAlıntı
Gönderildi : 25/11/2008 14:28
Serhat AKINCI
(@serhatakinci)
Tecrübeli Üye

[quote user="Evren Banger"]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.
[/quote]

 

%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.

 

CevapAlıntı
Gönderildi : 25/11/2008 15:25
Serhat AKINCI
(@serhatakinci)
Tecrübeli Üye

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"

CevapAlıntı
Gönderildi : 25/11/2008 15:34
Evren Banger
(@evrenbanger)
Saygın Üye Forum Yöneticisi

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

 

CevapAlıntı
Gönderildi : 25/11/2008 16:31
Serhat AKINCI
(@serhatakinci)
Tecrübeli Üye

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

tskill agentlogin

şeklinde bir komut ekleyebilirsin.

CevapAlıntı
Gönderildi : 25/11/2008 17:03
Evren Banger
(@evrenbanger)
Saygın Üye Forum Yöneticisi

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

CevapAlıntı
Gönderildi : 25/11/2008 18:02
Evren Banger
(@evrenbanger)
Saygın Üye Forum Yöneticisi

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.

CevapAlıntı
Gönderildi : 25/11/2008 18:25
Rahmi DILLI
(@rahmidilli)
Tecrübeli Üye

[quote user="Evren Banger"]

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.

[/quote]

Geri bildirim için teşekkürler.

CevapAlıntı
Gönderildi : 25/11/2008 18:46
Serhat AKINCI
(@serhatakinci)
Tecrübeli Üye

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.

CevapAlıntı
Gönderildi : 25/11/2008 19:31
murat gök
(@muratgok)
Üye

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.

 

[quote user="Serhat AKINCI"]

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"

[/quote]

CevapAlıntı
Gönderildi : 07/04/2009 17:09
Sayfa 1 / 2
Paylaş: