Hanya berpikir saya akan memasukkan skrip yang saya buat semoga menghemat beberapa jam sintaksis dan penelitian halaman manual
a) File SingleIP, IP Range, atau IPList
b) nama skrip untuk dijalankan pada IP / range (skrip jenis unix sh / ksh yang sebenarnya)
c) secara opsional melakukan nmap memindai port 22 terbuka (yaitu subnet dengan beberapa mesin non-Linux)
-Ingin menghindari dempul IP tidak dapat terhubung, menghindari skrip yang dapat dilanjutkan dengan benar
d) secara opsional menjalankan perintah pscp untuk melakukan autocache kunci host (dempul tidak melakukan ini secara otomatis)
Batch ini mengasumsikan:
1. Anda memiliki paket Putty lengkap dan kunci SSH diinstal di C: \ Program Files \ Putty \
2. file batch / skrip / IPlist diinstal di C: \ Program Files \ PuTTY \ scripts \
3. Direktori kerja NMAP dan Putty ada di jalur perintah Anda
https://www.harmonyhit.com/PuttyBatch.bat
Ini sebagian besar berguna untuk memiliki satu skrip (seperti memperbarui sertifikat SSL) di berbagai mesin
Ini file batch lengkap:
@ECHO MATI
rem Anda harus memodifikasi bagian CACHEKEY dan SCRIPT untuk mencerminkan lokasi kunci SSH Anda
atur IPFILE = IPList_temp.txt
atur runagain = n
atur OPTION = 1
atur RANGE =
atur IP =
atur SCAN = n
atur KEYCACHE = n
:PILIHAN
CLS
ECHO (Direktori kerja diatur ke C: \ Program Files \ PuTTY \ scripts \)
GEMA.
ECHO 1. IP tunggal
ECHO 2. File daftar IP
ECHO 3. Rentang IP
GEMA.
set / p OPTION = "Pilih jenis IP:"
JIKA% OPTION% == 3 GOTO IPRANGE
JIKA% OPTION% == 2 GOTO IPLIST
JIKA% OPSI% == 1 GOTO SINGLEIP
echo Silakan pilih opsi yang valid
PILIHAN GOTO
: IPRANGE
ECHO Masukkan rentang IP seperti pada contoh berikut. Gunakan ruang antara beberapa rentang:
ECHO yaitu "10.21.0.15-99 10.21.1.15-100"
set / p RANGE = Masukkan Rentang:
echo% RANGE%>% IPFILE%
GOTO SCRIPTNAME
: SINGLEIP
set / p IP = Masukkan IP:
echo% IP%>% IPFILE%
GOTO SCRIPTNAME
: IPLIST
set / p IP = Masukkan nama file IPList:
copy / Y% IP%% IPFILE%
GOTO SCRIPTNAME
: SCRIPTNAME
set / p SCRIPT = Masukkan nama skrip:
jika tidak ada% SCRIPT% (
nama file gema tidak ada!
GOTO SCRIPTNAME)
GEMA.
set / p SCAN = Apakah Nmap memindai terlebih dahulu? (disarankan):
jika% SCAN% == n GOTO: RUNCACHE
rem Periksa apakah tipe IP adalah "range" karena nmap tidak dapat membaca rentang IP dari file dan harus mengetik langsung dalam perintah nmap
JIKA% OPSI% == 3 GOTO NMAPRANGE
: NMAP
echo Memindai IP untuk port 22 terbuka ...
nmap --open -n -p22 -iL% IPFILE% -oG - | findstr / E Up> nmap_temp.txt
GOTO AFTERNMAP
: NMAPRANGE
echo Memindai IP untuk port 22 terbuka ...
nmap - buka -n -p22% RANGE% -oG - | findstr / E Up> nmap_temp.txt
: AFTERNMAP
echo DONE
memformat rem nmap tidak benar, berikut ini menghapus info tambahan
untuk / f "token = 2" %% A in (nmap_temp.txt) lakukan echo %% A >> nmap_temp2.txt
rem menghapus ruang tersembunyi di akhir IP (membutuhkan "repl" berada di direktori file batch)
ketik "nmap_temp2.txt" | tambahkan "" "">% IPFILE%
: RUNCACHE
set / p KEYCACHE = Pindai dan simpan kunci SSH (y / n)?
jika% KEYCACHE% == n GOTO SCRIPT
: CACHEKEY
rem Jalankan melalui semua IP untuk melakukan cache Kunci Host SSH jika belum di-cache
untuk / F "token = *" %% A dalam (% IPFILE%) lakukan (echo y | "C: \ Program Files \ PuTTY \ pscp.exe" -l root -i "C: \ Program Files \ PuTTY \ SSH .ppk "-touch %% A: / tmp / test)
:NASKAH
untuk / F "token = 1" %% A in (% IPFILE%) do ("C: \ Program Files \ PutTY \ putty.exe" -ssh %% A -t -l root -i "C: \ Program Files \ PuTTY \ SSH.ppk "-m" C: \ Program Files \ PuTTY \ scripts \% SCRIPT% ")
jika ada nmap_temp.txt (del nmap_temp.txt)
jika ada nmap_temp2.txt (del nmap_temp2.txt)
set / p runagain = "Tekan Enter untuk Menyelesaikan atau y untuk menjalankan kembali"
jika% runagain% == y PILIHAN GOTO
-m
sakelar dengan Plink, karena memungkinkan untuk menentukan perintah secara langsung pada baris perintahnya, lihat jawaban saya .