Komut satırından uzak masaüstü başlatma. Uzak Masaüstü Erişimi

Windows'un önceki sunucu sürümlerinde, bir yöneticinin sunucuyu uzaktan yönetmek için Terminal Hizmetleri'ni kullanması gerekiyordu. Bu çözümün dezavantajı, yöneticinin rutin yönetim görevlerini gerçekleştirmek için yalnızca bir uzak bağlantıya ihtiyaç duyduğu durumlarda bile Terminal Hizmetlerini dağıtma ihtiyacıydı. Windows XP ve Windows Server 2003'ün standart bir mekanizması vardır Uzak Masaüstü Yönetim için veya sadece uzaktan bağlanmanıza ve sunucuyu yönetmek için gerekli işlemleri gerçekleştirmenize izin veren Uzak Masaüstü. Bu mekanizma, Terminal Hizmetlerine dayalıdır ve aynı anda iki uzak bağlantıyı destekler (Windows XP'de - bir). Bir yönetici, Windows Server 2003 çalıştıran tüm sunuculara uzaktan bağlanarak herhangi bir iş istasyonundan yönetebilir.

Not
Yönetim için Uzak Masaüstü mekanizması temelde Windows 2000 Terminal Hizmetleri tarafından desteklenen Uzaktan Yönetim modu ile aynıdır.Windows Server 2003'te uzaktan yönetim görevi Terminal Hizmetleri'nden ayrılır ve ayrı bir mekanizma olarak uygulanır. Uzaktan yönetim mekanizmasının Terminal Hizmetleri'nden ayrılması, yalnızca sunucuyu başka bir bilgisayardan yönetmeniz gereken bir durumda sunucu üzerindeki yükü en aza indirmeyi mümkün kıldı.

Windows XP ve Windows Server 2003 ayrıca, kullanıcının bilgisayarına erişim başlatmasına ve aşağıdakilerle ilgili yardım almasına olanak tanıyan bir Uzaktan Yardım özelliğine sahiptir. zor durumlar(sonraki bölüme bakın).

Not
Varsayılan olarak, Uzak Masaüstü ve Uzaktan Yardım özellikleri devre dışıdır.

Ayrıca, Internet Information Services'ın (IIS) bir parçası olarak Windows XP veya Windows Server 2003 çalıştıran bir bilgisayarda bir Web sunucusu kuruluysa, o bilgisayar aracılığıyla, o bilgisayardaki herhangi bir Windows XP veya Windows Server 2003 sistemine uzaktan erişebilirsiniz. herhangi bir işletim sisteminde çalışan bir web tarayıcısından (Internet Explorer 4.0 ve üstü) aynı yerel ağ. Bu özellik, örneğin, Windows 95 çalıştıran düşük güçlü bir bilgisayarda bir tarayıcı başlatmasına ve bazı güçlü işlemcilere dayalı uzak bir Windows Server 2003 sisteminin adını girerek üzerinde çalışmasına olanak tanır. tam ekran modu.
Tüm uzaktan erişim oturumları, verilere ve sistemlere yetkisiz erişimi önlemek için şifrelenir: kullanılan RDP protokolü, RC4 algoritması kullanılarak şifrelenir.

Uzaktan erişim izni

Uzaktan erişim modunu kontrol etmek için (çevirmeli bağlantı üzerinden uzaktan erişim ile karıştırmayın!) Sistem Özellikleri penceresinin Uzak sekmesini (Uzaktan kullanım) kullanın (Şekil 10.9). (Bu pencereye hızlıca erişmek için tuşlarını kullanabilirsiniz. +.)
Diğer bilgisayarlardan kullanıcıların sisteminize erişmesini sağlamak için Kullanıcıların bu bilgisayara uzaktan bağlanmasına izin ver onay kutusunu seçin. Uzak Kullanıcıları Seç düğmesini tıklatarak, hangi kullanıcılara uzaktan erişime izin verildiğini açıkça belirtebilirsiniz (Şekil 10.10): bu kullanıcılar yerel Uzak Masaüstü Kullanıcıları grubuna dahil edilecektir. Varsayılan olarak, yalnızca yöneticilerin bilgisayara uzaktan erişimi vardır.
Uzaktan erişim için şifresiz hesapları kullanamazsınız. Bilgisayarda bu tür girişler varsa, Kullanıcıların bu bilgisayara uzaktan bağlanmasına izin ver onay kutusunu seçtiğinizde, Şekil 2'de gösterildiği gibi bir uyarı görünecektir. 10.11.

Pirinç. 10.9. Uzak Masaüstü ve Uzaktan Yardım kontrol penceresi

Pirinç. 10.10. Bu pencerede belirtilen kullanıcılara bilgisayar masaüstüne uzaktan erişim izni verilecektir.


Pirinç. 10.11. Şifresiz hesapların bir bilgisayara uzaktan erişmek için kullanılamayacağını hatırlatan bir hatırlatma

Uzak Masaüstü Bağlantısı yardımcı programı, bir uzaktan erişim oturumunu başlatmak için kullanılır (Başlat | Tüm Programlar | Donatılar | İletişim alt menüsünden veya komut satırından mstsc komutu kullanılarak başlatılır). Uzak bilgisayarın adını veya IP adresini girin ve Bağlan düğmesine tıklayın (Şekil 10.12) - ve birkaç dakika içinde sizi uzak sistemde oturum açmaya davet eden bir pencere göreceksiniz!

Dikkat

Pirinç. 10.11. Şifresiz hesapların bir bilgisayara uzaktan erişmek için kullanılamayacağını hatırlatan bir hatırlatma

Uzaktan erişim oturumu başlatma ve yapılandırma

Uzak Masaüstü Bağlantısı yardımcı programı, bir uzaktan erişim oturumunu başlatmak için kullanılır (Başlat | Tüm Programlar | Donatılar | İletişim alt menüsünden veya komut satırından mstsc komutu kullanılarak başlatılır). Uzak bilgisayarın adını veya IP adresini girin ve Bağlan düğmesine tıklayın (Şekil 10.12) - ve birkaç dakika içinde sizi uzak sistemde oturum açmaya davet eden bir pencere göreceksiniz!



Pirinç. 10.12. Bu pencereden uzaktaki bir bilgisayarla bir oturum başlatabilirsiniz.

Dikkat

