2013-11-05 24 views
3

我想編寫一個腳本來將域用戶添加到本地管理員組。 我已經嘗試過有點更具挑戰性 - 批處理腳本將域用戶添加到本地管理員組Windows 7

NET LOCALGROUP Administrators "domain\domainuser" /ADD 

但我得到拒絕訪問錯誤。

問題是,如果我想將其作爲域用戶運行,它不具有本地管理員權限,並且如果作爲本地管理員,則它不具有對域名的訪問權限。 (我不希望使用域管理員)

如果我手動右鍵單擊計算機圖標,比管理,我在計算機名稱輸入/本地管理員用戶名/密碼,比本地用戶和羣組 - >羣組文件夾我要將用戶添加到管理員,系統提示我再次登錄。如果我登錄,而不是域用戶,它就可以工作。

我的問題是,如果可以用批處理腳本做同樣的事情(或類似的事情)?

回答

2

我有另一種方式解決它,使用2個批處理文件 所以,我給你我的代碼:

這在c創建一個文件夾:,比創建一個文本文件,它複製當前用戶的名稱,而不是同一文件夾中的其他批處理文件,並最終以本地管理員身份運行它。如果你寫正確的密碼(密碼將不會顯示爲「*」,當你把它寫):

mkdir c:\tempfiles$ 
break>c:\tempfiles$\temp.txt 
echo %username% >> "c:\tempfiles$\temp.txt" 
copy "%~dp0\admin.bat" "c:\tempfiles$" 
runas /noprofile /env /user:%computername%\<LOCAL ADMIN USER> "C:\tempfiles$\admin.bat" 
pause 
rmdir /s /q "c:\tempfiles$" 

的admin.bat,需要在文本文件中writen的用戶名(如果不是,它會將%username%作爲本地管理員用戶名添加它,因爲我們將其作爲本地管理員運行) 批處理文件的副本只是必需的,因此您可以從任何地方運行它。例如,如果你將它放在服務器的映射驅動器上,它將無法工作。

set /p u=<c:\tempfiles$\temp.txt 
net localgroup Administrators /add <DOMAIN NAME>\%u% 

我已經在多臺計算機上試過它,大部分計算機上都運行它。在某些電腦上,這可能是因爲我公司的當地政策。我還沒有想象出來。

如有任何問題或建議,請放心地撰寫您的意見。

3

也許,從VBS

GetObject("WinNT://" + WScript.CreateObject("WScript.Network").ComputerName + "/Administrators").Add "WinNT://DomainName/UserName" 
+0

如果我用cmd以本地管理員權限調用vbs,它的工作。感謝您的快速回答! – Divin3

0

此批處理文件的目的是獲取域組成員並將其添加到本地組。您必須右鍵單擊此文件並選擇以管理員身份運行。

@echo off 
setlocal EnableDelayedExpansion 
set /p v1=[Enter Domain Group Name] 
set /p v2=[Enter domain name: xxx.com ] 
set /p v3=[Enter Localgroup "Name"] 

For /F "skip=8 tokens=1 delims= " %%G IN ('net group %v1% /domain')^
DO if %%G neq The net localgroup %v3% %v2%\%%G /add 
timeout /t 1 

For /F "skip=8 tokens=2 delims= " %%G IN ('net group %v1% /domain')^
DO if %%G neq command net localgroup %v3% %v2%\%%G /add 
timeout /t 1 

For /F "skip=8 tokens=3 delims= " %%G IN ('net group %v1% /domain')^
DO if %%G neq completed net localgroup %v3% %v2%\%%G /add 
timeout /t 1