Çok fazla Unix komut dosyası kullanan ve neredeyse hiç Windows komut dosyası oluşturmayan bir Unix ve Windows yöneticisi olarak, bunun kısmen Windows komut dosyası oluşturma yardımcı programlarının ve API'lerinin inanılmaz derecede beceriksizliğinden ve zorluğundan (belki de açık olmayan bir şey olabilir) olduğunu söyleyebilirim. Windows makinede bir şeylerin uzaktan çalıştırılması daha iyi bir kelimedir).
Yani, WTF bu mu?
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Sorunun bir kısmı, bence, orada olmasıdır olan bir API. Unix altında, yöneticiler zaten kullandıkları komut satırı yardımcı programlarının otomasyonunu büyük ölçüde komut dosyası olarak kullanıyorlar. Windows altında, her seviyede yabancı olan bu API'yi kullanmanız gerekir. Örneğin, "kimliğe bürünmek" ne anlama geliyor? Bu, sudo ve su kullanması muhtemel olan ve zaten setuid komut dosyalarını tanıyan bir Unix yöneticisi için önemsiz bir kavramdır. Ancak bir Windows yöneticisinin bunlardan herhangi birini bilmesi pek mümkün değildir; "runas" (veya eşdeğer GUI seçeneği) hakkında bilgi sahibi olabilirler, ancak yönetici-y yapmaları gerektiğinde yönetici olarak giriş yapmaları çok daha muhtemeldir.
Ve Windows'ta komut dosyası çalıştırma belgeleri mutsuzdur. Birincisi, yine bir (yabancı) API kullandıkları ve zaten aşina oldukları komutları kullanmadıkları için senaryodan çok daha fazla "yorumlanmış dil". Ancak, Microsoft'un belgelerinde, beni doğru yönde gösteren, istediklerime yakın bir şey yapan birisini bulmakla yönlendirilmeyen faydalı bir şey bulduğumu sanmıyorum. Hiçbir yerde yapabileceğiniz şeylerin listesi yok gibi görünüyor. En temel şeyleri yapabilmek için zaten Windows içindekiler hakkında bilgi sahibi olmanız gerekiyor.
Unix betiklerinin çoğu zaman çizgi gürültüsüne benzemediğinden değil. Ancak bir Unix yöneticisi, zaten bildiği basit komutları çalıştırmaktan başka hiçbir şey yapmayan bir betikle başlayabilir. ("Bu üç komutu her zaman art arda çalıştırmak zorundayım. Eğer onları bir dosyaya koyarsam, tek bir komutta yapabilirim!") Ve sonra durumla rahatladığında ilerleyebiliyor. Bunun aksine, bir yöneticinin "sunucuda yönetici olarak oturum açın; Başlat → Ayarlar → Denetim Masası; Sistem'i çift tıklayın; Bilgisayar Adı sekmesini tıklayın; vb." Evet, almaya çalıştığı her neyse, muhtemelen bir yerde bir API aracılığıyla sunuluyor, ancak onu aşamalı olarak bulması mümkün değil.
Öyleyse, "Windows yöneticilerinin nasıl daha fazla komut dosyası kullanmasını sağlayabiliriz?" Bunu nasıl yapacağımı bilmiyorum.
Açıkçası, cevap Microsoft'un elinde. GUI üzerinden yapılan her şeyi yapmak için bir komut satırı yardımcı programına sahip olmamalarının bir nedeni yoktur. (Şu anda orada aslında birçoğu var, ancak reklamları yok, belgeleniyorlar ve tutarsızlar.) Ayrıca GUI’de ne olduğu konusunda bir ipucu olmaması için hiçbir neden yok. bu düğme aslında yapar. Değiştirilen API nesnesini gösteren bir araç ipucuna sahip olun. Veya Yardım penceresinde belgelendirin.
Kullanıcıları dahili kullanıcılardan korumada bir sorun yoktur, ancak Windows bu dahili kullanıcıları etkin bir şekilde gizlemek için kendi yollarını bulmak isteyenlerden bile çıkıyor.
ls -1 *old* | awk '{print "mv "$1" "$1}' | sed s/old/new/2 | sh