Продолжается подписка на наши издания! Вы не забыли подписаться?

Листинг 1: Shortcut.vbs

' Этот пример показывает, как использовать объект WSHShell 
' для создания ярлыка на Рабочем столе.

L_Welcome_MsgBox_Message_Text   = _
    "Этот скрипт создаст ярлык для Notepad на Рабочем столе."
L_Welcome_MsgBox_Title_Text     = "Пример Windows Scripting Host "
Call Welcome()

' ***************************************************************
' *
' * Методы, связанные с ярлыками.
' *

Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")

Dim MyShortcut, MyDesktop, DesktopPath

' Читаем путь к Рабочему столу
DesktopPath = WSHShell.SpecialFolders("Desktop")

' Создаем ярлык на Рабочем столе
Set MyShortcut = WSHShell.CreateShortcut(DesktopPath & _
    "\Shortcut to notepad.lnk")

' Задаем свойства объекта-ярлыка и сохраняем их
MyShortcut.TargetPath = WSHShell.ExpandEnvironmentStrings _
    ("%windir%\notepad.exe")
MyShortcut.WorkingDirectory = WSHShell.ExpandEnvironmentStrings _
    ("%windir%")
MyShortcut.WindowStyle = 4
MyShortcut.IconLocation = WSHShell.ExpandEnvironmentStrings _
    ("%windir%\notepad.exe, 0")
MyShortcut.Save

WScript.Echo "Теперь на Рабочем столе есть ярлык для Notepad."

' ****************************************************************
' *
' * Добро пожаловать
' *
Sub Welcome()
    Dim intDoIt

    intDoIt =  MsgBox(L_Welcome_MsgBox_Message_Text, _
        vbOKCancel + vbInformation, _
        L_Welcome_MsgBox_Title_Text )
    If intDoIt = vbCancel Then
       ;WScript.Quit
    End If
End Sub

Листинг 2. Простой загрузочный скрипт


<job>
<script language="vbscript">
on error resume next

set wshNetwork = WScript.CreateObject( "WScript.Network")
Set wshShell = WScript.CreateObject("WScript.Shell")

do while wshNetwork.username = ""
WScript.Sleep 250
loop

user = wshNetwork.username
domain = wshNetwork.userdomain

Wscript.echo "Logging on " & ucase(domain) & "\" & user & "..."

' используя ADSI получаем список групп, в которые входит пользователь
adspath = "WinNT://" & domain & "/" & user
set adsobj = GetObject(adspath)

' Вызов других подпрограмм based on the Windows NT group of the user
for each prop in adsobj.groups
    select case prop.name
        case "Administrators"
            call Adminslogon
        case "YourNewGroup"
            call YourNewGrouplogon
    end select
next
</script>
</job>

Листинг 3.
Функция CheckNetworkMapping и процедура MapNetwork


' проверяем наличие сетевого диска, в случае отсутствия добавляем

' Эта функция проверяет наличие сетевого диска
Function CheckNetworkMapping(DriveLetter)
    Dim Drive
    WScript.Echo "Проверяем наличие подключенного сетевого диска " & DriveLetter
    CheckNetworkMapping = False
    For Each Drive In wshNetwork.EnumNetworkDrives
        If LCase(Drive) = LCase(DriveLetter) Then
            CheckNetworkMapping = True
            Exit For
        End If
    Next
    If CheckNetworkMapping Then
        WScript.Echo "Сетевой диск найден"
    Else
        WScript.Echo " Сетевой диск не найден"
    End If
End Function

' Эта подпрограмма ассоциирует букву с сетевым каталогом 
sub MapNetwork(driveletter, netshare)
    on error resume next
    err.clear

    WScript.Echo "Подключаем сетевой диск."
    wshNetwork.MapNetworkDrive driveletter, netshare, true

    if err <> 0 then
        'Подключение не удалось
        WScript.Echo "не могу ассоциировать " & driveletter & " с " & netshare
    else
        WScript.Echo "ОК..."
    end if
end sub

Листинг 4. GetIPAddress и GetRAM


function GetIPAddress (server, username, password)
    set objLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
    set objService = objLocator.ConnectServer (server, "", username, password)
    strQuery = _
      "Select IPAddress from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE"

    set objEnumerator = objService.ExecQuery(strQuery)

    for each obj in objEnumerator
        if Not IsNull(obj.IPAddress) then 
            for i=LBound(obj.IPAddress) to UBound(obj.IPAddress)
                GetIPaddress = obj.IPAddress(i)
            next
        end if
    next
end function

function GetRAM (server, username, password)
    set objLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
    set objService = objLocator.ConnectServer (server, username, password)
    strQuery = "Select TotalPhysicalMemory From Win32_LogicalMemoryConfiguration"

    set objEnumerator = objService.ExecQuery(strQuery)

    for each obj in objEnumerator
        GetRam = obj.totalPhysicalMemory
    next
end function

Листинг 5. Настройка пользователей


sub CreateUser(ServerName, name, password, fullname, logonscript)
    on error resume next
    err.clear

    set objServer = GetObject("WinNT://" & ServerName)
    set objUser = objServer.Create ("user", name)
    objUser.Fullname = fullname
    objUser.setPassword password
    objUser.loginscript = logonscript
    objUser.SetInfo

    if err <> 0 then 
        WScript.Echo "Не могу создать учетную запись пользователя для" & name
    Else
        Wscript.Echo "Создана учетная запись пользователя: " & name
    end if
end sub

CreateUser "vernonh0", "Ivanoff", "abc123", "Ivanoff I.I.", "logon.wsf"
CreateUser "vernonh0", "Petroff", "abc123", "Petroff P.P.", "logon.wsf"
CreateUser "vernonh0", "Smirnoff", "abc123", "Smirnoff-Vodkin (Boss)", "logon.wsf"

Copyright © 1994-2016 ООО "К-Пресс"