none
Spuštění VBskriptu na Windows serveru 2008 R2

    Dotaz

  • Dobrý den

    Zkusil jsem si vytvořit VB skript který mi vypisuje podle jména počítače jeho seriové číslo.  Základem je takovýto obrat. Když tento skript spustím ručně pod uživatelem administrátor tak provede správně načtení jmen počítačů z textového souboru a vypíše do jiného textového souboru jméno počítače a jeho seriové číslo. Když se o to samé pokusím pomocí "Task scheduleru" tak mi seriové číslo nevrátí. 

    Je možné, účet SYSTEM nemá dostatečné oprávnění, nebo mi něco uniká? 

    Set objWMIservice = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    set colitems = objWMIservice.ExecQuery("Select * from Win32_BIOS",,48)
    For each objitem in colitems
          outFile.WriteLine(strComputer & "; " & objitem.serialnumber)
    Next

    Děkuji za postrčení správným směrem.


    11. března 2015 14:20

Odpovědi

  • - system ma pravo jen k lokalnimu pocitaci.

    - fully qualified domain name

    Muzu se zeptat, proc to nedelas "standardne", tedy nedas pres GPO do machine startup scriptu neco jako

    wmic bios get serialnumber /format:list|find "=" > \\server\share\%computrename%.txt
    

    MP

    18. března 2015 8:36
    Moderátor
  • Mate-li pochybnosti o tom, jaky ucet pouzit, pouzijte pro kontrolu audit. Predpokladam, ze domenovy ucet s administrativnimi pravy jste uz pouzil a vse funguje, jak ma.

    M.

    31. března 2015 9:37
    Moderátor

Všechny reakce

  • 1. Jakym zpusobem spoustite skript? (cssript)

    2. Skript muzete prolozit kontrolnimi "tisky" a hned vite, kam se dostanete.

    3. Zkuste spoustet skript s povysenymi pravy (priviledged). Predpokladam, ze mate spravne nastaveny i operacni system.

    M.

    11. března 2015 16:02
    Moderátor
  • A kam zapisujes? Ma tam script (uzivatel pod kterym bezi) prava? Neni to treba SITOVY DISK, na ktery DOMAIN COMPUTERS nemaji pravo zapisovat?

    MP

    11. března 2015 17:36
    Moderátor
  • Vypada to tak, ze skutecne je treba domenovy ucet - viz odkaz na jmeno pocitace (\\...)

    "winmgmts:\\" & strComputer & "\root\cimv2"

    Jeste zalezi na tom, zda umi lokalni system rozlisit netbiosovske jmeno, nebo potrebuje FQDN:

    strComputer

    M.

    11. března 2015 21:22
    Moderátor
  • Dobrý den

    1) spouštím jej cscript cesta_ke_skriptu\script.cmd

    2) To jsem zkoušel, podaří se mi zapsat vše až k místu kde mi skript vrací hodnotu seriového čísla. Při ručním spuštěním zapíše vše.

    3) Při nastavování "Task Scheduleru" jsem změnil uživatele na "SYSTEM" a zatrhnul jsem "Run with highest privileges". Spuštění pod  administrátorským účtem mi doménová politika nedovoluje.


    18. března 2015 6:01
  • Myslím, že právo zapisovat na disk by mělo být v přádku zapíše vše. Přijde mi že skript spuštění pod účtem SYSTEM nemůže používat WMI service.

    Mohu se zeptat co to je FQDN?

    18. března 2015 6:02
  • - system ma pravo jen k lokalnimu pocitaci.

    - fully qualified domain name

    Muzu se zeptat, proc to nedelas "standardne", tedy nedas pres GPO do machine startup scriptu neco jako

    wmic bios get serialnumber /format:list|find "=" > \\server\share\%computrename%.txt
    

    MP

    18. března 2015 8:36
    Moderátor
  • Na některé věci bohužel nemám oprávnění a potřebuju dané informace. 

    Jestli jsem to dobře pochopil tak musím mít uživatele co má právo vidět okolní počítače.

    Což bude pravděpodobně nějaký doménový učet. Je nutné aby to byl administrátor?

    18. března 2015 15:53
  • Mate-li pochybnosti o tom, jaky ucet pouzit, pouzijte pro kontrolu audit. Predpokladam, ze domenovy ucet s administrativnimi pravy jste uz pouzil a vse funguje, jak ma.

    M.

    31. března 2015 9:37
    Moderátor
  • Dobrý den.
    Zkusim so shrnout:
    1) Pouzivate vypisovani serioveho cisla pomoci vzdaleheho prostupu ke stanicim. Tedy pro spravnou funkci, musite mit opravneni se pripojit vzdalene a vycitat WMI informace. Tedy ucet pro pripojeni urcite domenovy.
    2) Pokud pisete do nejakeho souboru, dejte si pozor na cestu, kam zapisujete. Skript se muze spoustet jinde, kam nemate prava (c:\windows\system32)

    Tedy dva ucty, jeden pro script s pravy zapisu treba lokalne a jeden pro pripojovani ke klientum. Dole najdete PowerShell verzi

    # WMI dotaz
    $query = "Select * from Win32_Bios"
    
    # CSV soubor s hlavickou ComputerName a seznamem stanic
    $computers = Import-Csv c:\scripts\computers.csv
    
    # Heslo vygenerujete do souboru
    # Read-Host -AsSecureString | ConvertFrom-SecureString | Out-File C:\scripts\password.txt
    $User = "domain\admin"
    $Pass = Get-Content C:\scripts\password.txt | ConvertTo-SecureString
    $Credentials = new-object -typename System.Management.Automation.PSCredential -ArgumentList $User, $Pass
    
    ForEach ($record in $computers){
        $Serial = Get-WmiObject -Query $query -ComputerName $record.computername -Credential $Credentials
        Write-Host "$($record.computername),$($Serial.SerialNumber)"
    }
    

    15. dubna 2015 12:50