檔案名稱:querycomputer.bat
功能:尋找域內未分組的電腦,並顯示電腦名稱和加域的使用者
作用:可以實施監視電腦列表,以提醒進行電腦分組,也可審核電腦命名是否規範,確定責任人。
注意事項:批處理運行前,最好先將現有的域內computers容器內的電腦全部按OU分組,指令碼運行後會羅列computers容器內的新電腦。
複製代碼 代碼如下:@echo off
echo 域內未分組電腦監視
echo 如果找到電腦,將顯示找到的電腦列表,並通過PC喇叭提示。
echo.
cd /d %~dp0
rem 設定NETBIOS網域名稱
set domain=DOMAINNAME
rem 設定網域名稱
set DC=mydomain
set DC1=com
:loop
set found=0
rem 搜素comouters
for /f %%i in ('dsquery computer CN^=Computers^,DC^=%DC%^,DC^=%DC1%') do set found=1
rem 如果找到電腦,調用顯示模組
if %found%==1 call :display
ping -n 600 127.0.0.1 >NUL 2>&1
goto loop
goto :eof
:display
echo %date% %time% found following computers:
rem 讀取電腦AD路徑,並調用顯示資訊模組
for /f %%i in ('dsquery computer CN^=computers^,dc^=%DC%^,dc^=%DC1%') do call :info %%i
goto :eof
:info
set dsname=%1
set dsname1=//%DC%.%DC1%/%dsname:"=%
rem 擷取電腦名稱
for /f "tokens=2,3* delims=,=" %%i in ('echo %dsname%') do set name=%%i
rem 顯示電腦許可權,並顯示可以設定DNS資訊的許可權使用者(加域的人),dscals需要安裝Support Tools
dsacls %dsname1% |find "%domain%" |find "DNS" >name.txt 2>&1
for /f "tokens=1,2,3*" %%i in (name.txt) do set user=%%j
echo %name%,%user%
rem 記錄資訊
echo %name%,%user%>>"%date%.csv"
rem beep警示,beep自己寫或到網上找
echo.
Beep 1500 500
Beep 500 500
Beep 1500 500
Beep 500 500
Beep 1500 500
Beep 500 500
Beep 1500 500
Beep 500 500
goto :eof