询问者
以服务运行脚本

问题
-
我在win7上运行我们的软件,并写了一个脚本,通过软件来执行这个脚本。脚本的内容是telnet到其他的电脑,并关闭那台远程unix电脑
我发现若是我们的软件以服务方式启动(权限是local service用户),然后执行脚本则会执行失败。 若软件以普通用户启动(比如电脑登陆用户jones),然后执行脚本则可以成功登陆并关闭远程电脑
我查过原因,应该是local service的用户权限太低,我想在软件启动仍然以服务方式启动但是以jones用户运行软件,于是我在service里面选中我们的软件, 属性下面点击log on, 选中 this account(之前是local system account), 然后输入 jones用户名和密码, 重启系统后,在进程管理器中看到 ,软件的执行用户确实都是jones(之前是System), 可是执行脚本还是失败。。我怀疑虽然我修改了账户,但是实际上运行的级别还是local service用户
我想请教下,如何可以提升软件的运行权限,使得软件可以在系统启动的时候就启动,但是权限却不是local service呢
或者说是否是win7限制了以服务运行脚本?要如何解决这个问题呢?
全部回复
-
任務計劃是適合完成此任務的. 之前已經說了 NT 6 系的任務計劃實際上承當了一些服務類的系統任務. 換句話說, 任務計劃就是一個服務來啟動指定準服務的機制.
同時任務計劃是可以通過手動觸發的, 可以設置一個已經過期的只執行一次任務計劃, 比如 2001/01/01 00:00:00. 然後通過
schtasks -run -tn TASKNAME
執行.
至於你提到的需求是通過遠程關閉 UNIX 系統, 實質上是發送特定數據包到遠程 UNIX 主機的特定端口. 這個需要對於 Windows 任務計劃來說是完全可以實現的. 實際上一些 Windows 主機之間的數據備份是通過任務計劃來實現的.
最後需要說明的是, 如果要在簡體中文版 Windows 通過
schtasks -query
查詢已有任務狀態, 因為漢化原因, 會報錯. 需要將代碼頁切換到英文
chcp 437
當然中文名的任務會顯示為亂碼, 換回默認代碼頁
chcp 936
Folding@Home
-
其实所有一次性运行达到目的的操作都不适合以服务形式启动。既然是脚本何不添加为启动脚本?
Alexis Zhang
http://mvp.support.microsoft.com/profile/jie
http://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛。
本帖是回复帖,原帖作者是楼上的 <jonesliu>;
| 我在win7上运行我们的软件,并写了一个脚本,通过软件来执行这个脚本。脚本的内容是telnet到其他的电脑,并关闭那台远程unix电脑
-
看起來你沒有很好理解 Windows 和 *nix 系統的異同.
1. 命令提示符不是 DOS. 現在還有的 DOS 是都不是微軟的, 而是第三方開源的.
2. Windows 中的啓動腳本,不需要用戶登錄即可運行. 需要用戶登錄的是登錄腳本. 設置入口: 組策略, 工作組 gpedit.msc, 域: gpmc.msc
3. Windows 任務計劃除了依據像 *nix 傳統的 crontab/cron 那樣依據時間觸發外,
還可以通過其他條件觸發, 比如人員登錄, 鎖定系統, 事件發生. 如果 UPS 相關軟件會在系統日誌中留下記錄的話, 那麼就可以通過
這些的話, 只要通過觀察 taskschd.msc 和 schtasks 是不難發現.
而且 NT 6 系的任務計劃可以將任務配置導出爲 XML 文件, 方便備份.
4. 向遠程 *nix 主機進行測試, 不一定要執行特權任務, 可以是普通任務.
比如: 在遠程 *nix 主機上使用一個普通用戶賬戶來接收特定消息, 收到後執行 echo -e "$(date)\tMESSAGE" > log
覆蓋寫入. 如果當心對系統有影響, 還可以限制每次寫入的時間間隔, 防止不恰當的連續寫入.
如果非常擔心對正式環境有影響, 那麼可以找兩臺空閒 PC, 分別安裝 FreeBSD 和 Linux, 然後進行接近正式環境的測試.
5. Windows 任務計劃也存在一些需要注意的地方.
在 NT 5 系中, 如果像啓動腳本編寫的內容比較多, 比較複雜, 或者依賴於網絡, 那麼當
用戶登錄時可能會看到實際執行任務的 cmd .
如果存在高 磁盤 IO 佔用的情況下, 任務計劃在執行基於事件的任務時可能會延遲啓動, 一般出現在剛剛開機(或從休眠恢復)時.
6. 也可以不通過組策略, 而直接使用任務計劃的 onstart 類型.Folding@Home
-
启动脚本可是先于用户登录执行的。启动脚本与登录脚本不一样。
Alexis Zhang
http://mvp.support.microsoft.com/profile/jie
http://blogs.itecn.net/blogs/alexis推荐以 NNTP Bridge 桥接新闻组方式访问论坛。
本帖是回复帖,原帖作者是楼上的 <jonesliu>;
| 所以目前如果服务设置为启动脚本,就无法在电脑没有登陆时候保护电脑。我们是一定要保证软件以服务方式启动
| 现在的问题是,这个脚本在dos下能执行,如果软件以非服务方式启动,也能被执行, 就是软件服务启动才不可以