1. 程式人生 > 其它 >網工批量修改SecureCRT會話密碼指令碼

網工批量修改SecureCRT會話密碼指令碼

需求:SecureCRT是網路運維人員常用的一個軟體工具,但是每次修改3A密碼後,所有儲存在SecureCRT裡面會話的密碼都要修改,看了網路的一些修改方法,有些讓你破解原密碼的,有些是linux的修改方式,所以寫個指令碼分析給廣大網工,用於修改網路主機的SecureCRT密碼;複製貼上就可以使用,轉載記得粘貼出處

修改原理:我們需要把SecureCRT的Sessions密碼全部換成新密碼就行了,但是這個密碼是加密的

SecureCRT的配置檔案通常以.ini檔案命名,儲存在Sessions目錄裡面,該目錄可以通過Options-> Global Options-> General-> Configuration Paths裡面檢視,開啟配置檔案可以看到儲存的使用者名稱Username和密碼Password V2選項;我們可以先修改自己的3A密碼,然後登入一臺主機A作為模板機,登入的時候SecureCRT會提示密碼錯誤,然後輸入新密碼後,這臺主機A的這個A.ini配置檔案裡面的密碼就是加密後的新密碼,我們要把這個密碼複製替換自己SecureCRT的Sessions裡面所有會話的密碼部分;那樣就可以解決自己不知道加密後密碼問題。

Python配置指令碼以及該指令碼的用法說明

只需要複製該指令碼,把file_path_base的路徑指向自己修改過新密碼的主機配置,inrootpath的路徑指向SecureCRT的Sessions目錄,然後執行該指令碼即可;

溫馨提示:作為運維人員,要時刻懂得備份配置,記得備份自己原本的Sessions目錄,萬一炸鍋了還能恢復一下,同理這個指令碼也可以用來修改linux主機的密碼,只是要自己稍作修改

參考:Python批量修改SecureCRT會話密碼 - baby神 - 部落格園 (cnblogs.com)

搜尋批量修改SecureCRT密碼基本是搜到這篇,只是一開始我沒認真看他的程式碼,他程式碼寫的比我簡潔多了,我只是實現了功能,程式碼基本原理就是遍歷整個目錄,修改.ini檔案裡面的密碼

 1 import os
 2 def change_crtPw(file_path_base, inrootpath):
 3     """
 4     :param file_path_base: 以那個配置檔案的密碼為基準
 5     :param inrootpath: CRT的session目錄路徑
 6     :return: 無返回值
 7     """
 8     f = open(file_path_base)  # 返回一個檔案物件
 9     for line in f:
10             try:
11                 #需要提取出這個檔案的密碼,Monitor Password好像是沒啥用的,反正套路都一樣,需要提取啥都在這寫,但是這個continue要寫上,不然下面會重複匹配到這個
12 if line.find("\"Monitor Password V2\"") != -1: 13 Monitor_PW = line.split("=")[1].strip() 14 continue 15 #這個才是真的需要修改的密碼,就是去你的基準檔案裡面,找到加密後的密碼,沒必要自己寫個演算法去破解再加密;同理你也可以匹配出使用者名稱來 16 if line.find("\"Password V2\"") != -1: 17 PW = line.split("=")[1].strip() 18 break 19 except Exception as e: 20 print('獲取基準配置檔案失敗') 21 22 #遍歷整個檔案目錄 23 for root, dirs, files in os.walk(inrootpath): 24 for file in files: 25 file_path = os.path.join(root, file) 26 # 這段程式碼的用處是把其他需要修改密碼的檔案配置抓出來,同時把密碼修改為新密碼,存在temp_config中 27 with open(file_path, 'r', encoding='utf-8') as tf1: 28 temp_config = '' 29 for t_line in tf1: 30 try: 31 if t_line.find("\"Monitor Password V2\"") != -1: 32 temp_Monitor_PW = t_line.split("=")[1].strip() 33 t_line= t_line.replace(temp_Monitor_PW, Monitor_PW) 34 temp_config += t_line 35 continue 36 if t_line.find("\"Password V2\"") != -1: 37 temp_PW = t_line.split("=")[1].strip() 38 t_line= t_line.replace(temp_PW, PW) 39 temp_config += t_line 40 continue 41 temp_config += t_line 42 except Exception as e: 43 print('修改{}配置失敗'.format(file)) 44 #這段程式碼的意思是把修改過的配置檔案全部寫回到檔案中,這樣會清空原配置檔案,重寫配置 45 with open(file_path, 'w', encoding='utf8') as f: 46 f.write(temp_config) 47 f.flush() 48 print('修改{}配置成功'.format(file)) 49 50 #基準配置檔案,就是你這個配置檔案的密碼是準確的;這個地方是CRT的Session裡面你修改過密碼的一份主機配置檔案 51 file_path_base = r"XXX\XXX.ini" 52 # CRT的SESSION目錄,這個地方路徑是sessions的目錄 53 inrootpath = r'xxx\xxx\Sessions' 54 change_crtPw(file_path_base, inrootpath)