檔案名稱: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