iT邦幫忙

0

加入網域某些程式不能使用

請問各位大大...因為有些電腦需要使用特殊軟體...但這些軟體都必需要使用到管理者的權限才能正常使用..請問有其他方式讓他用user權限但也能正常使用軟體嗎?

16
蟹老闆
iT邦大師 1 級 ‧ 2009-12-03 09:49:08
最佳解答

hihi,你可以建立一個批次檔內容如下:

<pre class="c" name="code">
runas 管理者帳號 程式路徑含副檔名

這個方式需要手動輸入密碼,不適合給一般使用者用,可以改用廠商所開發的runasspc

<pre class="c" name="code">
'Start of Script 
'v1.2 March 2001 
'Jeffery Hicks 
'jhi...@quilogy.com http://www.quilogy.com 
'USAGE: cscript|wscript VBRUNAS.VBS Username Password Command 
'DESC: A RUNAS replacement to take password at a command prompt. 
'NOTES: This is meant to be used for local access. If you want to run a command 
'across the network as another user, you must add the /NETONLY switch to the RUNAS 
'command. 


' ***************************************************************************-****** 
' * THIS PROGRAM IS OFFERED AS IS AND MAY BE FREELY MODIFIED OR ALTERED AS * 
' * NECESSARY TO MEET YOUR NEEDS. THE AUTHOR MAKES NO GUARANTEES OR WARRANTIES, * 
' * EXPRESS, IMPLIED OR OF ANY OTHER KIND TO THIS CODE OR ANY USER MODIFICATIONS. * 
' * DO NOT USE IN A PRODUCTION ENVIRONMENT UNTIL YOU HAVE TESTED IN A SECURED LAB * 
' * ENVIRONMENT. USE AT YOUR OWN RISK. * 
' ***************************************************************************-****** 


On Error Resume Next 
dim WshShell,oArgs,FSO 


set oArgs=wscript.Arguments 


if InStr(oArgs(0),"?")<>0 then 
wscript.echo VBCRLF & "? HELP ?" & VBCRLF 
Usage 
end if 


if oArgs.Count <3 then 
wscript.echo VBCRLF & "! Usage Error !" & VBCRLF 
Usage 
end if 


sUser=oArgs(0) 
sPass=oArgs(1)&VBCRLF 
sCmd=oArgs(2) 


set WshShell = CreateObject("WScript.Shell") 
set WshEnv = WshShell.Environment("Process") 
WinPath = WshEnv("SystemRoot")&"\System32\runas.exe" 
set FSO = CreateObject("Scripting.FileSystemObject") 


if FSO.FileExists(winpath) then 
'wscript.echo winpath & " " & "verified" 
else 
wscript.echo "!! ERROR !!" & VBCRLF & "Can't find or verify " & winpath &"." & VBCRLF & "You must be running Windows 2000 for this script to work." 
set WshShell=Nothing 
set WshEnv=Nothing 
set oArgs=Nothing 
set FSO=Nothing 
wscript.quit 
end if 


rc=WshShell.Run("runas /user:" & sUser & " " & CHR(34) & sCmd & CHR(34), 2, FALSE) 
Wscript.Sleep 30 'need to give time for window to open. 
WshShell.AppActivate(WinPath) 'make sure we grab the right window to send password to 
WshShell.SendKeys sPass 'send the password to the waiting window. 


set WshShell=Nothing 
set oArgs=Nothing 
set WshEnv=Nothing 
set FSO=Nothing 


wscript.quit 


'************************ 
'* Usage Subroutine * 
'************************ 
Sub Usage() 
On Error Resume Next 
msg="Usage: cscript|wscript vbrunas.vbs Username Password Command" & VBCRLF & VBCRLF & "You should use the full path where necessary and put long file names or commands" & VBCRLF & "with parameters in quotes" & VBCRLF & VBCRLF &"For example:" & VBCRLF &" cscript vbrunas.vbs quilogy\jhicks luckydog e:\scripts\admin.vbs" & VBCRLF & VBCRLF &" cscript vbrunas.vbs quilogy\jhicks luckydog " & CHR(34) &"e:\program files\scripts\admin.vbs 1stParameter 2ndParameter" & CHR(34)& VBCRLF & VBCRLF & VBCLRF & "cscript vbrunas.vbs /?|-? will display this message." 

wscript.echo msg 

wscript.quit 

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

所以這個要怎麼使用?