Windows XP sistemlerinde, Uzak Masaüstü'nü kullanarak oturum açmak, geçerli oturumu kapatmadan geçerli kullanıcıyı sistemden "atlar". Uzak bir kullanıcı zaten kayıtlı bir kullanıcının adıyla oturum açarsa, çalışma ortamını alır - pencereleri açar, programları çalıştırır - bu kullanıcı, sırayla tekrar oturum açabilir ve "yabancı" yı itebilir. Yalnızca Uzaktan Yardım kullanıldığında iki kullanıcının aynı oturumda aynı anda çalışması mümkündür. Uzaktan yönetim için iki oturuma izin verdikleri için bu, Windows Server 2003'te gerçekleşmez. Ancak, mstsc /console komutunu kullanırsanız, Windows XP'dekiyle aynı çalışma modunu, yani "push" ile elde edebilirsiniz.
Uzak Masaüstü Bağlantısı penceresinde Seçenekler düğmesine tıklayın ve uzak bağlantı seçeneklerini tanımlayan tüm sekmeleri dikkatlice inceleyin. Örneğin ekran boyutunu, renk derinliğini (24 bite kadar), bağlantı hızını vb. ayarlayabilirsiniz. Yerel Kaynaklar sekmesine dikkat edin (Şekil 10.13).

Pirinç. 10.13. Yerel cihazların yeniden atanmasını kontrol eden sekme

Varsayılan olarak, uzak bilgisayardan gelen ses yerel bilgisayara yönlendirilir ve uzak bilgisayarda çalışırken yerel yazıcıya yazdırabilirsiniz. Disk sürücüleri onay kutusunu seçerseniz, her iki sistemin disklerini aynı anda kullanabilirsiniz. Bu, örneğin dosyaları kopyalamak için çok uygundur: Windows Gezgini penceresinde (her iki bilgisayarın disklerinin görüntüleneceği yerde) “bir bilek hareketiyle”, herhangi bir bilgiyi uzak bir bilgisayardan yerel diskinize kopyalayabilirsiniz. .
Deneyim sekmesi (Şekil 10.14), uzaktan erişim oturumunu bağlantı parametrelerine uyarlamanıza izin verir: düşük hızlı kanallar için bazı grafik özelliklerini devre dışı bırakabilir ve yerel bir ağ üzerinden bağlandığınızda tüm özellikleri etkinleştirebilirsiniz.

Pirinç. 10.14. İletişim kanalının hızına bağlı olarak uzaktan erişim parametrelerinin yapılandırılması

Oturum penceresini tam ekrandan sabit boyutlu ekrana ve tam tersi şekilde değiştirmek için tuşlarını kullanın. ++

Windows Server 2003 sistemleri, Terminal Hizmetlerine erişmek için Uzak Masaüstü ek bileşenini kullanır. Bilgisayarlara uzaktan erişim için de kullanılabilir. Şek. Şekil 10.15, aynı anda iki uzak bilgisayara (Uzak Sunucu ve Etki Alanı Denetleyicisi) bağlanma örneğini göstermektedir. Her oturum önceden oluşturulur ve yapılandırılır (bkz. Ek Bileşen Kökü ve Uzaktan Erişim Oturum Ağacı), ardından listedeki imleci işaret ederek kolayca başlatılabilir. Ayrıca farklı oturumlar arasında kolayca geçiş yapabilirsiniz.


Pirinç. 10.15. İki eşzamanlı uzaktan erişim oturumu içeren Uzak Masaüstü ek bileşen penceresi

Bir oturumdan çıkmak

Bir bilgisayara uzaktan erişim oturumunda çalışırken, yöneticinin oturumu sonlandırmak için üç seçeneği vardır (her durumda Başlat menüsünü (Başlat) açması ve Kapat düğmesini (İşin sonu) tıklaması gerekir):

  • Shut Down Windows penceresindeki Shut down (Kapat) seçeneğini seçerek bilgisayarı kapatabilirsiniz;
  • Oturumu Kapat seçeneğini seçerek sistemden çıkış yapabilirsiniz;
  • Bağlantıyı Kes seçeneğini seçerek mevcut oturumu sonlandırabilirsiniz - bu durumda, bu bilgisayara daha önce kullanılan adla yeniden bağlanırken, yönetici, bağlantıyı keserken "bıraktığı" aynı çalışma ortamını (açık pencereler ve çalışan programlar) alacaktır. oturum.

İnternet üzerinden uzaktan erişim

Bilgisayarınıza İnternet üzerinden erişmek için tarayıcınızın adres alanına http:// girin.<имя_cepвepa>/TSWeb , burada sunucu_adı, web sunucusunun (IIS yüklü bilgisayar) veya IP adresinin DNS adıdır.


Pirinç. 10.16. Uzak bir bilgisayara internet bağlantısı penceresi

Sunucuya bağlandıktan sonra, Uzak Masaüstü Web Bağlantısı web sayfası görünecektir (Şekil 10.16), burada Sunucu alanında bağlanmak istediğiniz bilgisayarın adını veya adresini belirtmeniz ve ardından Bağlan düğmesine tıklamanız gerekir. Lütfen web sunucusunun ve hedef bilgisayarın adlarının farklı olabileceğini unutmayın: yani ağa bir bilgisayar üzerinden "oturum açarsınız", ancak diğerine bağlanırsınız.

Dikkat
Açıklanan modun çalışması için, Uzak Masaüstü Web Bağlantısı bileşeninin, WWW (World Wide Web Service) hizmetinin bir parçası olarak sunucuya yüklenmesi gerekir.

Bu prosedürü ilk kez uyguladığınızda, sunucu yerel bilgisayarınıza yüklemeniz gereken ActiveX bileşenini indirecektir. Onun penceresi Şek. 10.17. Evet düğmesini tıklayın.


Pirinç. 10.17. Yerel bir bilgisayara ActiveX bileşeni yüklemeyle ilgili uyarı

Bundan sonra, seçilen (hedef) bilgisayara bir bağlantı yapılır ve geleneksel kayıt penceresi görünür. Şek. Örneğin 10.18, uzak bir bilgisayarda bir oturum görüntüleyen bir Internet Explorer tarayıcı penceresi gösterilir. Adres penceresinin (ağa girdiğimiz) bir bilgisayarın IP adresini gösterdiğini ve bağlantının başka bir bilgisayara yapıldığını lütfen unutmayın - adresi ekranın altında belirtilir. Böyle bir resmin, Internet Explorer sürüm 4.0 ve üzerinin kurulu olduğu herhangi bir işletim sisteminde elde edilebileceğini hatırlayın. Tam ekran modunda, tarayıcı panelleri hiç görüntülenmez ve yalnızca uzak bilgisayarın masaüstünü görürüz.

Pirinç. 10.17. Yerel bir bilgisayara ActiveX bileşeni yüklemeyle ilgili uyarı

