none
Windows Server 2012 R2 - změna warningu "low disk space"

    Dotaz

  • Dobrý den,

    můžete mi prosím poradit, s následujícím:

    Chtěl bych změnil hodnotu, kdy systém začne upozorňovat na málo místa na disku + EventID 2013. Rád bych, aby server ve chvíli kdy na serveru bude zůstávat měně jak 20% volného místa na HDD, zobrazil upozornění a vygeneroval ID 2013.

    Zkoušel jsem postup přes registry "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters and add a DWORD value named “DiskSpaceThreshold” atd., ale bohužel na Win2012 R2 to nefunguje.

    Je nějaký jiný způsob pro Windows 2012 R2?

    Předem díky

    1. června 2015 13:32

Odpovědi

  • Dobrý den,

    tak to se velmi omlouvám, protože chyba na mé straně. Publikoval jsem verzi skriptu, který nebyl otestovaný. Již je tam verze správná (odkaz je http://informacni-strasti.eu/index.php/ke-stazeni/category/2-skripting.html?download=7:hdd-size-alert).

    Problém způsoboval řádek číslo 30, skript nemohl zapsat do EventLogu, protože EventLog s názvem "DiskDrive" neexistuje a na řádku 30 se vytváří. Nyní by Vám to mělo již fungovat.

    Zápis neprovádím do systémového logu "srv" z důvodu oprávnění. (systém si tento log chrání a není do něj možno jednoduše zapisovat, proto jsem zvolil log vlastní. Věřím, že to nebude tak moc vadit :-) Skript  nevyužívá nahrazuje to co dělal systém, ale nevyužívá jeho metody, stavme se k tomu jako k jinému způsobu jak reportovat místo na disku).

    Účet pod kterým skript běží musí mýt právo zápisu do logu a právo odeslat na smtp serveru email (já mám nastaveno pro servery anonymní odesílání, takže to moc neřeším). Skript nevyžaduje zvýšené oprávnění.

    Vyzkoušejte a uvidíme. doufám, že teď už to bude v pořádku.

    PT


    15. června 2015 4:05

