Jak promazávat balast ve skrytých adresářích ?

Zdravím,

mám zde teď pár serverů, které používají nějaké komponenty od Májkrosoftu a rády používají skryté adresáře. Typicky třeba :

C:\Users\Administrator\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.MSO
C:\Users\Administrator\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.Word
C:\Users\Administrator\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5
C:\Users\Administrator\AppData\Local\Microsoft\Windows\InetCache\IE

apod.

Když běží ten skriptík, něco udělá v těch výše uvedených adresářích a skript skončí – a po sobě už neuklidí…. po nějakém čase je tam potom hrozný bordel a zabírá to místo. Průzkumník to neukáže… ani když zapnu skryté adresáře….

Tak jsem si udělal malý skriptík, který ten balast promazává… stačí to dát do šedulovaných tásků a pravidelně pouštět :

Powershell skriptík :

$tmp_directories = @(
"C:\Users\Administrator\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.MSO",
"C:\Users\Administrator\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.Word",
"C:\Users\Administrator\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5",
"C:\Users\Administrator\AppData\Local\Microsoft\Windows\InetCache\IE"
)
# set min age of files
$max_days = "-7"
# get the current date
$curr_date = Get-Date
# determine how far back we go based on current date
$del_date = $curr_date.AddDays($max_days)
ForEach ($tmp_dir in $tmp_directories)
{
if(!(Test-Path $tmp_dir -PathType Container)) {
write-host "-- Path was not found : $tmp_dir"
} else {
write-host "-- I am deleting : $tmp_dir"
Get-ChildItem $tmp_dir -Recurse | Where-Object { $_.LastWriteTime -lt $del_date } | Remove-Item
}
}

no a pouštím to baťáčkem (zde jsem se inspiroval radami pana Ondřeje Ševečka )

cls
del "%~d0%~p0%~n0.log"
powershell -ExecutionPolicy Bypass -File "%~d0%~p0%~n0.ps1" > "%~d0%~p0%~n0.log"
exit /B %errorlevel%

Přestal fungovat ESET Remote Administrator ?

Používám pro vzdálenou správu firemního antivirového řešení ESET Remote Administrator. Celkem mi vyhovuje, že to je nezávislé na platformě, stačí to bežet kdekoliv, kde rozběhnu Apache Tomcat – může to být na woknech nebo na linuxu (pokud třeba chceme ušetřit za licenci), jak je libo…. no a celkem to fungovalo. Do včera…. když na mne virtuálka vybafla, že…. chce aktualizovat OS.

V pohodě jsem tedy provedl z komandlajny YUM UPDATE na CentOS. Natáhlo to přes 300 balíčků a vše zdánlivě OK.

Jenže… pak už jsem se nemohl přihlásit, ani jako doménový, ani jako lokální admin. Začal jsem tedy pátrat proč. Příčinou byla aktualizace ODBC driveru k MySQL. Celé mi to potom potvrdila podpora ESETu, s odkazem na jejich článek .

Situaci vyřešíte jedním z níže uvedených kroků:

» doinstalováním starší verze ODBC konektoru
» úpravou konfiguračního souboru produktu ESET

Je dobré vědět:
Jako prevenci doporučujeme zakázat aktualizaci MySQL komponent pomocí níže uvedených příkazů:
yum install yum-plugin-versionlock
yum versionlock mysql-*

Doinstalování starší verze ODBC konektoru

Připojte se k virtuální appliance prostřednictvím SSH nebo přejděte do systémové konzole.
Stáhněte si ODBC konektor ve verzi 5.3:
wget https://dev.mysql.com/get/Downloads/Connector-ODBC/5.3/mysql-connector-odbc-5.3.10-linux-el7-x86-64bit.tar.gz
Stažený archiv rozbalte:
tar xzf mysql-connector-odbc-5.3.10-linux-el7-x86-64bit.tar.gz
Překopírujte ovladač:
cp *.so /usr/lib64/
V textovém editoru si otevřete soubor odbinst.ini:
nano /etc/odbinst.ini
Do souboru přidejte následující řádky:
[MySQL ODBC 5.3 Unicode Driver]
Driver=/usr/lib64/libmyodbc5w.so
UsageCount=1
Změny uložte stisknutím kláves CTRL + X a potvrďte klávesou Y.
V textovém editoru si otevřete soubor
/etc/opt/eset/RemoteAdministrator/Server/StartupConfiguration.ini a ověřte, že je v něm uveden konektor MySQL ODBC 5.3 Unicode Driver.
Restartujte službu databázového serveru a produktu ERA Serveru:

Virtuální appliance založená na CentOS6: service mysqld restart a service mysqld eraserver
Virtuální appliance založená na CentOS7: systemctl restart mysqld a systemctl restart eraserver


Úprava konfigurace produktu ESET