Bundan sonra, seçilen (hedef) bilgisayara bir bağlantı yapılır ve geleneksel kayıt penceresi görünür. Şek. Örneğin 10.18, uzak bir bilgisayarda bir oturum görüntüleyen bir Internet Explorer tarayıcı penceresi gösterilir. Adres penceresinin (ağa girdiğimiz) bir bilgisayarın IP adresini gösterdiğini ve bağlantının başka bir bilgisayara yapıldığını lütfen unutmayın - adresi ekranın altında belirtilir. Böyle bir resmin, Internet Explorer sürüm 4.0 ve üzerinin kurulu olduğu herhangi bir işletim sisteminde elde edilebileceğini hatırlayın. Tam ekran modunda, tarayıcı panelleri hiç görüntülenmez ve yalnızca uzak bilgisayarın masaüstünü görürüz.



Görev, başka bir bilgisayardaki komut satırını kullanarak bazı işlemler gerçekleştirmek için ortaya çıktı, kendi başına komut satırını başlatmak ve komutları sürmek için kullanıcıya gidin - bizim yöntemimiz değil, uzak bilgisayarın komut satırını kalkmadan başlatmamız gerekiyor sandalye ve komut satırında gerekli işlemleri gerçekleştirin. Tabii ki, böyle bir işlem uzak bağlantı programları kullanılarak gerçekleştirilebilir, ancak bu her zaman uygun değildir ve sizin ve kullanıcının (istemci-sunucu) benzer bir programa sahip olmasını gerektirir. Başka bir bilgisayarın komut satırına bağlanma prosedürü, komut kullanılarak çok daha basit bir şekilde gerçekleştirilebilir. PSEXEC.

psexec uzak Windows sistemlerinde etkileşimli olarak bir komut satırı arabirimini çağırma ve çeşitli komutları uzaktan çalıştırma yeteneğine sahip bir komut satırı yardımcı programıdır.

Bu yardımcı program yalnızca yöneticinin bilgisayarına yüklenir. Yüklemek için indirmeniz gerekiyor, işte bağlantı Microsoft'un resmi sitesi . Arşivi indirdikten sonra, sıkıştırmasını açmanız, sıkıştırılmamış klasörde PsExec.exe dosyasını bulmanız gerekir. Üzerine iki kez tıklayın, lisans sözleşmesi olan bir pencere görünecektir, tıklayın " Kabul etmek".

Komutun sözdizimini analiz edelim:

psexec [\\bilgisayar[,bilgisayar2[,...] | @file][-u user [-p parola]][-n s][-l][-s|-e][-x][-i [oturum]][-c [-f|-v]] [-w dizini][-d][-<приоритет>][-a n,n,... ] program [argümanlar]

bir bilgisayar PsExec'e uygulamayı belirtilen bilgisayarda veya bilgisayarlarda çalıştırmasını söyler. Bilgisayar adı belirtilmezse, PsExec uygulamayı yerel sistemde çalıştırır; bilgisayar adı yıldız işareti (\\*) ise, PsExec uygulamayı geçerli etki alanındaki tüm bilgisayarlarda çalıştırır.

@dosya PsExec'e uygulamayı belirtilen metin dosyasında listelenen tüm bilgisayarlarda çalıştırmasını söyler.

-a Uygulamanın çalıştırılabileceği işlemciler virgülle ayrılır ve işlemciler 1'den başlayarak numaralandırılır. Örneğin, uygulamayı iki ve dördüncü işlemcilerde çalıştırmak için "-a 2,4" yazın.

-c Belirtilen program, yürütülmek üzere uzak sisteme kopyalanır. Bu parametre ayarlanmazsa, uygulama uzak sistemin sistem klasöründe bulunmalıdır.

-d Uygulamanın tamamlanmasını beklememeyi belirtir. Bu ayar yalnızca etkileşimli olmayan uygulamalar çalıştırılırken kullanılmalıdır.

-e Belirtilen hesap profili yüklenmedi.

-f Belirtilen program, dosya uzaktaki sistemde zaten mevcut olsa bile uzak sisteme kopyalanır.

-iÇalıştırılan program, uzak sistemdeki belirtilen oturumun masaüstüne erişim kazanır. Oturum ayarlanmazsa, işlem bir konsol oturumunda çalışır.

-lİşlem başladığında, kullanıcıya sınırlı haklar verilir (Administrators grubunun hakları iptal edilir ve kullanıcıya yalnızca Users grubuna atanan haklar verilir). Windows Vista'da işlem şu şekilde başlar: düşük seviye güvenilirlik.

-n Uzak bilgisayarlara bağlantı gecikmesini (saniye olarak) ayarlamanızı sağlar.

-p Kullanıcı adı için isteğe bağlı bir parola belirlemenizi sağlar. Bu parametre atlanırsa, bir şifre girmeniz istenecek ve şifre ekranda görüntülenmeyecektir.

-s Uzak işlem, sistem hesabından çalışır.

-u Uzak sistemde oturum açmak için isteğe bağlı bir kullanıcı adı belirlemenizi sağlar.

-v Belirtilen dosya, yalnızca sürüm numarası daha yüksek veya daha yeniyse, mevcut dosya yerine uzak sisteme kopyalanır.

-wİşlem için bir çalışma dizini (uzak sistem içindeki yol) belirlemenizi sağlar.

-x Winlogon masaüstünde kullanıcı arabirimini görüntüler (yalnızca yerel sistem).

-bir öncelik(öncelik) Süreç için farklı öncelikler belirlemenizi sağlar: -düşük (düşük), -normalin altında (ortalamanın altında), -normalin üzerinde (ortalamanın üstünde), -yüksek (yüksek) veya -gerçek zamanlı (gerçek zamanlı).

programÇalıştırılacak programın adı.

argümanlar Geçilecek argümanlar (dosya yollarının hedef sistemde yerel yollar olarak belirtilmesi gerektiğini unutmayın).

Takım çalışması örnekleri PSEXEC:

1) Başka bir bilgisayarın komut satırını başlatmak için
psexec \\<имя компьюетра>cmd

örneğin:
psexec \\WIN782 cmd



bundan sonra ihtiyacınız olan komutları girebilirsiniz.

2) Uzak bir bilgisayarda bir program (bu örnekte test.exe) çalıştırmak için komutu çalıştırmanız gerekir (bu komut, test.exe programını uzak sisteme kopyalar ve etkileşimli olarak yürütür).

psexec \\<имя компьютера>-c test.exe

örneğin:
psexec \\WIN782-c test.exe

3) Böyle bir program uzak sistemde zaten kuruluysa ve sistem dizininde değilse, bu programın tam yolunu belirtin

psexec \\WIN782 c:\temp\test.exe

Muhtemelen Windows Vista (Uzak Masaüstü) aracında yerleşik olarak bulunan çoklu monitör desteğinden yararlanmak isteyeceksiniz. Bu özellik, uzak bir bilgisayarın masaüstünü yerel sisteme bağlı tüm monitörlere yaymanıza olanak tanır.

