Полезные скрипты
Всем нам приходилось сталкиваться с решением нестандартных задач, таким как обход групповых политик или же ограничение прав пользователя. Ниже приведу несколько, на мой взгляд полезных, скриптов. Кто-то, возможно, сочтет это ненужной и даже вредной информацией 🙂
1. Блокировка диспетчера задач.
Этот reg-файл позволяет запретить вызов taskmgr.exe
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem] "DisableTaskMgr"=""
2. Обход экранной заставки.
Часто администраторы домена, помешенные на безопасности, вводят политику блокировки рабочего стола при неактивности пользователя. Допустим что стоит блокировка через 5 минут. Не факт, что пользователь неактивен, он мог просто отвлечься на телефонный звонок и блокировка вызовет негодование (нужна информация с экрана для диалога). Тут предлагаю использовать VBS-скрипт, помещаемый в автозагрузку. Он не дает выполнить блокировку, имитируя нажатие пользователем клавиши NUMLOCK:
t=4 ' минуты set shell = WScript.CreateObject("WScript.Shell") while true : shell.SendKeys "{NUMLOCK}{NUMLOCK}" : WScript.Sleep t*60000 : wend
3. Массовая расстановка ярлыков пользователям AD.
Иногда возникает необходимость всем пользователям домена или его определенной группы выполнить добавления ярлыка на рабочий стол. Для выполнения этой задачи, как вариант, можно прописать в логон-скрипте следующий код (VBS)
Option Explicit Dim oShell, oShortCut, sDeskTopPath Set oShell = CreateObject("Wscript.Shell") sDeskTopPath = oShell.SpecialFolders("AllUsersDesktop") Set oShortCut = oShell.CreateShortcut(sDeskTopPath & "Имя ярлыка.lnk") oShortCut.TargetPath = "\путь к размещению" oShortCut.Save
4. Подключение сетевых дисков VBS-скриптом.
Приведенный ниже скрипт выполняет подключение сетевых дисков, при условии, что текущий пользователь имеет доступ к ресурсу:
Set objShell = CreateObject("WScript.Shell") Set objNetwork = CreateObject("WScript.Network") Set CheckDrive = objNetwork.EnumNetworkDrives() ' мапируем диски пользователя objNetwork.MapNetworkDrive "t:", "\серверdocum" ' документы служебные objNetwork.MapNetworkDrive "y:", "\серверpub" ' документы общие objNetwork.MapNetworkDrive "w:", "\серверftp" ' дистрибутивы ' завершили мапирование дисков пользователя
5. Сбор информации об установленном ПО и сохранение ее в файл VBS-скриптом.
Приведенный ниже скрипт собирает информацию о ПО, имени пользователя, имени ПК и дате установки ПО:
' путь, где будет создан файл с информацией о приложениях strPath = strRemotePath strComputer = "localhost" ' Проверяем локальный компьютер ' Запускаем процедуру сбора информации GetInstalledSoftware() Sub GetInstalledSoftware() On Error Resume next Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\" & _ strComputer & "rootdefault:StdRegProv") If Err <> "0" Then Exit Sub End If ' Путь к разделу реестра Uninstall, содержащему информацию об установленных компонентах unKeyPath = "SoftwareMicrosoftWindowsCurrentVersionUninstall" unValueName = ("DisplayName") objReg.EnumKey HKLM, unKeyPath, arrSubKeys i=0 For Each Subkey in arrSubKeys objDictionary2.Add i, unKeyPath & ""& subkey & (Enter) i=i+1 Next pcName = "SYSTEMCurrentControlSetControlComputerNameActiveComputerName" pcNameValueName = "ComputerName" userPath = "SoftwareMicrosoftWindows NTCurrentVersionWinlogon" userValueName = "DefaultUserName" objReg.GetStringValue HKLM,pcName,pcNameValueName,pcValue objReg.GetStringValue HKLM,userPath,userValueName,userValue strFileName = UserValue & "_" & "On" & "_" & PCValue & "_"& "Software" _ Set objTextFile2 = objFSO.OpenTextFile(strPath & strFileName, ForWriting, True) objTextFile2.WriteLine(vbCRLF & _ "Current Installed Software " & vbCRLF & Time & vbCRLF & Date _ & vbCRLF & "Software For:" & "" & userValue & vbCRLF & "On System:" _ & "" & pcValue & vbCRLF) For Each objItem in objDictionary2 strKeyPath = objDictionary2.Item(objItem) objReg.GetStringValue HKLM ,strKeyPath, unValueName, strValue objTextFile2.WriteLine (strValue) If Err Then objDictionary2.Remove(objItem) End If Next End Sub wscript.Quit
Пункты 4 и 5 можно объединить в один скрипт.
6. Сохранение пароля (быстрый вход) в SAP ERP системах.
Часто встречающаяся софтина в государственных и крупных коммерческих структурах. По роду деятельности тоже ей пользуюсь и утомляет постоянный ввод различных комбинаций логина и пароля. Для упрощения задачи, после того как в логон-группах созданы записи, применение ниже приведенного скрипта позволяет создавать ярлыки на системы с сохранением учетной записи и соответствующего пароля.
REG-файл:
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USERSoftwareSAPSAPShortcut] [HKEY_CURRENT_USERSoftwareSAPSAPShortcutSecurity] "EnablePassword"="1"
7. Остановка нежелательного процесса в ОС Windows.
Иногда возникает необходимость прибить процесс из командной строки и через какое-то время его запустить.. Для этой цели я применяю cmd файл следующего содержания:
@Echo Off SetLocal EnableExtensions Set ProcessName=javaw.exe TaskList /FI "ImageName EQ %ProcessName%" | Find /I "%ProcessName%" if %ErrorLevel% ==0 TASKKILL /IM javaw.exe /f echo Процесс контроля печати остановлен. До его запуска осталось: :wait... TIMEOUT /T 20 startjobprn.cmd
Через 20 секунд происходит запуск прибитого процесса. Здесь выведено запуском посредством отдельного командного файла (можно объеденить)
8. Запрет и разрешение запуска Internet Explorer.
Ниже приведенные два REG-файла отличаются только наличием символа «-» перед именем раздела реестра. Первый запрещает, второй снимает запрет.
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsSaferCodeIdentifiers\0Paths{fc768d98-109c-4ac5-8e23-76e7576365bc}] "LastModified"=hex(b):d2,2e,d8,5d,f9,3c,c8,01 "Description"="" "SaferFlags"=dword:00000000 "ItemData"="C:\Program Files\Internet Explorer\iexplore.exe"
Windows Registry Editor Version 5.00 [-HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsSaferCodeIdentifiers\0Paths{fc768d98-109c-4ac5-8e23-76e7576365bc}] "LastModified"=hex(b):d2,2e,d8,5d,f9,3c,c8,01 "Description"="" "SaferFlags"=dword:00000000 "ItemData"="C:\Program Files\Internet Explorer\iexplore.exe"