|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - создание списка пк, на котором скрипт уже выполнялся |
|
VBS/WSH/JS - создание списка пк, на котором скрипт уже выполнялся
|
Старожил Сообщения: 473 |
Добрый день!!!
Ребята помогите допилить скрипт сам ноль в vbs-скриптах. Вообщем суть проблемы такая: с помощью групповых политик на машины пользователей ставится миранда и копируется папка с настроенной мирандай, все это через логон-скрпт. Нужно что бы скрипт после удачного копирования взял названия компа и записал куда-нибудь в шару, и при следующем запуске скрипта, он должен смотреть нет ли имени машины в списке, если нет то запускается. Как то так. вот листинг самого скрипта: set WshShell = WScript.CreateObject("WScript.Shell") set oFso = CreateObject("Scripting.FileSystemObject") strComputerName = WshShell.ExpandEnvironmentStrings("%computername%") If InStr(LCase(strComputerName), LCase("TNS-")) = 0 Then KillProcess() set objVer = WshShell.exec("%comspec% /c ver") strWindowsVer = objVer.stdout.readall strWindows = WshShell.ExpandEnvironmentStrings("%WinDir%") strWindowsOS = WshShell.ExpandEnvironmentStrings("%PROCESSOR_ARCHITECTURE%") strAppData = WshShell.ExpandEnvironmentStrings("%APPDATA%") strCurrentDir = oFSO.GetParentFolderName(Wscript.ScriptFullName) strDesktop = WshShell.SpecialFolders("Desktop") strAllUsersPrograms = WshShell.SpecialFolders("AllUsersPrograms") strAllUsersStartup = WshShell.SpecialFolders("AllUsersStartup") strSourcePath = "\\intec.tns-intec.kz\sysvol\intec.tns-intec.kz\scripts\Miranda IM\" strSourceFileVersion = oFso.GetFileVersion(strSourcePath & "miranda32.exe") If CStr(strWindowsOS) = "x86" Then strProgramFiles = WshShell.ExpandEnvironmentStrings("%ProgramFiles%") Else strProgramFiles = WshShell.ExpandEnvironmentStrings("%ProgramFiles(x86)%") End If strDestinationPath = strProgramFiles & "\Miranda IM\" strDestinationFileVersion = oFso.GetFileVersion(strDestinationPath & "miranda32.exe") If Not oFSO.FolderExists(strDestinationPath) Then oFSO.CreateFolder(strDestinationPath) return = WshShell.Run("xcopy " & chr(34) & strSourcePath & "*" & chr(34) & " " & chr(34) & strDestinationPath & chr(34) & " /I /E /H /Y") set oShellLink = WshShell.CreateShortcut(strDesktop & "\Miranda IM.lnk") oShellLink.TargetPath = strDestinationPath & "miranda32.exe" oShellLink.IconLocation = strDestinationPath & "miranda32.exe, 0" oShellLink.Description = "Miranda IM" oShellLink.Save() If Not oFSO.FileExists(strAllUsersPrograms & "\Miranda IM.lnk") Then wscript.echo strDesktop & "\Miranda IM.lnk", strAllUsersPrograms & "\Miranda IM.lnk" oFSO.CopyFile strDesktop & "\Miranda IM.lnk", strAllUsersPrograms & "\Miranda IM.lnk" End If If oFSO.FileExists(strAllUsersStartup & "\Miranda IM.lnk") Then oFSO.DeleteFile strAllUsersStartup & "\Miranda IM.lnk" End If If Not oFSO.FileExists(strWindows & "\krb5.ini") Then oFSO.CopyFile strCurrentDir & "\krb5.ini", strWindows & "\krb5.ini" End If If InStr(strWindowsVer, "Windows XP") > 1 Then WshShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\AllowTGTSessionKey", 1, "REG_DWORD" Else WshShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters\AllowTGTSessionKey", 1, "REG_DWORD" End If WshShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Miranda", strDestinationPath & "miranda32.exe", "REG_SZ" Else wscript.echo strSourceFileVersion wscript.echo strDestinationFileVersion If strSourceFileVersion <> strDestinationFileVersion Then return = WshShell.Run("xcopy " & chr(34) & strSourcePath & "*" & chr(34) & " " & chr(34) & strDestinationPath & chr(34) & " /I /E /H /Y") wscript.echo return End If End If End If Sub KillProcess() strComputer = "." strProcess = "miranda32.exe" set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") set colProcessList = objWMIService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = '" & strProcess & "'") For Each objProcess In colProcessList objProcess.Terminate() Next End Sub |
|
Отправлено: 11:39, 21-05-2014 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать ejik_off, не надо писать «куда-нибудь в шару». Есть общепринятый способ — использование реестра. Локального.
|
Отправлено: 14:56, 21-05-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 473
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 17:12, 21-05-2014 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:56, 21-05-2014 | #4 |
Старожил Сообщения: 473
|
Профиль | Отправить PM | Цитировать Я в программировании полный 0, поэтому и обратился сюда. С добавлением ключа в реестр я понял, но как это написать в скрипте?
|
|
Отправлено: 06:51, 22-05-2014 | #5 |
Старожил Сообщения: 473
|
Профиль | Отправить PM | Цитировать С проверкой ключа в реестре получилось,Iska спасибо за ссылку!
теперь вопрос такой, в скрипте как я понял, есть строки которые вроде как должны копировать ярлык в автозагрузку. Но при запуске скрипта не копируется ярлык в авторан. Как можно найти ошибку? |
Отправлено: 13:26, 26-05-2014 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата ejik_off:
If oFSO.FileExists(strAllUsersStartup & "\Miranda IM.lnk") Then oFSO.DeleteFile strAllUsersStartup & "\Miranda IM.lnk" End If Проверьте, есть ли данная запись в реестре. |
|
Отправлено: 14:20, 26-05-2014 | #7 |
Старожил Сообщения: 473
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Вот это условие пропускается If Not oFSO.FolderExists(strDestinationPath) Then oFSO.CreateFolder(strDestinationPath) return = WshShell.Run("xcopy " & chr(34) & strSourcePath & "*" & chr(34) & " " & chr(34) & strDestinationPath & chr(34) & " /I /E /H /Y") set oShellLink = WshShell.CreateShortcut(strDesktop & "\Miranda IM.lnk") oShellLink.TargetPath = strDestinationPath & "miranda32.exe" oShellLink.IconLocation = strDestinationPath & "miranda32.exe, 0" oShellLink.Description = "Miranda IM" oShellLink.Save() If Not oFSO.FileExists(strAllUsersPrograms & "\Miranda IM.lnk") Then wscript.echo strDesktop & "\Miranda IM.lnk", strAllUsersPrograms & "\Miranda IM.lnk" oFSO.CopyFile strDesktop & "\Miranda IM.lnk", strAllUsersPrograms & "\Miranda IM.lnk" End If If oFSO.FileExists(strAllUsersStartup & "\Miranda IM.lnk") Then oFSO.DeleteFile strAllUsersStartup & "\Miranda IM.lnk" End If If Not oFSO.FileExists(strWindows & "\krb5.ini") Then oFSO.CopyFile strCurrentDir & "\krb5.ini", strWindows & "\krb5.ini" End If If InStr(strWindowsVer, "Windows XP") > 1 Then WshShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\AllowTGTSessionKey", 1, "REG_DWORD" Else WshShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters\AllowTGTSessionKey", 1, "REG_DWORD" End If WshShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Miranda", strDestinationPath & "miranda32.exe", "REG_SZ" Else |
|
Последний раз редактировалось ejik_off, 26-05-2014 в 14:43. Отправлено: 14:29, 26-05-2014 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата ejik_off:
Прочее должно исполняться независимо от предварительного отсутствия папки. Цитата ejik_off:
Кстати, ошибка точно на этой строке? |
||
Отправлено: 16:08, 26-05-2014 | #9 |
Старожил Сообщения: 473
|
Профиль | Отправить PM | Цитировать Цитата Iska:
![]() Цитата Iska:
Цитата Iska:
|
|||
Отправлено: 07:03, 27-05-2014 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - Создание группы файлов Excel на основе списка | Serg2010 | Скриптовые языки администрирования Windows | 4 | 23-03-2013 00:43 | |
Создание группы файлов Excel на основе списка | Serg2010 | AutoIt | 1 | 19-03-2013 05:43 | |
[решено] Передать в скрипт название файла, на котором кликнули | Dm666 | AutoIt | 2 | 08-02-2011 22:40 | |
Прочее - Не виден общий ресурс (принтер) и сам ПК на котором он расшарен в домене | wrongdna | Сетевые технологии | 4 | 23-09-2010 11:49 | |
Проблема с кнопкой. И еще надо чтобы $form закрылся но скрипт бы выполнялся дальше | JaguarSP | AutoIt | 4 | 20-04-2010 20:24 |
|