本文出自《網管員世界》2023年第10期「經驗技巧」欄目
我們知道,windows nt核心的系統預設情況下都開啟了很多服務,而這些服務很多都是不必要的,所以我們可以禁用其中的一部分。如果只有一台計算機還好辦,要是針對整個windows 2000域來說,如果要一台一台地禁用,那就是一件累人的事了。這時大家肯定都想找一種「簡便方法」。對於windows 2000域來說,最簡便的事莫過於使用組策略了,但現在的組策略版本並沒有關於這方面的設定,所以一種方法就是我們自己編寫乙個管理模板檔案來分發策略。但自己編寫管理模板並不簡單,而且容易出錯,所以我們可以通過另外一種方法—因為服務的開啟或禁用其實都是由登錄檔中的值控制的—我們可以通過域的登入指令碼分發相關的登錄檔檔案來達到目的。
服務的設定位於登錄檔的hklm\system\current-controlset\service下。但它下面並非都是服務項,還有裝置驅動程式項等等,到底哪些是服務項呢?這個你可以根據「計算機管理」工具中服務的名稱來辨別:開啟某個服務的屬性視窗時,在常規標籤上顯示的名稱就是該服務的正式名稱(如圖1),
圖1服務在登錄檔中的條目就是這個名字(如圖2)。在這裡還可以看出,「計算機管理」工具中服務的啟動型別與登錄檔中「start」項的值相對應。對應關係如下:「自動」值為2,「手動」值為3,「已禁用」值為4。如果start項值為0或1,就表明對應的是裝置驅動程式,其中0對應最底層的裝置驅動。
圖2在域中分發乙個reg檔案以禁用部分服務
圖3regedit /s \\192.168.0.88\netlogon\1.reg
/s引數表示匯入登錄檔檔案不給出提示,後面的\\192.168.0.88\netlogon\1.reg
是第一步建立的登錄檔檔案在域控制器上的unc路徑。
需要注意的是:在使用者配置的登入指令碼中新增,不是在計算機配置的啟動指令碼新增,因為啟動指令碼可能不會正常執行。
就這樣,當客戶端登入域時就會執行這個登入指令碼,從而實現了統一禁用域中不必要的服務項。不過這種方式還是有兩個缺點,第一就是這個指令碼不能辨別客戶端的作業系統版本,因為windows xp系統的服務比windows 2000系統的服務更多,所以針對它們的登錄檔檔案有可能不一樣,但指令碼卻不能進行辨別。第二就是如果不刪除指令碼,它每次都會執行,也就是它不能判斷登錄檔設定是否已經修改過了。要解決這兩個問題,可以採用本期介紹的remoteexec工具來分發登錄檔檔案,它由相關過濾條件來解決這兩個問題。
Gradle統一管理版本
為了提高專案開發效率,在實際專案開發過程中往往會引入一些開源框架,還有專案中使用的各種module,當引入module過多時最好提供一種統一的方式去管理版本號,如 compilesdkversion buildtoolsversion androidtestcompile 等,便於日後對版本號進行維...
php統一管理crontab
統一管理crontab計畫任務的關鍵點,在於實現像crontab一樣對 10 這樣的命令如何進行解析。解析完成最後呼叫系統函式執行shell命令 新建控制器 console controllers testcroncontroller新增任務 this cronjobs hello index he...
Redis Key 統一管理技巧
我們的專案中可能存在多種業務場景需要接入 redis 快取,在插入快取時需要設定 key,如果這個 key 散落在專案的各個業務 中的話,會給後期維護帶來很大的不便。所以我建議把系統中用到快取 key 放到乙個類中統一管理,相同業務的 key 放到一起,這樣也提高了系統 的可讀性,讓看這個系統的人一...