iT邦幫忙

0

AD派送 執行bat批次檔

leo00147 1 年前3559 瀏覽

大家好

要用AD派送批次檔到各電腦執行

批次檔內有修改登陸檔的部分

因為權限的問題被擋了下來

所以增加下面的程式碼用有權限的帳號執行

set WshShell = CreateObject("WScript.Shell")

WshShell.Run "runas /profile /env /savecred /user:USER ""\\192.168..\test\test.bat"""

WScript.Sleep 1000

WshShell.Sendkeys "USER"

WshShell.Sendkeys "{ENTER}"

不過都會出現"1326: 登錄失敗: 未知的用戶名或錯誤密碼"

請問這會是甚麼原因造成的?

或是有甚麼其他的方法可以解決修改登陸檔權限問題

謝謝

看更多先前的討論...收起先前的討論...
窮嘶發發發 iT邦高手 1 級 ‧ 1 年前 檢舉
set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.run "runas /user:domain\user %comspec%" 'Open command prompt
WScript.Sleep 1000
WshShell.SendKeys "password" 'send password
WshShell.SendKeys "{ENTER}"
WScript.Sleep 1000
窮嘶發發發 iT邦高手 1 級 ‧ 1 年前 檢舉
你少打了 DOMAIN NAME
leo00147 iT邦新手 5 級 ‧ 1 年前 檢舉
不好意思
我上面漏打了
實際程式碼內有domain\user
窮嘶發發發 iT邦高手 1 級 ‧ 1 年前 檢舉
那就是 你 密碼 確認有沒有錯,另外用戶端要確認有加入網域
該帳號要是用戶端的 系統管理帳戶
另外該帳戶要有存取執行批次檔的權限
小成 iT邦高手 10 級 ‧ 1 年前 檢舉
你用GPO中的哪個地方去派送?
小成 iT邦高手 10 級 ‧ 1 年前 檢舉
還是直接使用使用者帳號中的登入指令檔去作?
小成 iT邦高手 10 級 ‧ 1 年前 檢舉
這個問題被遺棄了嗎...?
0
crusade
iT邦研究生 4 級 ‧ 1 年前

AD上有沒有User這個帳號 , 有沒有設密碼 ?

leo00147 iT邦新手 5 級 ‧ 1 年前 檢舉

AD上沒有USER這個帳號
這只是貼上來所以找個替代帳號罷了
總不能把我原本的帳號密碼貼上來吧....

0
李大瑋
iT邦研究生 3 級 ‧ 1 年前

我建議你.BAT跟AD不要放在同一台

這樣的話

你可以先用客戶端先跑看看有沒有問題

再針對問題解決

感覺你的問題不是出在AD

而是權限部分有問題

1
小成
iT邦高手 10 級 ‧ 1 年前

不知道樓主還會不會出現...

不過還是簡單回答一下好了

以你的問題來說,你使用了那段 script 來送帳號密碼,但是在 WshShell.Sendkeys 這邊,如果剛好遇到使用者的環境有預設中文輸入法的狀況或是其它各種狀況,可能會導致你送進去視窗的字元就會變成其他的字,大寫的英文字還沒甚麼問題,但小寫的字元、數字等等很可能就會變成了注音符號或是中文字等等,然後就可能造成密碼錯誤的狀況。

以上大致是密碼錯誤的可能狀況。

其次是你使用了 script 來輸入密碼,也會造成密碼外洩的狀況,不管是BAT還是VBS之類的,明碼的 script 因為可以很簡單的就看到密碼,所以這個部份我會建議利用例如 AUTOIT 之類的東西來做,可以避免密碼外洩的狀況發生。

以下來談談派送的權限這件事情。

不知道你是用 AD 中的哪個部份來派送BAT?

使用者帳號中的登入指令檔?
http://ithelp.ithome.com.tw/upload/images/20160608/200110486cupf26z3G.jpg
GPO中的指令碼?
http://ithelp.ithome.com.tw/upload/images/20160608/20011048NUZGz7IU1u.jpg

而你要改的登錄檔的位置又是在哪裡?

如果是利用使用者的登入指令檔以及GPO的使用者設定中的指令碼來做,他是會以使用者的權限去執行,所以當你有限制使用者的權限時,很可能就會遇到權限不足的狀況。

而 GPO 的電腦設定中的指令碼,則是會在使用者未登入時就執行,因此是會以 SYSTEM 權限來執行,所以比較不會遇到權限不足的狀況,當然也可以變更登錄檔中的資料,不用特別用甚麼使用者身分來跑,除非你要改的是位於 HKEY_CURRENT_USER 中。

如果不是位於 HKEY_CURRENT_USER 中,那麼只要利用 GPO 的電腦設定中的指令碼來派送你的 BAT 即可。

如果是位於 HKEY_CURRENT_USER 中,我是會利用 AUTOIT 的 runas 來做,或者利用例如 advanced installer 之類的工具建立 MSI 來派送,給你參考。

Advanced installer 用免費授權的就可以了。 請參考 http://www.advancedinstaller.com/feats-list.html

我要發表回答

立即登入回答