Oficiální podpora ODBC konektoru verze 8 prý bude přidána v dalších verzích serveru ….
SSHčkem na komandlajnu :
Do terminálu zadejte příkaz:
sed -i 's/MySQL ODBC 5.3/MySQL ODBC 8.0/g' /etc/opt/eset/RemoteAdministrator/Server/StartupConfiguration.ini
Poznámka:
Příkaz sed nahradí každý výskyt MySQL ODBC 5.3 řetězcem MySQL ODBC 8.0. Změnu v konfiguračním souboru StartupConfiguration.ini můžete provést také manuálně pomocí textového editoru.
Restartujte službu databázového serveru a produktu ERA Serveru:

Virtuální appliance založená na CentOS6: service mysqld restart a service mysqld eraserver
Virtuální appliance založená na CentOS7: systemctl restart mysqld a systemctl restart eraserver

No a potom jsem se už lokálním adminem mohl přihlásit, doménový účet proti Active Directory stále nefungoval…. bylo nutné jen znovu připojit se do domény a už zase vše jede.

Třeba se to bude někomu hodit…… proto jsem to sem poznamenal.

Automatické mazání souboru starších než X dní…..

Zase jedna taková ptákovina – ale občas se se mi to hodí….. potřebuji automaticky mazat někde v nějakém adresáři soubory starší než X dní…. třeba 7 dní

Pak to naplánuju do šedulovaných tásků a ono se to bude promazávat samo…. a na serveru nebude docházet místo 🙂

 

Tak nejdříve pomocí komandlajny :

@echo off
:: cesta
set dump_path=c:\temp

:: kolik dní než se to promaže
set max_days=7

:: smaž soubory z %dump_path%
forfiles -p %dump_path% -m *.* -d -%max_days% -c "cmd  /c del /q @path"

:: smaž podadresáře z %dump_path%
forfiles -p %dump_path% -d -%max_days% -c "cmd /c IF @isdir == TRUE rd /S /Q @path"

Tak a ještě pomocí powershellu :

# cesta
$dump_path = "C:\temp"

# kolikd dní než se to promaže
$max_days = "-7"
 
# jaký je dnes aktuální datum na kompu
$curr_date = Get-Date

# kolik dní se budeme vracet
$del_date = $curr_date.AddDays($max_days)

# mažeme
Get-ChildItem $dump_path -Recurse | Where-Object { $_.LastWriteTime -lt $del_date } | Remove-Item

 

Je to sice volovina, ale občas se mi to hodí…. třeba se to bude hodit i někomu jinému.

Jak povolit PING skriptem ?

Ve výchozím stavu mají wokna firewall zapnutý a to tak, že … nejede ani PING, což mi vadí .

Dá se to pohodlně povolit přes grafické klikadlo…. ale…. lepší je to povolit z komandlajny pomocí NETSH

Stále to potřebuji, stále to lovím po paměti… takže to sem teď už napíšu

 

  1. CMD jako admin
  2. Pro IPv4 :
    netsh advfirewall firewall add rule name=“ICMP Allow incoming V4 echo request“ protocol=icmpv4:8,any dir=in action=allow
  3. Pro případné IPv6 :
    netsh advfirewall firewall add rule name=“ICMP Allow incoming V6 echo request“ protocol=icmpv6:8,any dir=in action=allow

 

Platí pro wokna číslo 10, dřív byla syntax mírně odlišná, něco jako netsh firewall add portopening TCP 666 „SaTaN“

Jak vykousnout BITLOCKER klíč s pomocí PowerShellu ?

Zase jeden praktickej tip – stále na to narážím a hodí se mi to mít – jak zálohovat BITLOCKER klíč pomocí PowerShellu ? Nejlépe tak, abych poslal vše někam do texťáku z komandlajny admina a nemusel stále klikat a dávat USB / tisknout…..

 

$drive = Get-BitLockerVolume | ?{$_.KeyProtector | ?{$_.KeyProtectorType -eq ‚RecoveryPassword‘}} | select -f 1

$key = $drive | select -exp KeyProtector | ?{$_.KeyProtectorType -eq ‚RecoveryPassword‘} | select -f 1

Backup-BitLockerKeyProtector $drive.MountPoint $key.KeyProtectorId

Write-Host „Backing up drive $drive, key $($key.KeyProtectorId), password $($key.RecoveryPassword)“

 

No a když si pomocí GPO povolím WinRM… a také na firewallu …! Mohu to také sosat vzdáleně :

 

$RemoteComputers = @(„COMPUTERNAME“,“COMPUTERNAME2″,“COMPUTERNAME3″)

ForEach ($Computer in $RemoteComputers)
{
Try
{Invoke-Command -ComputerName $Computer -ScriptBlock {

$drive = Get-BitLockerVolume | ?{$_.KeyProtector | ?{$_.KeyProtectorType -eq ‚RecoveryPassword‘}} | select -f 1
$key = $drive | select -exp KeyProtector | ?{$_.KeyProtectorType -eq ‚RecoveryPassword‘} | select -f 1
Backup-BitLockerKeyProtector $drive.MountPoint $key.KeyProtectorId

Write-Host „Backing up drive $drive, key $($key.KeyProtectorId), password $($key.RecoveryPassword)“

} -ErrorAction Stop

}
Catch
{
Add-Content c:\temp\Unavailable-Computers.txt $Computer
}
}

 

Co se nepovedlo, dohledám v c:\temp\Unavailable-Computers.txt