Предлагаю в данной теме выкладывать скрипты которые облегчают админам жизнь. скрипт делает бык-уп системы и заливает его на фтп Code: strComputer = "." Set WshShell = WScript.CreateObject("WScript.Shell") strCommand = "C:\WINDOWS\system32\ntbackup.exe backup @C:\cmd\Back-UP-Drive-C.bks /a /v:no /r:no /rs:no /hc:off /m normal /j Back-UP-Drive-C /l:s /f D:\Back-Up\Backup-drive-c.bkf" WshShell.Run strcommand, 1, true Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_LocalTime") For Each objItem in colItems strCommand = "C:\Arch\7z.exe a D:\Back-Up\Backup-dc-srv-01-DayOf-Week-"&objItem.DayOfWeek&".7z D:\Back-Up\*.bkf -t7z -m0=BCJ2 -m1=LZMA:d23 -m2=LZMA:d19 -m3=LZMA:d10M -mb0:1 -mb0s1:2 -mb0s2:3" Next WshShell.Run strcommand, 1, true strCommand = "ftp -s:C:\CMD\ctp-command.txt" WshShell.Run strcommand, 1, true Получаем информацию об учетных записях пользователей на удаленном компе Code: On error Resume Next Const ForReading = 1, ForWriting = 2, ForAppending = 8 '****************************************** strComputer = "193.125.10.5" strUser = "Andy_user" strPassword = "PASSWORD" strDomain = "" '****************************************** Err.Clear '--- Подключаемся --- Set objSWbemLocator = CreateObject ("WbemScripting.SWbemLocator") If (Err.Number <> 0) Then WScript.Echo "Error (objSWbemLocator) : " & Err.Number & " " & Err.Description WScript.Quit End If Err.Clear Set objSWbemServices = objSWbemLocator.ConnectServer ( _ strComputer, _ "root\cimv2", _ strUser, _ strPassword, _ "MS_409", _ "ntlmdomain:" & strDomain) If (Err.Number <> 0) Then WScript.Echo "Error (objSWbemServices) : " & Err.Number & " " & Err.Description WScript.Quit End If Err.Clear Set file_object = CreateObject("Scripting.FileSystemObject") Set list = file_object.OpenTextFile("./Rezult.log",ForWriting,True) Set colAcc = objSWbemServices.ExecQuery ("Select * from Win32_UserAccount") WScript.Echo "Обнаружено " & colAcc.Count & " учетных записей." For Each ttt in colAcc list.Write ttt.Caption & " " & vbCrLf list.Write " " & "Caption : " & ttt.Caption & vbCrLf list.Write " " & "Name : " & ttt.Name & vbCrLf list.Write " " & "Description : " & ttt.Description & vbCrLf list.Write " " & "Domain : " & ttt.Domain & vbCrLf list.Write " " & "SID : " & ttt.SID & vbCrLf list.Write " " & "SIDType : " & ttt.SIDType & vbCrLf list.Write " " & "Disabled : " & ttt.Disabled & vbCrLf list.Write " " & "Lockout : " & ttt.Lockout & vbCrLf list.Write " " & "PasswordChangeable : " & ttt.PasswordChangeable & vbCrLf list.Write " " & "PasswordExpires : " & ttt.PasswordExpires & vbCrLf list.Write " " & "PasswordRequired : " & ttt.PasswordRequired & vbCrLf list.Write " ------------------------------- " & vbCrLf Next list.Close Выключение удаленной машины (по сети) от доменного администратора Code: Set OpSysSet = GetObject("winmgmts:{impersonationLevel=impersonate,(RemoteShutdown)}//FNQ-имя-серверера-для-убийства").ExecQuery("select * from Win32_OperatingSystem where Primary=true") for each OpSys in OpSysSet OpSys.Shutdown() Next Code: @echo off if "%1"=="" (goto HELP) dsquery group -name %1 | dsget group -members | sort goto END :HELP cls @echo ********************************************************************* @echo * %0 выводит список членов группы, @echo * заданой в качестве параметра запуска @echo * @echo Пример: @echo %0 group_name :END Code: @echo off >null if not "%OS%"=="Windows_NT" goto :exit if "%1"=="" (set INFO=echo && set THEEND=1) else (set INFO=rem && set THEEND=0) %INFO% *********************************************************************** %INFO% * %INFO% * "Оптовое" изменение пути к профилю пользователей для заданного OU %INFO% * (ппрописываем путь на сервер f05) %INFO% * %INFO% *********************************************************************** %INFO% * %INFO% * Пример запуска: %INFO% * %0 ^<имя_OU^> %INFO% * %INFO% Результат работы: if "%THEEND%"=="1" (echo Ошибка: Вы не задали имя подразделения!)&(goto :exit) dsquery user "OU=%1,OU=mega,DC=main,DC=local"| dsmod user -profile "\\f05\UserFolders\%1\$username$\Profile" :exit Скрипт для определения по известному MAC-адресу IP-адрес машины, присутствующей в локальной IP-сети (где расположена машина, на которой скрипт выполняется Code: 'On Error Resume Next Const ForReading = 1 Find_MAC = "00-80-ad-06-c2-f9" Set oShell = WScript.CreateObject ("WScript.Shell") For i = 1 To 254 Step 1 Return = oShell.Run ("ping -n 1 -w 10 193.125.1." & i , 0, false) Next WScript.Sleep(8000) Return = oShell.Run ("cmd /C arp -a > .\Rezult.txt" , 0, True) Set Fso = CreateObject("Scripting.FileSystemObject") Set My_File = Fso.OpenTextFile( ".\Rezult.txt", ForReading, True) Do While My_File.AtEndOfStream <> True ReadLineTextFile = My_File.ReadLine If InStr(ReadLineTextFile,Find_MAC) <> 0 Then WScript.Echo ReadLineTextFile End If Loop My_File.Close WScript.Quit(0) Code: 'Смена стандандарного названия "Мой компьютер" на нечто более внятное. 'Типа "Мой компьютер %COMPUTERNAME% на %USERNAME%" 'Полезно при удаленных разборках с пользователями, особенно кода пользак не знает как называется его комп. Const MY_COMPUTER = &H11& Set objNetwork = CreateObject("Wscript.Network") objComputerName = objNetwork.ComputerName objUserName = objNetwork.UserName Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.Namespace(MY_COMPUTER) Set objFolderItem = objFolder.Self objFolderItem.Name = "Мой копьютер" & vbNewLine &(objUserName) & vbNewLine & "на " & (objComputerName)
Книга по сабжу: Скрипты для администратора Windows. Автор: Джесси Торрес Книга содержит базовые сведения, описания и примеры скриптов, используемых для администрирования Windows. Рассматриваются основные команды и ключевые слова, используемые в интерпретаторе .bat файлов, интерпретаторе KiXtart и Windows Script Host. В книге приведены рабочие примеры скриптов, выполняющих самые разнообразные задачи по автоматизации работы в среде Windows. Качаем тут: http://rapidshare.com/files/17408045/Skripty_dlya_administratora_Windows.rar