Ancak, onu bulmak kolay değil - aracın grafiksel kullanıcı arayüzünden değil, komut satırından erişilir.

Kısıtlamalar

Uzak bir masaüstüne bağlanırken birden çok monitör desteği çok kullanışlı bir özelliktir, ancak iki sınırlaması vardır:

1. Sisteme bağlı tüm monitörler aynı çözünürlüğe sahip olmalıdır.

2. Uzak sistemdekiler de dahil olmak üzere tüm monitörlerin ekran çözünürlüğü 4096 x 2048 pikseli aşmamalıdır.

Komut satırı

Çoklu monitör desteğiyle Uzak Masaüstü Bağlantısını başlatmak için bir komut istemi açmanız ve aşağıdaki komutu girmeniz gerekir:


Bundan sonra, bağlantı ayarlarını yapılandırmanız gereken standart Uzak Masaüstü Bağlantısı iletişim kutusu açılacaktır (bkz. Şekil A).

Şekil A Komut satırından Uzak Masaüstü Bağlantısı başlatırken, bağlantı ayarlarının manuel olarak doldurulması gerekecektir.

Bağlantı kurulduğunda, uzak sistemin masaüstü, yerel sisteme bağlı tüm monitörlerde görünecektir. Hem yerel hem de uzak masaüstüne ihtiyacınız varsa, uzak masaüstü penceresindeki "Aşağı Geri Yükle" düğmesini tıklayarak ikincisinin boyutunu bir monitörle sınırlayabilirsiniz. Bunun için klavye kısayollarını da kullanabilirsiniz.

Uzak masaüstü penceresi monitörde göründükten sonra, tüm ekranı doldurmak için fare ile uzatılabilir. Uzatılmış uzak masaüstü penceresinin boyutunu küçültürseniz, tüm ekranı görmek için Şekil 2'de gösterildiği gibi yatay ve dikey kaydırma çubuklarını kullanmanız gerekeceğini unutmayın. B. Ancak, Büyüt düğmesine tıklanarak her zaman geri yüklenebilir.



Şekil B Uzatılmış uzak masaüstü penceresinin boyutunu küçülttüğünüzde, tüm ekranı görmek için yatay ve dikey kaydırma çubuklarını kullanmanız gerekecektir.

Kısayol oluştur

Tabii ki, her seferinde komut satırından Uzak Masaüstü Bağlantısını başlatmak çok uygun değil. Zaten kaydedilmiş bir RDP Uzak Masaüstü Bağlantısı ayarları dosyanız varsa, bu dosyayı ve komut satırı seçeneklerini kullanarak bağlanmak için standart bir Windows kısayolu oluşturabilirsiniz.

Tıklamak sağ tık fareyi masaüstünde herhangi bir yere getirin ve Yeni | Kısayol" (Yeni | Kısayol). Sihirbazın Kısayol Oluştur iletişim kutusunda, Şekil 1'de gösterildiği gibi mstsc /span komutunu ve RDP dosyasının yolunu girin. C. Dosya adresinde boşluklar varsa, onu çift tırnak içine aldığınızdan emin olun. Şimdi "İleri" ye tıklayın (İleri), kısayolu atayın uygun isim, örneğin, "Satürn - Bağlan. birkaç ile monitörler" ve "Son" düğmesini tıklayın.



Şekil C Bir RDP dosyası ve komut satırı seçeneklerini kullanarak bağlanmak için standart bir Windows kısayolu oluşturabilirsiniz.

Şimdi, bu kısayolu kullanarak, mevcut tüm monitörleri kullanarak uzak bir bilgisayara bağlanabilirsiniz. Tabii ki, birden fazla pencere açarken, uzatılmış masaüstü, yerel sistemde birden çok monitörle çalışırken olduğundan farklı davranacaktır - hayal gücünüzü göstermeniz ve pencereleri, hepsi uzak masaüstüne rahatça sığacak şekilde yeniden boyutlandırmanız gerekecektir.

Ne düşünüyorsun?

Bilgisayarınıza kaç monitör bağlı? Uzak Masaüstü Bağlantısını ne sıklıkla kullanıyorsunuz? Vista'nın Uzak Masaüstü Bağlantısının çoklu monitör desteğini mi kullanacaksınız? Görüşlerinizi yorumlarda bizimle paylaşın!

Sistem yöneticileri için en popüler görevlerden biri, koltuğunuzdan kalkmadan uzaktaki bir bilgisayarda komut çalıştırmaktır. Bu, bir program veya yardımcı program yüklemek, bazı ayarları değiştirmek veya başka bir şey için gerekli olabilir. Ve elbette, nadiren sadece bir bilgisayardır, daha sıklıkla komutun birçok iş istasyonunda veya sunucuda yürütülmesi gerekir.

Bu sorun popüler olduğundan, çözmenin birçok yolu vardır. Grup ilkelerinden başlayarak (bu amaçla oturum açma veya başlangıç ​​komut dosyalarını kullanabilirsiniz) ve şununla biten güçlü sistemler System Center Essentials veya System Center Configuration Manager gibi yönetim. Ancak bu makalede, komut satırından veya komut dosyası dosyalarından hemen kullanılabilen ve ayrıca aracıların önceden yüklenmesini ve diğer karışıklıkları gerektirmeyen yöntemleri ele almak istiyorum. Ancak elbette bazı önkoşullar var. Örneğin, komutu çalıştırmak istediğiniz bilgisayarda yönetici ayrıcalıklarına sahip olmanız gerekir ("proxy" senaryosu dışında, ancak daha sonra anlatılacaktır).

Psexec.exe

Bu görevi gerçekleştirmenin en sevdiğim yollarından biri, Windows SysInternals web sitesinden ücretsiz olarak indirebileceğiniz Mark Russinovich tarafından yazılmış PsExec.exe komut satırı yardımcı programıdır. Makalenin sonunda bir bağlantı bulabilirsiniz. Sisteme kurulum gerektirmez, %path% ortam değişkeninde bulunan klasörlerden birine kopyalayabilir ve herhangi bir komut satırı kabuğundan çağırabilirsiniz: Cmd veya PowerShell.

PsExec'i kullanmak çok kolaydır. Örneğin, ana makinede ipconfig /flushdns çalıştırmak için aşağıdaki komutu çalıştırmanız yeterlidir:

psexec \\main ipconfig /flushdns

ipconfig komutu, kimlik bilgileriniz altında ana bilgisayarda çalıştırılacaktır. ipconfig tamamlandığında, tüm metin çıktıları bilgisayarınıza gönderilir ve ayrıca komutun çıkış kodu (hata kodu) döndürülür. Komut başarılıysa, 0 olacaktır.


Tabii ki, PsExec'in olanakları burada bitmiyor. Yardımcı programı parametresiz çağırarak, mevcut diğer seçenekleri görebilirsiniz. Ben sadece birkaçına odaklanacağım.

