如何更為合理地管理公司檔案伺服器?

2021-09-04 06:44:22 字數 4029 閱讀 9525

如何更為合理地管理公司檔案伺服器?

如何杜絕此類事件的再次發生!行政管理很重要,如何從技術層面解決呢?同時也在這乙個時期,認識接觸了很多圈內的朋友,經常溝通中不經發現,竟然有好多友人公司都存在這個問題!並且坦言均是一塊心病,這個問題就是:就是不想讓使用者私自安裝檔案伺服器以外的任何軟體!

公司是域環境,檔案伺服器上的工作用軟體已絕對滿足工作需要了,完全無需使用者(公司使用者全部是windows家族的作業系統)再去其它地方尋找安裝工作軟體,同時,有些軟體必須要在管理員模式下才能執行,大多軟體是可以執行在power users組下的許可權下。如何來做乙個整體的解決方案尤為重要!必竟我可不想,因前期考慮不周,最終影響到公司的業務執行!

與此同進度,一系列的問題均已浮現在眼前,也在困惑著我:

1.首先將每個使用者的本地管理員組的域使用者帳號降級為power users組;

2.檔案伺服器上的任何軟體,均要讓這些power users組域使用者順利執行安裝!

3.建立響應機制,以應對使用者個性化的需求,比如,某些特別崗位有時可能需安裝檔案伺服器以外的軟體。

問題1: 使用者許可權降級的問題,我試著在網上漫遊了一下,很多的解決方法。傳送門1

傳送門2  更多請自行去網上漫遊.....(本問題不是本文闡述的重點)

global  $adminname="localadmin" ;有許可權執行的使用者名稱  

global  $adminpassword="p@ssw0rd";使用者名稱的密碼  

global  $domain="test.com.cn"    ;公司網域名稱  

global  $admin=1 ;初始狀態,以留後用  

;檢測是否有管理員許可權,若沒有使用帳號:localadmin來執行  

if not isadmin() then

$admin=runas($adminname,$domain, $adminpassword,0,@autoitexe)  

if $admin=0 then exit(msgbox(16,"拒絕!","當前使用者無管理員許可權無法安裝."))  

endif 

問題3:百密終有一疏,對於一些個案用拿來的檔案伺服器上沒有的工作軟體,可以為他們定製授權的安裝程式,守住管理員許可權的陣地,核心:

global  $adminname="localadmin" ;有許可權執行的使用者名稱    

global  $adminpassword="p@ssw0rd";使用者名稱的密碼    

global  $domain="test.com.cn"    ;公司網域名稱    

$ver = filegetversion(@scriptdir&"\setup.exe") ;獲取使用者的setup.exe的的版本資訊  

if  $ver ="3.0.81.0"

then

;當然若你還是不放心,還可以借助時間限制,檔案位元組大小來解決等。可自由發揮  

$time=@year&@mon&@mday  

if $time

<>"20100909"

;若還是不放心,可借助當前登入的使用者名稱來限制  不寫了,根據需要發揮吧  

if @username<>"zhangsan"

; run a command prompt as the administrator.  

$pid = runas($adminname,$domain, $adminpassword,0,@scriptdir&"\setup.exe")  

; show a message.  

else

endif 

結合本文,略加修改,相信即可達到企業目的。

以上準備好了,就可以通過組策略布置拷貝到每個使用者的桌面上去了。>>>傳送門

本博附件是網友水木子原版開源共享的au3版的選單(感謝水木子的開源). 這個版本不支援企業unc路徑。請修改原始碼中的如下位置:

func creategroup($hwnd, $igroupid, $sheader, $stext, $simagefile, $nicoid = -1);建立分組,引數1控制項控制代碼、引數2分組id、引數3分組標題  

; if stringregexp($simagefile, '(?i)[a-z]:\\.+\.\w') = 0 then

;  $simagefile = 'shell32.dll'

;  $nicoid = 4  

; endif  

guictrlcreatelistviewitem($stext, $hwnd)  

if stringregexp ($simagefile, "(?s).msi\z") then

guictrlsetimage(-1, @autoitexe, $nicoid)  

else

guictrlsetimage(-1, $simagefile, $nicoid)  

endif     

$inumber = _guictrllistview_getcounterpage($hwnd) - 1;計算在可視區域中可垂直顯示的專案數量  

_guictrllistview_enablegroupview($hwnd);啟用控制項中的專案分組顯示  

_guictrllistview_insertgroup($hwnd, -1, $igroupid, $sheader & ' ');插入分組  

_guictrllistview_setitemgroupid($hwnd, $inumber, $igroupid);設定專案分組編號  

endfunc   ;==>creategroup 

func runprogram($nevent)  

$iindex = _guictrllistview_getselectedindices($hlistview[$ipage])  

if $iindex <> ''

then

$sitemtext = _guictrllistview_getitemtext($hlistview[$ipage], number($iindex))  

$asoftpath = stringregexp(fileread($path), $sitemtext & '=(.+?)\r', 3)  

$aworkpath = stringregexp($asoftpath[0], '(.+)\\', 3)  

if $nevent = 1 then

if stringregexp ($asoftpath[0], "(?s).msi\z") then

if $admin=1 then

runas($adminname, $domain, $adminpassword,0,"msiexec /package "&$asoftpath[0])  

else

run("msiexec /package "&$asoftpath[0])   

endif    

else

if $admin=1 then

runas($adminname, $domain, $adminpassword,0,$asoftpath[0])  

else

run($asoftpath[0])   

endif   

endif     

endif  

if $nevent = 2 then

$tmpcopyvar = fileselectfolder("拷貝到:", "")  

if $tmpcopyvar <>""

then

_dircopy($aworkpath[0],$tmpcopyvar)  

msgbox(262144,"提示","執行完畢")  

shellexecute($tmpcopyvar)  

;shellexecute($aworkpath[0])  

endif  

endif  

if $nevent = 3 then

return $sitemtext  

endif  

endfunc   ;==>runprogram 

如何合理地建立 Mysql 索引

前言 索引基礎知識 建立索引 alter table table name add index index name 刪除索引 alter table table name drop index index name 檢視表中的索引 show index from table name 如何優化sq...

如何合理地安排窗體的啟動順序?

public sub main 顯示登入對話方塊 dim frmsplash as frmsplashscreen new frmsplashscreen frmsplash.show threading.thread.sleep 3000 frmsplash.close 顯示使用者登入對話方塊 d...

如何合理地安排窗體的啟動順序?

在開發程式過程如何更好安排frmspash窗體,登入窗體frmlogin,及主窗體是新手經常遇到的煩腦,這是本人經常使用的乙個過程,供大家參考,這段代面要放到module中來執行。public sub main application.enablevisualstyles application.s...