蟹老闆 iT邦大師 1 級 ‧ 2009-12-03 20:59:54 檢舉

實際試了一下那個程式碼,效果不好
需要改的部份在第64行,時間需要久一些,另外執行該runas命令帶出來的視窗必須擁有焦點,否則66行送出的密碼將會送錯地方XD
另外找到一個國人開發的小軟體試用了一下還不錯,你可以試試。
http://www.dotblogs.com.tw/dllee/archive/2008/04/29/3631.aspx

蟹老闆 iT邦大師 1 級 ‧ 2009-12-03 21:01:27 檢舉

那個不好用的程式碼用法:
xxx.vba 系統管理員 密碼 程式路徑含副檔名

蟹老闆 iT邦大師 1 級 ‧ 2009-12-04 09:28:48 檢舉

HeHe,那個不好用的程式經下列修改已可正常使用了

rc=WshShell.Run("runas /user:" & sUser & " " & CHR(34) & sCmd & CHR(34), 2, FALSE)
改成
rc=WshShell.Run("runas /user:" & sUser & " " & CHR(34) & sCmd & CHR(34), 1, FALSE)
會自動把新開的視窗帶到最上方。
等待時間依電腦開新視窗的速度來修改,我的是100

8
hualeo
iT邦新手 4 級 ‧ 2009-12-03 09:47:02

請上網搜尋 "CPAU"

8
外獅佬
iT邦大師 1 級 ‧ 2009-12-03 12:11:51

可以給local administrator嗎?
可以的話,開local machine的administrator權限就好囉...

不行,請參考樓上大大的作法。

不想給予管理者權限...

8
michaelwan
iT邦高手 1 級 ‧ 2009-12-03 14:44:36

通常,把該程式存在的檔案路徑權限開啟或是登錄權限開啟就可以執行.

不過你只提到"特殊軟體", 所以也不保證.

8
bestken
iT邦新手 1 級 ‧ 2009-12-04 08:30:34

老問題摟~
請使用AutoHotkey來解決!快速~方便!
說明檔
安裝程式檔
權限教學

14
winnt2000
iT邦新手 3 級 ‧ 2009-12-04 09:05:08

一般來說加入網域後因為權限的關係,一般用戶許多東西都可以被限制住不能執行,就像我會將PC管控成 Thin Client 一樣,但是我很多程式仍然可以執行( PC 沒有硬碟槽全被我引藏掉了 ),問題解決方式就是要將檔案安裝路徑( 例如:Program Files 以下的資料夾權限必須要能夠讓 Domain User 讀取,我遇過 Dr.eye 是要寫的權限也要有 ),所以你可以用虛擬機測試一下,如何作可以兼顧到控管安全性與使用順利性,謝謝!!

mrhsieh iT邦好手 4 級 ‧ 2009-12-04 09:55:28 檢舉

沒錯,這是最簡的正解,只要在軟體路徑的資料夾中加入Domain user的權限就可以使用了

好的...這個我再試試...
因為試過是一定要到管理者權限才能使用...

大部份國外的軟體這樣的問題比較小, FOLDER 加入權限之後就可以使用, 如 FIREFOX.
但台制的軟體就很傷腦筋了, 除了像 DR.EYE 沒什麼大問題之後. 其他很多部不行.
我覺得台灣的軟體設計很糟的地方就是這裡.
有一次我去問到了軟體公司的工程師, 他說, 一定要有 WINDOWS\SYSTEM 的權限才可以.... 而且要寫入.
我聽了差點昏倒.
難怪台灣軟體業人很多, 有的公司就那麼幾家而已, 真不是沒道理的.

4
marshuang
iT邦新手 1 級 ‧ 2009-12-11 10:50:25

還有一種方法, 用於有些軟體會回寫資訊至機碼中, 由於權限關係不允許其回寫, 通常可以直接到本機上用Regedit進去開放機碼特定目錄給這程式網域使用者權限即可.
過去常用於如Dr.Eye或會計.人事等應用軟體.不需給網域使用者本機的管理者權限, 這樣太危險且日後麻煩.

4
hanrouwu
iT邦新手 5 級 ‧ 2009-12-14 15:27:14

請試著用網路識別試試看吧!!
我的電腦-->右鍵-->內容-->電腦名稱-->底下有個網路識別
要做網路識別~您必須有可加入DOMAIN帳號的權限~謝謝

我要發表回答

立即登入回答