Všechny reakce

  • zdravím,

    zkuste nastavit tyto hodnoty

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters]
    "DiskSpaceThreshold"=dword:0000000a
    "LowDiskSpaceMinimum"=dword:00000000

    Nastavuje Treshold na 10% a minimum místa na disku 0. Takže zápis do eventlogu by měl být v rozmezí méně jak 10%.

    Z dotazu si nejsem zcela jist zda Vám systém nyní dává vůbec upozornění na místo na disku a při jakých hodnotách. to by problém mohl být tady

    "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" a položka registru je   "NoLowDiskSpaceChecks", kdy její hodnota je 0 nebo 1. (neměla by být 1).

    PT

     

    1. června 2015 23:25
  • Dobrý den,

    díky za odpověď. Nastavil jsem to dle návodu, včetně "NoLowDiskSpaceChecks"(položka v registru nebyla, tak jsem ji vytvořil s hodnotou 0), ale pořád mi to neběhá :-( 

    Tížený zápis do eventlogu ID:2013 se nestane. Jediné co se děje je to, že při překročení 10% limitu dojde ke změně ikony disku (z červená). Nezobrazí se ani zmíněný upozornění na liště.

    Nemáte někdo nějaký nápad? Předem díky. 

    2. června 2015 8:09
  • DD,

    to proč se Vám to nezobrazuje na hlavním panelu opravíte zadáním parametru registru "NoLowDiskSpaceChecks" i do uživatelskéhého klíče. (cesta je stejné jenom místo HKLM je HKCU).

    Informace o nedostatku místa se vám v eventlogu neobjevovala nikdy, nebo až od té doby co se snažite změnit treshold?

    PT

    2. června 2015 8:41
  • Dobrý den,

    ikonu v hlavním panelu nijak nepožaduji - bral jsem to jen jako identifikátor.

    Informace o nedostatku místa se na tomto serveru doposud nikdy nezobrazila, nedostal jsem se zatím na prahovou hodnotu. Treshold řeším na základě požadavku, aby server varoval, jakmile je na disku méně jak 20%. Pokusím se to nastavit ještě na jiném serveru s Windows 2012 R2 - abych vyloučil případný problém tohoto konkrétního serveru.

    2. června 2015 8:49
  • 1. Nektere zmeny v registrech mohou potrebovat restart.

    2. Osobne bych testoval funkcionalitu tak, ze bych uvolnil disk pod limit a postupne obsazoval volne misto.

    M.

    2. června 2015 8:52
    Moderátor
  • Restart serveru jsem provedl po změně registrů.

    Testoval jsem to přesně tak jak uvádíte. Disk jsem zaplnil tak, že zbývalo cca. 15% místa. Poté jsem na server začal kopírovat velký objem dat a čekal zda server zareaguje. Po dokončení kopírování na serveru zbylo cca. 3% volného místa na HDD. EventID se bohužel nezapsal.

    2. června 2015 9:35
  • Tak otestováno ještě na jiném Windows 2012 serveru - se stejným výsledkem, EventID 2013 se nezobrazilo :-(
    2. června 2015 13:12
  • Neni na serveru nainstalovany nejaky dalsi program, ktery by mohl delat problemy? Napriklad od Symantecu?

    Pred tim, nez jste zacal laborovat s registry funkcionalita hlaseni nedostatku kapacity disku fungovala normalne?

    Jake jsou dalsi hlasky v protokolu udalosti?

    M.

    3. června 2015 6:48
    Moderátor
  • Dobrý den, díky za zájem.

    Server na kterém to testuji je bez dalšího SW, který by to mohl ovlivňovat. Zda to fungovalo před změnou registrů netuším, server se doposud do takové situace nedostal.

    Nyní jsem to znovu testoval (odebral jsem všechny mnou provedené úpravy v registrech + restart serveru) a EventID 2013 se nezobrazí ani ve chvíli, kdy dosáhnu 2,5 MB volného místa na disku C:

    Napadá mě ale, nemůže to mít souvislost s tím, že server není na fyzickém HW, ale je nasazen na VMware?


    3. června 2015 10:35
  • DD,

    tak mně to nedalo a pustil jsem se do laborování a zjistil jsem, že v Hyper V i ve VmWare (fyzický stroj nemám k dispozici) se mně čistá instalace (po všech aktualizacích) chová jak popisujete. zdá se tedy, že problém je v nějakém Hotfixu. vzhledem k tomu, že tento problém jsem našel i na pár produkčních serverech vyřešil jsem ho následovně.

    http://informacni-strasti.eu/index.php/windows-servery/42-místo-na-pevném-disku.html

    Je jasné, že toto není ideálním řešením, ale je to mnohem lepší než nemít informaci žádnou.

    Pokud máte k dispozici SA tak bych se zkusil obrátit přímo na MS.

    PT

    • Navržen jako odpověď Petr Tóth 10. června 2015 7:15
    10. června 2015 7:15
  • Dobrý den,

    díky za zájem a za otestování. Nasadím a otestuji vámi navrhované řešení. Pro mé potřeby se zdá naprosto vyhovující.

    SA bohužel k dispozici nemám.

    JM

    11. června 2015 9:41
  • Dobrý den,
    zkouším váš skript a zatím se mi nedaří ho zprovoznit. Vždy to skončí s následující chybou:

    write-eventlog : The source name "DiskDrive" does not exist on computer "localhost".
    At C:\script\MistoNaDisku.ps1:82 char:16
    +                write-eventlog -logname $EventLog -source $eventLogSource -eventI ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (:) [Write-EventLog], InvalidOperationException
        + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteEventLogCommand

    Nedojde k zápisu do Eventlogu a dorazí prázdný e-mail.

    Neměla by být konfigurace EventLogu takováto:
    #Konfigurace EventLogu
    $EventLogSource = "srv"
    $EventLog = "System"
    $EventLogID = "2013"
    $EventLogEnterType = "Warning"

    Zápis ID:2013 byl vždy do System Eventlogu a zdrojem byl srv

    Dokázal byste mi prosím poradit kde mám chybu?

    Už jsem zkoušel nastavit také oprávnění v registrech na: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Security. Ale také to nepomohlo.

    Spouštím to pod účtem, který je členem skupiny Administrators

    Předem díky.

    JM

    12. června 2015 12:02
  • Dobrý den,

    tak to se velmi omlouvám, protože chyba na mé straně. Publikoval jsem verzi skriptu, který nebyl otestovaný. Již je tam verze správná (odkaz je http://informacni-strasti.eu/index.php/ke-stazeni/category/2-skripting.html?download=7:hdd-size-alert).

    Problém způsoboval řádek číslo 30, skript nemohl zapsat do EventLogu, protože EventLog s názvem "DiskDrive" neexistuje a na řádku 30 se vytváří. Nyní by Vám to mělo již fungovat.

    Zápis neprovádím do systémového logu "srv" z důvodu oprávnění. (systém si tento log chrání a není do něj možno jednoduše zapisovat, proto jsem zvolil log vlastní. Věřím, že to nebude tak moc vadit :-) Skript  nevyužívá nahrazuje to co dělal systém, ale nevyužívá jeho metody, stavme se k tomu jako k jinému způsobu jak reportovat místo na disku).

    Účet pod kterým skript běží musí mýt právo zápisu do logu a právo odeslat na smtp serveru email (já mám nastaveno pro servery anonymní odesílání, takže to moc neřeším). Skript nevyžaduje zvýšené oprávnění.

    Vyzkoušejte a uvidíme. doufám, že teď už to bude v pořádku.

    PT


    15. června 2015 4:05
  • Dobrý den,

    díky za pomoc. Tento "nový" skript už funguje skoro bez problémů ... jediné co se neděje je to, že doručený e-mail neobsahuje jméno serveru a kopii zápisu z EventLogu, tak jak je uvedeno na řádku č.36

    Zkouším ten problém najít a opravit, ale zatím bez úspěchu ....

    Ještě jednou díky.

    JM

    15. června 2015 12:04
  • Děkuji za otestování :-)

    Emailové hlášení jsem nestihl dost otestovat, za to se omlouvám. Jak najdu více času, tak skript předělám a pak se objeví na tom mém webu.

    Nyní tam máte upravenou verzi (6x jsem si posílal email a přišel). Problém byl v hodnotě  $Body. Dostávala se do funkce prázdná.

    Popis změn je v komentářích skriptu. Tak snad už jsem na nic nezapomněl.

    Testování si zjednodušíte tak, že na řádku 95 zaměníte operátor -le za -ge pak bude chování skriptu obráceně (bude hlásit nedostatek místa i když to není pravda a naopak), nezapomeňte si pak tu hodnotu zase vrátit zpět :-)

    pt

    ps: ať tu nespamujeme a můžeme asi toto vláknu uzavřít, kontaktujte mne emailem. toth.petr@outlook.com

    15. června 2015 15:00
  • Dobrý den,

    pravděpodobně jsem našel řešení původního problému. U mně zafungovalo.

    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters]
    "DiskSpaceThreshold"=dword:0000000a
    "LowDiskSpaceMinimum"=dword:00000000

    uložte jakou soubor editoru registru a naimportujte. (nutný restart) Pak začal server hlásit při 10% procentech.

    PT

    16. června 2015 4:32
  • Preneseni reseni problemu z vlakna do soukrome komunikace mimo forum je ponekud proti smyslu for. Reseni muze totiz zajimat i dalsi navstevniky fora.

    Uvadeni e-mailove adresy nedoporucuji vzhledem k moznosti zneuziti. Vystavenim vlastni adresy na foru se vystavujete nebezpeci, ze budete cilem masivniho narustu spamu.

    Dekuji za pochopeni.

    M.

    16. června 2015 8:03
    Moderátor
  • Dobrý den,

    tak popsaný import do registru na testovacím serveru nezabral. Na produkci jsem neměl zatím možnost to otestovat.

    Jinak skript funguje parádně. Mám ke skriptu ale jednu otázku. Je možné někde upravit aby si v těle e-mailu poradil s mezerou u hodnoty v MB? Místo mezery tam je otazník. V EventLogu je to OK.

    Příklad: Server TEST nemá dostatek mista na disku. Na disku C: Neni dostatek mista. Misto na disku je 6 GB / 6?460 MB

    Předem díky za radu.

    JM

    18. června 2015 13:09
  • DD, včera večer jsem celý skript malinko pozměnil. Je ke stažení. Tam je již toto opraveno (je to chyba kódování), nyní nastaveno na UTF8 a jednoduše pomocí proměné $encoding můžete změnit na potřebné kódování. (primárně ovlivňuje odesílání pošty).  Ještě je tam jedna chybka (odstraním časem, když je více disků jak jeden, provádí se výpis na jeden řádek, není vkládán enter (zatím jsem nenašel jak tohle udělat pro ForEach)

    Nyní je to upraveno tak, aby bylo jednodušší si skript upravit bez znalosti skriptování svým potřebám. Přemýšlel jsem ještě nad tím přidat možnost hlášení Error (když bude hodnota na hranici jednoho nebo dvou procent, ale asi je to zbytečné). Nyní mám rozdělanou ještě verzi, která poradí jaké soubory se mohou rovnou odstranit (případně automaticky provede) a vypíše X největších souborů, aby admin nemusel složitě pátrat jak místo rychle vyřešit.

    Ve finále je to velmi užitečná věc se širokým využitím. tímhle se krásně dají v doméně sledovat i koncové stanice a v čas reagovat na nedostatek místa u uživatelů. (Ale to už jsou věci mimo rozsah vlákna, takže stačí sledovat můj web a tam se to časem objeví :-)

    PT

    18. června 2015 16:46
  • Dobrý den,

    testuji váš nový script V2 a bohužel se mi nedaří ho zprovoznit ani nalézt problém :-( Skript proběhne bez chyby, ale nedojde k zápisu do EventLog ani k odeslání e-mailu. Zkoušel jsem např. změnit parametr v #EVENT LOG - WARNING, protože směřuje do System EventLog o kterém jste psal, že do něj nelze zapisovat. Zatím všechny mé pokusy bez úspěchu.

    Ale do původního skriptu jsem si přidal kódování UTF8 a ten funguje na jedničku ;-)

    JM

    23. června 2015 13:20
  • Dobrý den,

    stahnul jsem ho a bez úprav funguje. Spouštíte ho se zvýšeným oprávněním? (tato informace je nove v popisu skritptu a také jsem o ni psal v prispevku).

    email novy skript bude posilat az po odkomentovani radku 142 (k tomu je podmínkou nakonfigurovat emailove parametry, jinak skonci s chybou). Spoustite skript v ISE? Pokud ano zkuste na radku 128 odstranit na konci toto "-ErrorAction Ignore ", pak by jste se mohl dozvědět, zda je problém v opravneni ci nikoliv. (toto je jedina operace, která vyžaduje prava).

    PT

    24. června 2015 4:06
  • K tematu probehla pomerne obsahla diskuse. Bylo by dobre pripad uzavrit. Nemame informaci, zda tazateli po konecnych upravach skript funguje.

    M.

    20. července 2015 6:18
    Moderátor