Anahtar -d PsExec'e komutun yürütülmesini beklemenin gerekli olmadığını, sadece çalıştırın ve unutun. Bu durumda, konsol yardımcı programından çıktı verileri almayacağız, ancak önceki komutun tamamlanmasını beklemeden diğerlerini çalıştırabileceğiz. Bu, örneğin birden fazla bilgisayarda bir program yükleyici çalıştırmanız gerekiyorsa çok kullanışlıdır.

Varsayılan olarak, PsExec komutları gizli modda yürütür, yani komutun yürütüldüğü sistemde hiçbir pencere veya iletişim kutusu görüntülenmez. Ancak, tuşu kullanarak bu davranışı değiştirmek mümkündür. -i. Bundan sonra, pencerelerin görüntüleneceği oturum sayısını belirtebilirsiniz veya belirtemezsiniz, ardından arayüz konsol oturumunda görüntülenecektir.

Bu yüzden sürüm bilgilerini içeren bir pencere açmak için işletim sistemi ana makinede PsExec'i şu şekilde çalıştırmalısınız:

psexec -i \\main winver.exe

Aynı anda birkaç bilgisayarda bir komut yürütmek istiyorsanız, adlarını bir liste metin dosyasından okuma yeteneğine ihtiyacınız olacaktır.

psexec @c:\comps.txt systeminfo.exe

Pekala, PsExec'in en kullanışlı özelliklerinden biri, bilgisayarlar arasında giriş / çıkışı etkileşimli olarak yeniden yönlendirme yeteneğidir; bu, örneğin, cmd.exe'yi uzak bir sunucuda çalıştırmamıza ve ona komutlar vermemize ve yerelde sonuçlar almamıza olanak tanır. bilgisayar.


Psexec nasıl çalışır?

Ustaca olan her şey basittir. PsExec.exe yürütülebilir dosyasının kaynakları, başka bir yürütülebilir dosya olan PSEXESVC'yi içerir. Windows hizmeti. Komutu çalıştırmadan önce, PsExec bu kaynağı uzak bilgisayardaki gizli bir yönetimsel paylaşımlı klasöre, şu dosyaya açar: \\BilgisayarAdı\Admin$\system32\psexesvc.exe. Yürütülebilir dosyaları bu sisteme kopyalamak istediğinizi -c anahtarı ile belirttiyseniz, dosyalar da bu klasöre kopyalanacaktır.

Hazırlık adımları tamamlandıktan sonra PsExec, Windows Hizmet Yönetimi API'lerini kullanarak hizmeti yükler ve başlatır. PSEXESVC başladıktan sonra, veri aktarmak için onunla PsExec arasında birkaç kanal oluşturulur (giriş komutları, sonuçlar, vb.). Tamamlandığında, PsExec hizmeti durdurur ve hedef bilgisayardan kaldırır.

Windows Yönetim Araçları (WMI)

Bahsetmek istediğim bu popüler görevi uygulamanın bir sonraki yolu, Windows Yönetim Araçları kullanmaktır. WMI, Windows 2000'den beri tüm Microsoft işletim sistemlerinde mevcuttur ve Windows 9x'te bile ayrı bir paketten kurulabilir. WMI varsayılan olarak etkindir ve herhangi bir ek yapılandırma gerektirmez. Kullanmak için yönetici hakları yeterlidir ve güvenlik duvarında DCOM protokolüne izin verilir. WMI, sistemleri yönetmek için zengin seçenekler sunar, ancak şu anda bunlardan yalnızca biriyle ilgileniyoruz.

İşlemleri başlatmak için Win32_Process sınıfının Create yöntemine ihtiyacımız var. Kullanımı yeterince kolaydır. PowerShell'de bu şu şekilde yapılır:

$Bilgisayar = "ana"
$Komut = "cmd.exe /c systeminfo.exe >
("\\$Bilgisayar\root\cimv2:Win32_Process").create($Komut)

Burada, başlatılacak işlem olarak cmd.exe'yi belirledim ve zaten onu argüman olarak ilettim. istenen komut. Uzak bilgisayarın ortam değişkenlerini veya " gibi yerleşik cmd.exe ifadelerini kullanmanız gerekiyorsa bu gereklidir. > ' çıktıyı bir dosyaya yönlendirmek için. Create yöntemi, işlemin tamamlanmasını beklemez ve herhangi bir sonuç döndürmez, bunun yerine bize kimliğini - ProcessID'sini söyler.

Henüz PowerShell yüklü olmayan bir bilgisayar kullanıyorsanız, bu WMI yöntemini bir VBScript komut dosyasından da çağırabilirsiniz. Örneğin şöyle:

Liste 1 - WMI (VBScript) kullanarak bir işlem başlatma

Bilgisayar = "PC3"
Komut = "cmd.exe /c systeminfo.exe > \\sunucu\paylaşım\%bilgisayar adı%.txt"
set objWMIService = GetObject("winmgmts:\\" & Bilgisayar & "\root\cimv2:Win32_Process")
Sonuç = objWMIService.Create("calc.exe", Null, Null, intProcessID)

Ancak, WMI ile çalışmak için oldukça uygun bir arabirim sağlayan ve Windows XP ile başlayan işletim sistemlerinde bulunan wmic.exe komut satırı yardımcı programını kullanmak çok daha kolaydır. İçinde, örneğin ana bilgisayarda bir hesap makinesi çalıştırmak için aşağıdaki komutu çalıştırmanız yeterlidir:

wmic /node:ana işlem çağrısı calc.exe oluştur

Tabii ki, WMI'nin yetenekleri sadece süreçleri başlatmakla sınırlı değildir. Bu teknoloji hakkında daha fazla bilgi edinmek istiyorsanız, Konstantin Leontiev'in WMI hakkındaki makalelerini, makalenin sonunda bulabileceğiniz bağlantıları okumanızı tavsiye ederim.

WSH Uzaktan Komut Dosyası

Evet, garip bir şekilde, Windows Komut Dosyası Ana Bilgisayarı, diğer bilgisayarlarda komut dosyaları çalıştırma yeteneğine de sahiptir. Doğru, bu işlev fazla popülerlik kazanmadı ve büyük olasılıkla çok fazla hazırlık faaliyeti gerektirmesi ve karşılığında çok az fırsat sağlaması nedeniyle. Ama yine de kullanışlı olabileceği için bu yöntemden bahsedeceğim.

