iT邦幫忙

0

登入自動執行NTPClock(校時軟體)

網域:aaaa
管理員帳號:tits
密碼:abc123
要執行的小軟體:NTPClock.exe

求救各位專業的大大們
嘗試很多網路上runas的寫法,但都沒有反應
請問有人嘗試過用BAT寫 使用管理權限 輸入帳號密碼 執行NTPClock.exe實際成功過的嗎/images/emoticon/emoticon02.gif

可能我沒說清楚,不是只有一台電腦
我是要搭配AD的群組原則使用,所以要使用BAT檔

看更多先前的討論...收起先前的討論...
主機板電池該換就要換,用 W32TIME 跟DC交換時間會比較快
如果主機板換電池也無效,在考慮用NTPCLOCK
你也可以用系統排程來跑,啟動時間設定為登入後就行了
如果系統排程無法跑,那就是權限問題,你要在該排程設定帳號密碼
oxox iT邦研究生 5 級 ‧ 2021-04-08 17:13:34 檢舉
OS是什麼呢?
我是直接將這軟體放在Win的啟動內,然後設定管理員權限,沒使用批次檔。
這不是單一電腦的
因為我要用AD設定,特定使用者 登入會執行NTPClook,但就是卡在使用管理員開啟「輸入帳號密碼 」這一步驟無法進行,所以想詢問有實際試過成功的人,是怎麼寫BAT檔的
竹本立里 iT邦研究生 3 級 ‧ 2021-04-09 09:37:15 檢舉
AD 會自動同步電腦時間
為什麼要另外掛NTPClook
zero iT邦新手 1 級 ‧ 2021-04-09 14:40:00 檢舉
NTPClook要修改時間,修改時間這個操作是需要管理者權限的,所以要輸入帳號密碼是因為目前執行的身份並沒有"管理者權限"吧,你的需求是因為系統會要權限導致會跳出需要敲帳號密碼,還是原本就是你想要讓USER一定要輸入帳號密碼?
因為是公共電腦 我們每個月同步一次後
就會中斷和伺服器的連線 所以有時候時間會跑掉

系統會要求管理權限的帳號密碼,所以想寫在BAT檔裡面
因為是AD排程的,所以使用者看不到BAT檔的存在
2
門神JanusLin
iT邦超人 1 級 ‧ 2021-04-08 13:35:24

FYI

@echo off
REM CLS
REM ECHO.
REM ECHO =============================
REM ECHO Running Admin Shell
REM ECHO =============================

:init
setlocal DisableDelayedExpansion
set "batchPath=%~0"
for %%k in (%0) do set batchName=%%~nk
set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs"
setlocal EnableDelayedExpansion

:checkPrivileges
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )

:getPrivileges
if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
ECHO.
ECHO **************************************
ECHO Invoking UAC for Privilege Escalation
ECHO **************************************

ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
ECHO args = "ELEV " >> "%vbsGetPrivileges%"
ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
ECHO args = args ^& strArg ^& " "  >> "%vbsGetPrivileges%"
ECHO Next >> "%vbsGetPrivileges%"
ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
"%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %*
exit /B

:gotPrivileges
setlocal & pushd .
cd /d %~dp0
if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul  &  shift /1)

::::::::::::::::::::::::::::
::START
::::::::::::::::::::::::::::
start NTPClock.exe
exit

copy to bat
呼叫 bat 檔試試
我是單機跑
沒試過 Domain

這能加上 自動輸入管理員的帳號密碼嗎

你在想啥
加了讓全公司都知道你的 administrator 的帳號和密碼嗎 ?

但這個是放在AD的排程裡,所以使用者看不到這個BAT檔

0
allenlwh
iT邦高手 1 級 ‧ 2021-04-08 16:54:44

1.放到工作排程器內,開機後就執行
2.放到Windows的啟動資料夾內,登入後就會執行

不好意思 這部分可能跟我的需求有點落差
但還是感謝 大大協助教學

0
sam0407
iT邦高手 1 級 ‧ 2021-04-09 10:05:32

您的問題可參考以下連結:
runas/cpau/lsrunase使用小結(以管理員運行指定程序)

文中提到的/savecred參數我試過一直搞不定,所以我都使用第二種方式lsrunase,存在bat中的密碼是加密過的,稍微安全一些些

如果不敢用第三方程式,也有高手是用AutoIT來作,他有個runas函數,可以傳密碼參數進去,也可編繹成執行檔,這樣是更安全,但您得先學一下AutoIT這套工具

看更多先前的回應...收起先前的回應...

lsrunase 能稍微講一下操作方法嗎

sam0407 iT邦高手 1 級 ‧ 2021-04-13 17:50:08 檢舉

這個套件有兩支程式:

  1. LSencrypt.exe 這支程式就單純作密碼加密,在下圖中的兩個空白處輸入密碼,再按Encrypt按鈕,就會出來一個字串,記起來,等下用的到
    https://ithelp.ithome.com.tw/upload/images/20210413/20012665llmCiTXVgS.png
    2.然後就照我發文連結的教程,依您的需求就是在BAT內輸入以下內容:
    D:\TEST\lsrunase.exe /user:aaaa /password:7F1z3qRd /domain:tits /command:"D:\TEST\NTPClock.exe" /runpath:"D:\TEST"

C:\Users\benlin\Downloads\cpauisrunase\cpauisrunase\lsrunase.exe /user:tsti /password:abc123== /domain:aaaa /command:"C:\Users\benlin\Desktop\NTPClock.exe" /runpath:"C:\Users\benlin\Desktop"

這樣製作成BAT檔嗎
但我點BET檔沒有反應,是我有打錯嗎

sam0407 iT邦高手 1 級 ‧ 2021-04-17 08:17:01 檢舉

password不能用明碼"abc123",要用加密過的"7F1z3qRd"

您可以看一下之前連結裡的說明:
使用lsrunase,這是第三方程序,需要下載。自帶 LSencrypt 用來生成加密的字串。
用法:
lsrunase.exe /user:administrator /password:ABCDqfmI /domain: /command:"D:\Program Files\AnyDesk.exe" /runpath:"D:\Program Files"

所有的參數必須齊全,其中:
user 爲運行的賬號
password 爲密碼加密後的字串
domain 爲機器名或域名,也可留空代表本機
command 爲要運行的程序名,如果攜帶參數需要在命令的首尾加引號
runpath 爲程序啓動的路徑
特點:可以較完美的替代 runas,並避免直接將密碼明文保存在腳本中。

我要發表回答

立即登入回答