Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   *VBS/WHS/JS* | Windows Script Host, работа с компами домена (http://forum.oszone.net/showthread.php?t=30639)

Dennis 04-03-2003 09:53 209457

*VBS/WHS/JS* | Windows Script Host, работа с компами домена
 
Как определить в WSH к каким группам принадлежит пользователь домена? рабочая  станция w2k.
И если нельзя, то какая есть альтернатива?

Fronik 04-03-2003 15:11 209458

Dennis, загани этот текст в пустой текстовый файлик и задай расширение ".vbs"

Dim WshNetwork, Domain, Komputer 'Обьявляем переменные
Set WshNetwork = WScript.CreateObject("WScript.Network") 'создаес ссылку на обьект
User = WshNetwork.UserName
Domain = WshNetwork.UserDomain
Komputer = WshNetwork.ComputerName
MsgBox "Имя активного пользователя: " & User & VbCrLf & "Имя домена: " & Domain & VbCrLf & "Имя компьютера: " & Komputer
' надпись "VbCrLf" переносит сообщение на следующую строку

Если что - спрашивай :)
WSH :pray: WSH

Dennis 04-03-2003 15:40 209459

И где ты здесь видишь принадлежность к группам?! :(

rzt 20-01-2006 12:52 395100

Как можно при помощи WSH узнать запущен ли какой-либо процесс и определить его состояние, например нужно узнать запущен ли taskmgr.exe и вначале скрипта убить его или приостановить, а в конце восстановить.

den-efim 02-02-2006 13:45 399961

Люди help!
Как с помощью vbs проверить существование путей допустим c:\windows\... или c:\winnt\... и записать в текстовый файл существующий.


lehha 02-02-2006 13:52 399965

rzt
вот вхс скрипт который удалленно отрубает 1с-ку на всех компьютерах домена
Код:

Option Explicit
On Error Resume Next

Dim DomainName 'Имя домена
DomainName = "domain.ru"

Dim StrResult 'строка результата работы всей программы
StrResult = StrResult & CStr(Now) & " начало работы скрипта" & VbCrLf


Dim ADSI
Set ADSI = GetObject("WinNT://" & DomainName)
ADSI.Filter = Array("computer")

Dim Comp 'компьютер
Dim WMI 'объект WMI
Dim Proc 'процесс

Dim CurrName 'имя текущего компьютера
CurrName = GetNameComp()

'Цикл по компьютерам домена
For Each Comp In ADSI
    If Comp.Name <> CurrName Then
        Set WMI = GetObject("winmgmts:{ImpersonationLevel=Impersonate}!\\" & Trim(Comp.Name) & "\Root\CIMV2")
        If Err.Number=0 Then
                'WScript.Echo(Comp.Name)
            'Цикл по процессам компьютера
            For Each Proc In WMI.ExecQuery("SELECT * FROM Win32_Process WHERE Name = '1cv7s.exe'")
                StrResult = StrResult & _
                            CStr(Now) & " Computer=" & Comp.Name & " PID=" & Proc.ProcessId & _
                            VbCrLf                       
                'Завершение процесса
                'Proc.Terminate
            Next 'Цикл по процессам компьютера
        Else 'Не удалось соединиться с компьютером
            If Err.Number <> 462 Then 'The remote server machine does not exist or is unavailable
                StrResult = StrResult & _
                                  "    " & CStr(Now) & " Computer=" & Comp.Name & " ERROR " & Err.Number & _
                                  VbCrLf
            End If
        End If
        Err.Clear
    End If
Next 'Цикл по компьютерам домена

StrResult = StrResult & CStr(Now) & " конец работы скрипта" & VbCrLf

'Отображение результата
ShowInNotepad("Процессы 1cv7s.exe:" & VbCrLf & VbCrLf & StrResult)
'==========================================================================
'Процедура отображает переданную строку в блокноте
Sub ShowInNotepad(StrToFile)
    Dim FSO 'Объект файловой системы Scripting.FileSystemObject
    Dim TempPath 'Путь к временному файлу
    Dim TxtFile 'Поток текстового файла
   
    Set FSO = CreateObject("Scripting.FileSystemObject")
    TempPath = GetTempPath() & "\" & FSO.GetTempName
    Set TxtFile = FSO.CreateTextFile(TempPath)
    TxtFile.WriteLine(StrToFile)
    TxtFile.Close
    CreateObject("WScript.Shell").Run "notepad.exe " & TempPath
    WScript.Sleep 1000
    FSO.DeleteFile TempPath
End Sub 'ShowInNotepad
'==========================================================================
'Функция возвращает путь к каталогу временных файлов текущего пользователя
Function GetTempPath()
    GetTempPath = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%TEMP%")
End Function 'GetTempPath
'==========================================================================
'Функция возвращает имя текущего компьютера
Function GetNameComp()
    GetNameComp = CreateObject("WScript.Network").ComputerName
End Function 'GetNameComp


hasherfrog 03-02-2006 10:17 400330

lehha
1. останавливает, если раскомментарить 'Proc.Terminate
2. доступ к компам будет только для администратра домена
3. домен определяется в строке DomainName = "domain.ru"

понимаю, что это очевидно, но хочу просто предупредить вопросы вида "у меня не работает"


Время: 16:34.

Время: 16:34.
© OSzone.net 2001-