Bu nedenle, komut dosyasını WSH kullanarak başka bir bilgisayarda çalıştırmak için aşağıdakileri yapmamız gerekir:

    Uzak bilgisayarda yönetici hakları. Bunu söylemeye gerek yok ve bu makalede listelenen hemen hemen tüm diğer başlatma yöntemleri için gereklidir.

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings kayıt defteri anahtarında sistem kayıt defterinde Remote "1"e eşit dize parametresini oluşturarak WSH Uzaktan Komut Dosyası Çalıştırmayı etkinleştirin

    Microsoft Bilgi Bankası makalesi 311269'da açıklanan hata nedeniyle, Windows XP sistemlerinde wscript –regserver çalıştırmanız gerekebilir.

    Bilgisayarlarda bir güvenlik duvarı kullanılıyorsa, DCOM'a erişime izin vermelidir. Ayrıca, bu yalnızca yönetilen bilgisayarda değil, aynı zamanda komut dosyasını çalıştırmak istediğiniz bilgisayarda da yapılmalıdır.

    Service Pack 2 ve sonraki sürümlere sahip Windows XP sistemlerinde DCOM güvenlik ayarlarını değiştirmeniz gerekir. Bu, Grup İlkesi kullanılarak yapılabilir. Bilgisayar Yapılandırması \ Windows Ayarları \ Güvenlik Ayarları \ Yerel İlkeler \ Güvenlik Seçenekleri düğümünde izinleri aşağıdaki gibi ayarlayın:

    1. DCOM: Güvenlik Tanımlayıcı Tanımlama Dili (SDDL) sözdiziminde Makine Erişim Kısıtlamaları
      Anonim Oturum Açma ve Herkes gruplarına Yerel İzin Ver ve Uzaktan Erişime İzin Ver izinlerini verin

      DCOM: Güvenlik Tanımlayıcı Tanımlama Dili (SDDL) sözdiziminde Makine Başlatma Kısıtlamaları
      Yöneticiler grubu izinlerini verin Yerel Başlatmaya İzin Ver, Uzaktan Başlatmaya İzin Ver, Yerel Etkinleştirmeye İzin Ver, Uzaktan Etkinleştirmeye İzin Ver
      Herkes grubu - Yerel Başlatmaya İzin Ver, Yerel Etkinleştirmeye İzin Ver

Peki, tüm bu işlemlerden sonra scriptinizi başka bir bilgisayarda çalıştırmayı deneyebilirsiniz.

Bu teknolojiyi kullanan örnek bir komut dosyası:

Liste #2 - WSH uzaktan komut dosyası oluşturma (VBScript)

set objController = CreateObject("WshController")
set objRemoteScript = objController.CreateScript("C:\test.vbs", "PC5")WScript.ConnectObject objRemoteScript, "remote_"
objRemoteScript.execute
ObjRemoteScript.Status iken yapın<> 1
WScript.Sleep 1000
döngü
MsgBox "Komut dosyası tamamlandı"
Alt remote_Error
loş nesneHatası
objError = objRemoteScript.Error olarak ayarlayın
WScript.Echo "Hata - Satır: " & objError.Line & _
", Karakter: " & objError.Character & vbCrLf & _
"Açıklama: " & objError.Description
WScript'ten Çık -1
son alt

İkinci satırında, CreateScript işlevi için parametre olarak, uzak bilgisayarda yürütülecek komut dosyasının yolu ve bu bilgisayarın gerçek adı belirtilir.

Bu teknoloji hakkında daha ayrıntılı bir makale makalede bulunabilir. Microsoft Windows Yöneticileri için Gelişmiş VBScript – Bölüm 6: Uzaktan Komut Dosyası Çalıştırma(bağlantılara bakın).

Görev Zamanlayıcısı

Görev Zamanlayıcı, iki yardımcı program kullanılarak komut satırından kontrol edilebilir - at.exe ve schtasks.exe. Bu yardımcı programların her ikisi de bir iş oluşturmak için uzaktaki bir bilgisayarın adını belirtmenize ve dolayısıyla sorunumuzu çözmenize olanak tanır. Ancak ayrıntılı olarak, çok daha fazla özellik sağladığı için yalnızca schtasks.exe dosyasını ele alacağız.

Komutların diğer bilgisayarlarda yürütülmesi, zamanlayıcının asıl amacı olmasa da, yine de birçok ilginç senaryoyu uygulamanıza izin verir. Örneğin, kurulumu etkinleştirmek için kullanılabilir yazılımöğle yemeği molası sırasında. Veya kullanıcılarınız farklı zaman, başlatma, bilgisayarın belirli bir süre hareketsiz kalmasından sonra gerçekleştirilebilir.

schtasks /create /s server6.td.local /tn install /tr \\main\data\install.cmd /sc bir kez /st 13:00 /ru sistem

Görevin hangi hesap adına yürütüleceğini anlamak önemlidir. Bu örnekte, sistem değerine /ru parametresini belirttim, bu nedenle bilgisayar hesabının kurulumunu tamamlamak için program dağıtım kiti ile ağ klasörüne okuma erişimine ihtiyacınız olacak.

Bana öyle geliyor ki, başka bir yararlı çözüm, günlük yürütme için bazı eylemler planlamak ve görevi yalnızca başarısı onaylandığında silmek. Yani, önce programın yükleyicisini çalıştıran, bitmesini bekleyen ve programın başarıyla yüklenip yüklenmediğini kontrol eden basit bir toplu iş dosyası oluşturabilirsiniz. Öyleyse, görevi o bilgisayardaki zamanlayıcıdan kaldırır. Böyle bir dosyanın bir örneği:

Liste #3 - Programın yüklenmesi ve ardından görevin silinmesi (Windows Batch)

