Ovládáme (nejen) windows pomocí visual basic script 5. díl

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23605
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline
Kontakt:

Ovládáme (nejen) windows pomocí visual basic script 5. díl

Příspěvekod ITCrowd » 03 črc 2021 09:32

Visual Basic Script a síť
VBScriptů se velmi úspěšně dá použít pro práci v síti. Umožňují připojení síťových disků a také připojení síťových tiskáren. To umožňuje jejich použití v Logon a Logoff skriptech, tudíž můžeme vytvořit potřebné síťové prostředí zvlášť pro každého uživatele.
Pro práci vbs v síti je nutno vytvořit objekt sítě – WScript.Network

Zjištění síťového jména počítače:

Kód: Vybrat vše

Set WshNet = CreateObject("WScript.Network")
CompName = WshNet.ComputerName
WScript.Echo CompName
Set WshNet = Nothing

Připojení síťového disku:

Kód: Vybrat vše

strDriveLetter = "Y:"
strShare = "\\MYBOOKWORLD\Public"
blnProfile = False
strUserName = "admin"
strPassword = "admin"
Set oNetwork = CreateObject("WScript.Network")
oNetwork.MapNetworkDrive strDriveLetter, strShare, blnProfile, strUserName, strPassword
Set oNetwork = Nothing

K jednotlivým položkám:
- strDriveLetter = "Y:" – písmeno síťového disku
- strShare = "\\MYBOOKWORLD\Public" – síťová cesta sdíleného adresáře
- blnProfile = False – hodnota „True“ přednastaví domovský adresář na síťový disk
- strUserName = "název účtu"
- strPassword = "heslo"

Připojení tiskárny se zachycením chyby:

Kód: Vybrat vše

tiskarna = "\\PC\HP LaserJet"
Set objNetwork = CreateObject("WScript.Network")
On Error Resume Next
objNetwork.AddWindowsPrinterConnection tiskarna
Select Case Err.Number
  Case 0
    text = "Tiskárna je připojena """ & tiskarna & """."
    icon = vbInformation
  Case -2147023688
    text = "Chyba: Síťový prostředek """ & tiskarna & """ neexistuje"
    icon = vbCritical
  Case -2147024811
    text = "Připojení k """ & tiskarna & """ již existuje"
    icon = vbExclamation
  Case Else
    text = "Chyba kód: " & Err.Number & " " & Err.Description
    icon = vbCritical
End Select   
MsgBox text, vbOKOnly + icon, "Etienn@Script:"
Set objNetwork = Nothing

Odeslání e-mailu skriptem
1. způsob - vytvoření URL zástupce a jeho spuštění byl uveden v minulém tématu: https://pc-help.cz/viewtopic.php?f=35&t=197703
2. způsob - pomocí Outlooku zde: https://pc-help.cz/viewtopic.php?f=35&t=94490
3. způsob - pomocí Thunderbirdu zde: https://pc-help.cz/viewtopic.php?f=72&t=121508 (Původně pro Outlook, poté upraven pro Thunderbird)
4. způsob - přímé odeslání pomocí skriptu

Kód: Vybrat vše

'Je třeba restart?
Set objSysInfo = CreateObject("Microsoft.Update.SystemInfo")

If objSysInfo.RebootRequired Then
'Pokud ANO, pošli e-mail

'Zjištění jména serveru
Set WshNet = CreateObject("WScript.Network")
CompName = WshNet.ComputerName

Set emailObj      = CreateObject("CDO.Message")
emailObj.From     = CompName & "server.cz"
emailObj.To       =  "spravce@postovniserver.cz"
emailObj.Subject  = "Restart po aktualizaci"
emailObj.TextBody = "Server --- " & Compname & " --- Potřebuje restart po aktualizaci!"

Set emailConfig = emailObj.Configuration
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "webmail.postovniserver.cz"
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing")    = 2 
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl")      = true
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername")    = "uživatel"
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword")    = "heslo"

emailConfig.Fields.Update

emailObj.Send

Set emailObj = Nothing
Set emailConfig = Nothing
Set WshNet = Nothing
End If 
   
Set objSysInfo = Nothing

Všimněte si:emailObj.From = CompName & "server.cz" - toto je adresa odesílatele. CompName je skutečné síťové jméno počítače, ale doména "server.cz" je vymyšlená. Správce tedy obdrží e-mail od např. Technologie01@server.cz, tato adresa však ve skutečnosti neexistuje. Pro ty, kdo už plánují, jak toho zneužít připomínám, že IP adresa odesílatele uvedená v hlavičce e-mailu se "zfalšovat" nedá, tudíž pravého odesilatele lze vždy zjistit.
Uvedený skript používám u technologických počítačů, kde je autorestart po aktualizaci zakázán. Správce je upozorněn e-mailem a restartuje stroj ručně ve vhodné době.

A ještě jedna "lahůdka": Nastavení sdílení na vzdáleném počítači. Nastavení sdílení je jednoduché, pokud jste přímo u počítače. Ale pokud tam nejste a nemáte možnost vzdálené plochy, může pomoci skript. najdete ho zde: https://pc-help.cz/viewtopic.php?f=107&t=95356
Skript funguje napříč všemi systémy. Kromě uvedených podmínek je u Win10 je třeba ohídat ještě jednu položku firewallu - službu WMI:
FWwmi.png
Povolení WMI ve firewallu


V dalším díle se podíváme na práci s registry.

Odkazy:
Ovládáme (nejen) windows pomocí visual basic script 1. díl
Ovládáme (nejen) windows pomocí visual basic script 2. díl
Ovládáme (nejen) windows pomocí visual basic script 3. díl
Ovládáme (nejen) windows pomocí visual basic script 4. díl
Ovládáme (nejen) windows pomocí visual basic script 5. díl
Ovládáme (nejen) windows pomocí visual basic script 6. díl
Ovládáme (nejen) windows pomocí visual basic script 7. díl
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

Reklama
  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti