登錄腳本是一種集中控制各種日常管理任務的首選途徑
沒有了登錄腳本
這些任務就必須到用戶的桌面上手工完成
特別是在WAN環境中
登錄腳本的優勢非常明顯
KiXtart是一個優秀的高級登錄腳本工具
遠比Windows NT系列操作系統內建的
DOS批命令風格的處理器強大
例如
KiXtart允許訪問NT SAM或系統信息
操作文件
修改注冊表
或者執行OLE自動化任務
KiXtart能夠根據用戶標識和所屬群組靈活地調用腳本和子過程
必要時我們可以用一個腳本來調用其他的腳本
這些功能方便了腳本的集中控制
簡化了腳本代碼的維護和調試
一配置KiXtart運行環境 配置一個基本的KiXtart運行環境很簡單
KiXtart是Microsoft Windows
Resource Kit的一部分
最新版可以從下載
要運行KiXtart腳本
只要在所有提供驗證服務的服務器上
將KiXtart執行文件(kix
exe)放到\neglogon共享目錄就可以了
但對於Windows
x系統
KiXtart還需要額外的配置才能與KiXtart遠程過程調用服務通信
即必須在每一個域控制器(DC)上安裝RPC服務
再把KiXtart的輔助DLL(kx
dll
kx
dll
kx
dll)和kix
exe文件一起放入\netlogon共享服務
KiXtart的下載包帶有RPC服務的執行文件kxrpc
exe
二編寫腳本 KiXtart腳本文件其實就是普通的文本文件
可以用記事本或其他文本編輯器編輯
但文件的擴展名一般是
kix
如果要在用戶登錄期間運行某個KiXtart腳本
只要在該用戶帳戶的配置文件中設置登錄腳本選項即可
用不帶參數的形式調用kix
exe時
KiXtart將尋找和運行默認的腳本文件kixtart
kix
我們可以在kixtart
kix腳本中調用其他腳本
將kixtart
kix作為一個主控腳本使用
KiXtart具有豐富的腳本語言功能
包括控制結構
命令
函數
變量
數組等
雖然說不一定只有專業的開發者才能使用KiXtart
但了解一些基本的編程知識還是有好處的
■ 控制結構
控制結構是控制腳本運行流程的命令
例如根據一定的條件允許某些命令或其他腳本運行
假設在一個所有用戶都運行的腳本中
我們只想讓某個用戶運行特定的腳本代碼
可以加入下列If Else Endif結構
If @USERID =
testuser
Call
testusers
kix
EndIf
每一個用戶都會運行上面的登錄腳本
但只有testuser用戶會調用testusers
kix腳本
其他KiXtart控制結構還包括
⑴ Do
Until
反復運行一個代碼片斷
直至指定的條件為真
⑵ While Loop
當指定的條件為真時
反復地運行一個代碼片斷
⑶ For Each
對於數組或對象中的每一個元素
分別運行一次代碼片斷
⑷ For
Next
將一個代碼片段運行一定的次數
■ 變量
變量是一種用描述性名稱來存儲信息的機制
存儲在變量中的數據可以隨時修改
在KiXtart中
所有變量必須以
$
符號開頭
就象其他專業的編程語言一樣
KiXtart變量也有一定的作用范圍
變量的作用范圍決定了當一個腳本調用子過程或其他腳本時
被調用的子過程或腳本是否能夠訪問前者定義的變量
如果為變量指定了錯誤的作用范圍
很可能導致腳本錯誤
或出現不可預料的運行結果
KiXtart變量的作用范圍有兩種
Global
這種類型的變量可以被所有腳本程序訪問和修改
Local
這類變量只能在聲明它的子過程或腳本之內訪問
KiXtart變量可以用多種方式聲明
⑴ 隱式聲明
在腳本中直接將一個值賦予一個變量
隱式聲明的變量具有全局作用范圍
所有腳本程序和子過程都可以訪問它
⑵ 顯式聲明
首先定義變量
然後才給它賦值
有兩個命令可以定義變量
即Dim和Global
Dim定義的變量作用范圍是本地(Local)
只能在定義它的子過程或腳本之內訪問
Global定義的變量是全局變量
■ 宏
在KiXtart中
宏的作用是從運行腳本的系統或網絡返回信息
KiXtart的宏類似於一種環境變量
不要將它與Word
Excel或Word Perfect的宏混淆
KiXtart的宏不是程序
用戶不能修改它們
所有的宏都以@字符開頭
常用的宏包括
① @USERID
返回當前的用戶
② @LSERVER
返回為當前登錄進程驗證身份的服務器
③ @WKSTA
返回正在運行腳本的工作站名稱
④ @TIME
返回系統時間
■ 命令
命令執行一個動作
下面列出了幾種常用的命令
⑴ Use
映射驅動器
或者連接到其他網絡資源
例如打印機
⑵ Shell
裝入並運行一個程序
在KiXtart腳本程序中
我們不能直接使用標准的Windows批命令
所以KiXtart提供了Shell命令讓我們調用標准的批命令和外部程序
被調用的外部程序可以是任何
位或
位Windows程序
用Shell命令調用外部程序時
KiXtart腳本會暫停執行
等待外部程序結束
所以調用外部程序時務必慎重
如果被調用的程序掛起
腳本也會停止響應
⑶ Copy
復制一個文件
■ 函數
函數類似於命令
不同之處在於函數會返回數據
通常情況下
我們要把函數的返回值保存到某個變量
有時函數的返回值表示動作的執行狀態
例如
ADDKEY()函數將一個注冊鍵加入到注冊表
它的返回值表示加入注冊鍵的操作是否成功
又如
UCASE()函數將字符串轉換成大寫
例如UCASE(
hello
)的返回值是
HELLO
除了大多數編程語言都提供的標准函數之外
KiXtart專門提供了許多面向登錄操作的函數
INGROUP()函數就是一個例子——它能夠判斷登錄的用戶是否屬於特定的組
例如
下面的代碼判斷當前用戶是否屬於Finance組
如是
則刪除當前的驅動器映射
G:
然後再將
G:
映射到Finance部門的共享目錄
If INGROUP(
Finance
)
Use g: /delete
Use g:
\\servername\financeshare
EndIf
■ 用戶定義函數
KiXtart允許創建用戶定義函數(UDF)
極大地改進了登錄腳本的靈活性
我們可以利用UDF機制創建公用的腳本模塊
簡化腳本開發
KiXtart網站提供了大量實用腳本范例
包括計算和提示磁盤容量/配額
比較目錄
配置打印機
建立文件關聯
檢查病毒庫版本
搜索文件
配置環境變量
等等
有興趣的讀者可以參看
地址是
From:http://tw.wingwit.com/Article/os/xtgl/201311/9577.html