msiexec /qn /paket \\sunucu\paylaşım\subinacl.msi
"c:\program files\Windows Resource Kits\Tools\subinacl.exe" varsa (
subinacl /tn Install_Subinacl /f

WinRM (WS Yönetimi)

WinRM, sistemlerin web hizmetleri kullanılarak yönetilmesine izin veren açık standart DMTF'nin (Dağıtılmış Yönetim Görev Gücü) Microsoft'un uygulamasıdır. Teknolojinin cihazına girmeyeceğim, ancak kullanımı için neyin gerekli olduğunu kısaca açıklayacağım.

WinRM sürüm 1 ve üstü, Windows Vista ve Windows Server 2008 ile başlayan işletim sistemlerinde bulunur. Windows XP ve Windows Server 2003 için WinRM'yi ayrı bir paket olarak yükleyebilirsiniz (bağlantılara bakın).

Bir bilgisayarı, standart portları kullanarak ve yönetim hesaplarına bağlantılara izin vererek, ona bağlantılar için hızlı bir şekilde yapılandırmak için, sadece şu komutu çalıştırın:

winrm hızlı yapılandırma

Winrm'in onay istemesini önlemek için aramaya -quiet anahtarını ekleyebilirsiniz. İnce ayar hakkında daha fazla bilgi için yerleşik winrm yardımına bakın:

winrm yardım yapılandırması

Yönetilen bilgisayar bir web sunucusu çalıştırıyorsa, varsayılan olarak standart HTTP bağlantı noktalarını kullanmasına rağmen WinRM buna hiçbir şekilde müdahale etmeyecektir. Yalnızca kendisine özel olarak tasarlanmış bağlantıları kesecektir.

Elbette yönetmek istediğiniz her bilgisayarda bu komutu manuel olarak çalıştırmanız gerekmiyor. Grup ilkeleri kullanılarak gerekli tüm ayarlar kolayca yapılabilir. Bunun için ihtiyacınız olan:

  1. WinRM (Windows Uzaktan Yönetim) hizmetini otomatik olarak başlayacak şekilde ayarlayın
  2. Grup İlkesi öğesini yapılandırın Bilgisayar Yapılandırması \ Yönetim Şablonları \ Windows Bileşenleri \ Windows Uzaktan Yönetimi (WinRM) \ WinRM Hizmeti \ Dinleyicilerin otomatik yapılandırılmasına izin ver. Burada, bağlantılara izin verilen IP adreslerinin aralıklarını belirtmeniz gerekir.
  3. Elbette, Windows Güvenlik Duvarı'ndaki uygun bağlantı noktalarında (varsayılan olarak 80) bağlantılara da izin vermeniz gerekecektir.

HTTP (80) veya HTTPS (443) bağlantı noktasının kullanılmasından bağımsız olarak, WinRM tarafından iletilen trafik şifrelenir (tabii bu seçeneği devre dışı bırakmadığınız sürece). Varsayılan kimlik doğrulama protokolü Kerberos'tur.

Ancak ayarlar hakkında yeterli, doğrudan kullanıma gitmek daha iyidir. Winrm yardımcı programı, WinRM hizmetini yapılandırmanıza ve WMI sorgularını yürütmenize izin verse de, örneğin, bir başkasıyla daha çok ilgileniyoruz - winrs. Buradaki RS harfleri Uzak Kabuk anlamına gelir. WinRS, WinRM teknolojisini kullanmasına rağmen PsExec'e çok benzer şekilde çalışır. Bilgisayar adı -r anahtarı ile belirtilir ve ardından yürütülecek komut gelir. İşte bazı örnekler:

winrs -r: Core ver.exe

Winrs uzak kabuk olarak cmd.exe'yi zaten kullandığından, komutlardaki uzak ortam değişkenlerine kolayca erişebilir veya diğer yerleşik cmd.exe komutlarını kullanabilirsiniz:

winrs -r:Core "dir c:\temp > c:\temp\list.txt"

PsExec gibi, winrs yardımcı programı da uzak bir bilgisayarda etkileşimli bir oturum açmanıza olanak tanır:

winrs -r: ana cmd.exe

Bu işlev bir telnet oturumuna benzer, ancak winrs kullanmak güvenlik açısından telnet ve hatta PsExec'ten kesinlikle daha iyidir. HTTP (80) veya HTTPS (443) bağlantı noktasının kullanılmasından bağımsız olarak, WinRM tarafından iletilen trafik şifrelenir (tabii bu seçeneği devre dışı bırakmadığınız sürece). Varsayılan kimlik doğrulama protokolü Kerberos'tur.

Windows PowerShell 2.0 Uzaktan İletişim

Windows PowerShell'in ikinci sürümü, yazma sırasında hala beta testinde olmasına rağmen, alandaki yetenekleri hakkında uzaktan yürütme takımlar şu anda kesinlikle konuşulmaya değer. Önizleme sürümünü indirerek (bağlantılara bakın) veya Windows 7 veya Windows Server 2008 R2'nin beta sürümünün bir parçası olarak kendiniz deneyebilirsiniz.

PowerShell Remoting altyapısı, WinRM sürüm 2.0'ı temel alır ve bu nedenle iletilen verilerin şifrelenmesi ve standart HTTP/HTTPS bağlantı noktalarında çalışma yeteneği gibi bu teknolojinin tüm avantajlarını devralır. Ancak Windows PowerShell dilinin zenginliği ve nesnelerle çalışma yeteneği sayesinde daha da fazla fırsat elde ediyoruz. Üzerinde şu an WinRM2.0 ayrıca beta sürümündedir ve yalnızca Windows Vista ve Windows 2008 sistemlerinde indirilebilir.PowerShell 2.0 ile birlikte Windows 7 ve Windows Server 2008R2 sistemlerine kutudan çıkarıldığında yerleşik olarak sunulacaktır.

Güncelleme: Makale sitede yayınlandığında, PowerShell 2.0 ve WinRM 2.0'ın son sürümleri, desteklenen tüm platformlar için zaten mevcuttur. Bunlar zaten Windows Server 2008R2 ve Windows 7'de sistemin ayrılmaz bileşenleri olarak bulunur ve Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008 için gerekli tüm bileşenler Windows Management Framework adlı bir paket olarak alınabilir.

Bu avantajlardan tam olarak yararlanabilmeniz için önce hem yönetici hem de yönetilen bilgisayarlarda PowerShell Remoting'in etkinleştirilmesi gerekir. Bu, cmdlet'i (Windows PowerShell komutu) Enable-PSRemoting'i çalıştırarak yapmak kolaydır. Ayrıca -Force anahtarını eklerseniz herhangi bir onay istenmeyecektir. Bu cmdlet, gerekirse winrs quickconfig'i çağırır ve Windows Güvenlik Duvarı'nda istisnalar oluşturur, bu nedenle başka bir işlem yapılması gerekmez.

Daha sonra Invoke-Command cmdlet'ini (veya diğer adı icm) kullanarak komutları diğer bilgisayarlarda kolayca çalıştırabilirsiniz:

Invoke-Command -ComputerName Main -ScriptBlock (netsh arabirim dökümü > c:\ipconfig.txt)

Tabii ki, komut önceden bir değişkene yerleştirilebilir ve -ComputerName parametresi için aynı anda bir değil birkaç bilgisayarın adını belirtin. Aşağıdaki sıra, Explorer.exe dosyasının sürümünü aynı anda üç bilgisayardan görüntülemenizi sağlar.

$Command = ((get-item c:\Windows\explorer.exe).VersionInfo.FileVersion)
Invoke-Command -ComputerName Main, Server7, Replica -ScriptBlock $Command


Gördüğünüz gibi, birkaç komutu aynı anda tek bir blokta iletebilir, yürütme sonuçlarını birkaç bilgisayarda bir değişkene yerleştirebilir ve ardından bunları Windows PowerShell nesne işleme yeteneklerini kullanarak iş istasyonunda işleyebilirsiniz.

Ancak, PowerShell Remoting'in olanakları daha yeni başlıyor. Uzak bir bilgisayarda etkileşimli bir Windows PowerShell oturumuna girmek için Enter-PSSession cmdlet'ini kullanabilirsiniz. Exit-PSSession cmdlet'ini kullanarak böyle bir oturumdan çıkabilir veya basitçe çıkabilirsiniz.

New-PSSession cmdlet'i, üzerinde oturumlar oluşturur. uzak bilgisayarlar, bir değişkene yerleştirilebilecek işaretçiler ve ardından bunu Invoke-Command'ın komutları kalıcı bir ortamda aynı anda birkaç bilgisayarda yürütmesi için bir argüman olarak iletir. Ekran görüntüsünde, c:\computers.txt listesinden aynı anda birkaç bilgisayarda bir dizi komut çalıştırdığım bir örnek görebilirsiniz.


proxy

Bu yöntem yukarıdakilerin hepsinden farklıdır ve tamamen farklı görevlere hizmet eder, ancak daha az alakalı değildir. Yetki devri mümkün olmadığında veya çok fazla güç sağladığında, normal bir kullanıcının herhangi bir şekilde ek yetki vermeden veya yönetici şifresinden ödün vermeden yönetici ayrıcalıkları gerektiren bazı komutları yürütmesine izin verir.

Çoğu zaman, insanlar bu tür sorunları, belirli bir programı çalıştırmanıza izin veren şifreli bir yönetici hesabı parolasıyla bir dosya oluşturan cpau.exe (bağlantılara bakın) gibi yardımcı programları kullanarak çözer. Ancak sorun şu ki, şifre şifrelenmiş olsa bile, yardımcı programın programı çalıştırmadan önce şifresini çözmesi gerekecek. Buna göre, kullanıcı, diğer programları başlatmak veya ek ayrıcalıklar elde etmek için kullanmak için parola şifre çözme algoritmasını tekrarlayan ve onu öğrenen bir yardımcı program kullanabilir. Pratikte, bu elbette özel bilgiye sahip olmayan sıradan kullanıcılar için oldukça zordur, ancak yine de oldukça mümkündür. Bir kez daha, bunun belirli bir yardımcı programın sorunu değil, genel olarak bu yaklaşımın sorunu olduğunu açıklığa kavuşturacağım.

Ayrıca runas yardımcı programının /savecred seçeneğinin de sorunu çözmek için uygun olduğu görünebilir. Ama burada bile iki sorun var. İlk olarak, yukarıda açıklanan durumda olduğu gibi, parola kullanıcının bilgisayarında saklanır ve bu nedenle şifresi çözülebilir, ancak runas söz konusu olduğunda bu, yerel yönetici hakları gerektirecektir. İkincisi, runas, kimlik bilgilerini belirli bir komuta bağlamadan kaydeder ve bu nedenle, kullanıcı yalnızca kendisine erişim vermek istediğiniz komutu değil, aynı zamanda başka herhangi bir komutu da yükseltilmiş haklarla çalıştırabilir.

Bu sorunlardan kaçınmak, ancak yine de belirli bir komutun çalışmasına izin vermek için "proxy" adı verilen bir teknik kullanılabilir.

Aşağıdaki gibi çalışır. Bilgisayarda sürekli olarak yüksek ayrıcalıklara sahip bir komut dosyası çalışıyor. Örneğin, bizim durumumuzda dosya sunucusunda yönetici haklarına sahip bir hesaptan başlatılacaktır. Kullanıcının sinyalinde, önceden tanımlanmış bir komutu yürütecektir. Bu örnekte, ağ üzerinden açılan tüm dosyaları kapatın.

Bu sistemi düzenlemek için sunucuya, örneğin c:\scripts\ klasörüne, toplu iş dosyaları Server.cmd ve Action.cmd yerleştireceğiz.

Liste #4 - Server.cmd (Windows Batch)

tetikleyiciyi ayarla=c:\commandShare\trigger.txt
action=c:\scripts\action.cmd ayarla
log=c:\scripts\log.txt olarak ayarla
:Başlat
varsa %trigger% start %action% & echo %time% %date%>>%log% & del %trigger%
uyku.exe 5
başla

Liste #5 - Action.cmd (Windows Batch)

/f için "atla=4 jeton=1" %%a in ('net files') net files %%a /close yapın
çıkış

Server.cmd, kullanıcıdan bir işaret bekleyecektir (bir dosya oluşturma belli Yer) ve dosyayı aldıktan sonra dosyayı şu komutlarla çalıştırın - Action.cmd. Elbette, kullanıcıların bu klasöre herhangi bir erişimi olmamalıdır. Bilgisayar başlangıcında Server.cmd'nin otomatik olarak başlatılması, zamanlayıcıda uygun görev basitçe oluşturularak düzenlenebilir:

schtasks /create /ru domain\administrator /rp /sc onstart /tn ProxyScript /tr c:\scripts\server.cmd

/ru parametresinden sonra, komut dosyasının yürütüleceği hesap belirtilir (bizim durumumuzda, sunucu üzerinde yönetici haklarına sahiptir), /rp parametresinden sonra şifre belirtilmediği için - oluşturulurken istenecektir. görev. /sc seçeneği, bizim durumumuzda bilgisayar açıldığında betiğin ne zaman çalışacağını belirtmenize izin verir. Peki, / tn ve / tr, görevin adını ve yürütülebilir dosyayı belirtmenize izin verir.

Şimdi, kullanıcının betiği işaretleyebilmesi için bir c:\commandShare klasörü oluşturacağız ve onu ağda kullanılabilir hale getireceğiz. Bu klasöre sadece komutu çalıştıracak kullanıcılar yazma erişimine sahip olmalıdır.

Bundan sonra Run.cmd dosyasını kullanıcının masaüstüne yerleştirmek yeterli olacaktır.

Liste #6 - Run.cmd (Windows Batch)

yankı testi > \\server\commandShare\trigger.txt

Çalıştırıldığında, kullanıcı adına \\server\commandShare\trigger.txt dosyası oluşturulacaktır. Bunu fark eden Server.cmd betiği, Action.cmd dosyasını ayrıcalıklarıyla çalıştıracak, c:\scripts\log.txt dosyasına geçerli saatle ilgili bir giriş ekleyecek ve ardından trigger.txt dosyasını silinmeyecek şekilde silecektir. komutu bir sonraki kullanıcı sinyaline kadar yeniden yürütmek için.

Server.cmd komut dosyası, saniye cinsinden belirtilen bir süre boyunca komut dosyası yürütmesini duraklatmak için Sleep.exe yardımcı programını kullanır. İşletim sisteminin bir parçası değildir, ancak Kaynak Kiti Araçlarından alınabilir (bağlantılara bakın) ve herhangi bir bilgisayara kopyalanabilir.