Bu benim için Windows 10 da dahil olmak üzere tüm platformlarda çalışıyor. İhtiyaçlarım basit, güce ihtiyacınız olursa yaklaşımı uyarlayabilirsiniz .
sudo.cmd
Linux sudo komutu için adında küçük bir senaryo buldum . Düşündüğü kadar iyi çalışıyor. Gereksinimleri, izlenecek adımları ve senaryoyu bir örnekle aşağıya doğru çizdim. İlk önce bir uyarı kelimesi.
UYARI : Komut, Windows Sistem dizininde varsayılan olarak çalışır. Öncecd
güvenli bir yeregitmek istersiniz.
gereksinimler :
- Komutu Yönetici ile birlikte pencerelerden ayrıcalıklı bir şekilde çalıştırın. CMD
veya cmd kabuğu.
- komutta normal Windows ayrıcalık kontrolleri gerektirir
- Başka bir deyişle, ayrıcalıklı bir hesapla oturum açmadığım sürece komut çalışmaz.
- Komutu Yönetici izniyle yürütün ve bir komut dosyasında çağrıldığında devam edin. Bu yüzden komutun tamamlanmasını bekleyin.
- Basit olun ki her zaman işe yarayacak
- Zaten giriş yapmışsam her seferinde bir şifre girmenize gerek yoktur.
- Linux'taki gerçek komutla bir kez parola girebilirsem daha iyi bir yöntem olabilir
sudo
.
çözüm :
- Tüm argümanları yürütmek için bir komut dosyası oluşturun,
sudo.cmd
- Komut komut ismini için bir Windows kısa kesilmiş oluşturun:
sudo.lnk
.
- Kısaltmayı
sudo
pencerelerinize PATH ile yerleştirin, böylece görülebilir.
- Kısayol özelliklerini düzenleyin,
Start in:
yolu boş bırakın.
- [
Advanced
] Düğmesine tıklayın - kontrol edinRun as Administrator
- Windows yolunuzda kısayolları etkinleştirin, PATHEXT ortam değişkenini, viz kullanın.
d:> echo %PATHEXT%
.lnk;.EXE;.CMD;.BAT;.COM
sudo dir
Komut satırında yazdığınızda , Windows
User Account Control
Do you want to allow this app to make changes to this device?
[YES] [NO]
Erişim kontrolü açılır penceresi. Eğer "[ NO
]" üzerine tıklarsanız hiçbir şey olmaz. Windows bir " Access is denied.
" mesajı gösterecektir .
"[ YES
]" Düğmesine tıkladığınızda , dizin komutu yüksek bir ayrıcalıkta çalışır. Elbette bir hizmette durmak veya sorgulamak gibi daha ilginç bir şey istersiniz:
sudo sc query SDRSVC
SDRSVC, "Windows Yedekleme Servisi" nin servis adıdır, bu, ayrı bir Cmd penceresinde aşağıdakileri gösterir:
[sudo]
administrator
---------------
sc query SDRSVC
SERVICE_NAME: SDRSVC
TYPE : 10 WIN32_OWN_PROCESS
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
[done]
Press any key to continue . . .
sudo.cmd
Programın kendisini çok temel. Dediğim gibi ihtiyaçlarım basit. Test yapmak için kod dağıtırken hizmetleri durdurmak ve başlatmak istiyorum.
sudo.cmd
:
@echo off
@rem sudo.cmd
cd /d %temp%
@echo.
@echo. administrator
@echo. ---------------
cd
@echo.
@rem _________________________________________________
@rem -- Print usage . . .
@if [""] ==["%~1"] goto USAGE
@if /i ["--HELP"]==["%~1"] goto USAGE
@rem _________________________________________________
@rem
@echo. %*
@rem
%*
@rem
set EXIT_STATUS=%ERRORLEVEL%
@rem -- -- -- -- --
@echo.
@echo. [done]
@rem ______________________________________________________
:Exit
@echo.
@pause
exit /b %EXIT_STATUS%
@rem ______________________________________________________
:USAGE
@echo.
@echo ^Usage:
@echo. sudo ^<complete command line^>
@echo.
@echo. Attempts to rune the: ^<complete command line^>
@echo. under Administrator priviliges. Relies on Windows
@echo. prompt for elevated privileges.
@rem ______________________________________________________
@goto Exit
pause
Eğer sonuçları incelemeniz için komut bekler. Eğer alırsanız pause
yönetim pencere kapanır dışarı ve komut çalıştı olmadığını bilmiyorum. Komuttan ERRORLEVEL
gelen de döndürülür.