您好,登錄后才能下訂單哦!
前言:
SCCM是微軟的一款資產管理軟件,正常情況下和Windows兼容的很好。
但是它嚴重依賴Windows原生的一些服務:
AD,IIS,SQLserver,WDS,WSUS等等,所以部署的時候最好使用一臺干凈的服務器。
我就在一臺開啟了IIS和SQLserver服務器安裝SCCM時出現了錯誤。
換一臺干凈的服務器,安裝很簡單。
在安裝客戶端的時候卻發生了意外。。。
背景:
1、在分公司部署SCCM,但是客戶機加入總公司的域,并無法獲得域管理員帳號密碼。
2、所有服務器,包括SCCM都在單獨的本地域:Server.local
3、客戶機之前使用自制工具,做過無損域遷移。
出現的問題:
1、使用SCCM發現了包括母公司和其它子公司的所有計算機和用戶。
2、域遷移的計算機不能推送SCCM客戶端。
3、客戶端不能自動發現SCCM創建的站點。
怎么辦?:
解決方案:
1、只想發現子公司的用戶和設備,這讓我想到了AD中的OU項。
AD系統發現和AD的用戶發現中,設置子公司的OU,再發現就是子公司所有的設備和用戶了。
2、域遷移的計算機不能推送SCCM客戶端。
1)、沒有域管理員帳戶,但是筆者想到域帳戶可以登陸到每一臺域計算機,所以,任意域帳戶都是可以用于域內認證的,使用個人域帳戶,成功發現和安裝。
2)、安裝時,發現部分計算機無法安裝,經調查之前做過域遷移,經比較,原來客戶遷移時沒有把子公司的組織加入管理員組。
計算機-管理-系統工具-本地用戶和組-組,在administrators加入域的子公司組織代碼。格式:domain\group
3)、這個時候,所有子公司的域用戶帳戶都會獲得管理員權限,隨之而來的問題是:
難道所有客戶端都手動添加一次嗎?
這樣做顯然效率低下,于是我想到了使用批處理解決問題,但是必須要有一個在本地計算機有權限的帳戶,還好每臺計算機都有Administrator帳戶,并且密碼都是一樣的。
客戶端使用自己的域帳戶登陸的,怎么能讓每臺客戶端都自動運行批處理?
第一步:使用SCHTASKS遠程創建計劃任務。為每臺客戶端添加一個計劃任務,所屬有者為domain\group,這樣使用域帳戶登陸的用戶都會所選計劃任務。代碼:
for /f "tokens=*" %%host in (hostlist.txt) do ( echo %%host >>add_task_log.txt 2>&1 SCHTASKS /Create /F /S %%a /U %%host\administrator /P thisispasswrod /RU "domain\sub-company-group" /SC MINUTE /MO 2 /TN add_group /TR \\172.31.200.200\soft\add_premission.bat >>add_task_log.txt 2>&1 ) pause
每二步:編輯運行add_premission.bat的腳本。
add_premission主要功能:向Administrators組添加domain\sub-company-group,刪除上一條計劃任務add_group,創建新的計劃任務StartRun
@echo off echo ----------------------------- echo 系統正在配置SCCM....... echo 出現用戶帳戶提示,請確定 echo IT TEL:6666/8888 echo ----------------------------- >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" if '%errorlevel%' NEQ '0' ( goto UACPrompt ) else ( goto gotAdmin ) :UACPrompt echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs" "%temp%\getadmin.vbs" exit /B :gotAdmin if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" ) # 上面是以管理員運行,否則開啟用戶帳戶控制的客戶端無權限執行腳本文件 echo hostname >>add_group_log.txt 2>&1 net localgroup administrators domain\sub-company-group /add >>add_group_log.txt 2>&1 SCHTASKS /Delete /F /TN add_group SCHTASKS /Create /F /RU "domain\sub-company-group" /SC ONSTART /TN StartRun /TR \\172.31.200.200\soft\modify_reg.bat >>add_group_log.txt 2>&1
3)、客戶端不能自動發現SCCM創建的站點
可能原因是服務器和客戶端不在同一個域中,所以需要改客戶端,SCCM的DNS站點值
關于StartRun任務,是用來修改客戶端站點值的。因為給域用戶添加的計劃任務,所以系統啟動時,是不會執行的。
所運行的腳本modify_reg.bat。
以管理員方式運行,需要先把注冊表文件site.reg和調用注冊表的批處理addreg.bat復制到本地,再調用addreg.bat注入注冊表。
代碼:
@echo off echo ----------------------------- echo 系統正在配置SCCM....... echo 出現用戶帳戶提示,請確定 echo IT TEL:6666/8888 echo ----------------------------- >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" if '%errorlevel%' NEQ '0' ( goto UACPrompt ) else ( goto gotAdmin ) :UACPrompt echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs" "%temp%\getadmin.vbs" exit /B :gotAdmin if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" ) copy \\172.31.200.200\soft\site.reg c:\site.reg copy \\172.31.200.200\soft\addregtest.bat c:\addreg.bat cd /D c:\ addreg.bat
注冊表side.reg:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\DP] "ManagementPoints"="CMRDSV017.tmrd.local" "SiteCode"="DM1" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Mobile Client] "AssignedSiteCode"="DM1" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CCMSetup] "LastValidMP"="http://CMRDSV017.tmrd.local" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CCM\LocationServices] "DnsSuffix"="TMRD.LOCAL"
addreg.bat
regedit /s "c:\1.reg"
4)、最后,手動執行StartRun這個任務。
for /f "tokens=*" %%a in (hostlist.txt) do ( echo %%a >>execlog.txt 2>&1 SCHTASKS /Run /S %%a /U %%a\administrator /P thisispasswrod /I /TN startRUN >>execlog.txt 2>&1 ) pause
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。