Repozitorij korisnih admin-skripti izdvojena tema

poruka: 26
|
čitano: 45.674
|
moderatori: Lazarus Long, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
14 godina
neaktivan
offline
Repozitorij korisnih admin-skripti

Osnovna ideja kod pokretanja ove teme je da napravimo svojevrtan repozitorij korisnih skripti koje nam svima mogu pomoći kod svakodnevnih admin taskova. Idealno bi bilo da stavljate svoje skripte, ali ako naletite na neku zgodnu na Netu i mislite da bi bila korisna nitko vam ne brani da ju postate. U tom slučaju bi svakako bilo poželjno da takve skripte istestirate prije objavljivanja kako ne bi završili sa hrpom postova "Uh, sorry što ne radi - nisam ni ja probao, samo sam c/p odnekud". Naravno, diskusije i kritike skripti, kao i rasprave o mogućim poboljšanjima su poželjnje sve dok su konstruktivne.

 

 

!!VAŽNO!! Uz sam kod skripte, popunite i dodatna polja da bi drugima omogućili brže snalaženje i pretraživanje:

 

Naziv i verzija: ...

Kratki opis: ...

Vrsta: ...

Programi i/li biblioteke potrebne za rad: ...

Dodatne napomene: ...

Kod: ...

Primjer korištenja: ...

 

 

Evo, otvorit ću temu sa jednom vlastitom koju sam baš složio prije pola sata da dobijete ideju kako bi to moglo izgledati:

Retry. Reboot. Reinstall. Reformat. // Sve se hoće kad se može. ;)
Poruka je uređivana zadnji put uto 16.11.2010 17:09 (vlad0).
Moj PC  
11 0 hvala 10
14 godina
neaktivan
offline
Repozitorij korisnih admin-skripti

Naziv i verzija:

MiniARPing 1.0a (by Vlad0)

 

 

Kratki opis:

Vraća IP i MAC adrese za traženi FQDN (Fully Qualified Domain Name).

 

 

Vrsta:

Windows batch

 

 

Programi i/li biblioteke potrebne za rad:

- Ping

- ARP

 

 

Dodatne napomene:

Radi samo u LAN-u (ograničenje zbog ARP-a).

 

 

Kod:

miniarping.bat

REM MiniARPing 1.0a (by Vlad0)@ECHO OFFSET IP=SET IPduzina=SET MAC=FOR /F "tokens=2,3 delims= " %%A IN ('PING -n 1 %1') DO IF "%%A"=="%1" SET IP=%%BSET IP=%IP:[=%SET IP=%IP:]=%SET IP=%IP: =%SET #=%IP%SET IPduzina=0:loopIF DEFINED # (SET #=%#:~1%&SET /A Ipduzina += 1&GOTO :loop)if %IPduzina% LSS 7 GOTO :neidepingFOR /F "delims=" %%A IN ('ARP -a %IP%') DO SET MAC=%%ASET MAC=%MAC: =%CALL SET MAC=%%MAC:~%IPduzina%,17%%GOTO :ispis:neidepingSET IP=N/ASET MAC=N/A:ispisECHO ===============================ECHO  FQDN: %1ECHO -------------------------------ECHO  IP adresa: %IP%ECHO  MAC adresa: %MAC%ECHO ===============================

 

 

Primjer korištenja:

miniarping.bat pingable.nekadomena.local
===============================
 FQDN: pingable.nekadomena.local
--------------------------------------------------------
 IP adresa: 192.168.0.123
 MAC adresa: 00-0e-0c-33-22-1a
===============================

miniarping.bat unpingable.nekadomena.local
===============================
 FQDN: unpingable.nekadomena.local
--------------------------------------------------------
 IP adresa: N/A
 MAC adresa: N/A
===============================

Retry. Reboot. Reinstall. Reformat. // Sve se hoće kad se može. ;)
Poruka je uređivana zadnji put uto 16.11.2010 16:05 (vlad0).
Moj PC  
2 0 hvala 6
14 godina
neaktivan
offline
Exchange 2007/2010 skripte

Naziv i verzija:

QUEUE Izvještaj na e-mail by cekpi (picek1@gmail.com
 

 

Kratki opis:

Powershell skripta koja provjera queue stanje na exchange 2007/2010 serveru

 

Vrsta:

Exchange powershell/Windows  batch

 

 

Programi i/li biblioteke potrebne za rad:

- Exchange powershell

 

 

Dodatne napomene:

Ne kuha kavu

 

### naziv e-mail servera
$smtpServer = "FQDN exchange servera (hub ili edge rola)"

### skupljanje statistike
$b = Get-Queue | fl | out-string

### Kreiranje nove poruke
$msg = New-Object Net.Mail.MailMessage
$smtp = new-object Net.Mail.SmtpClient($smtpServer)

### Definiranje kome se i od koga se šalje
$msg.From = ("administrator@mojadomena.com")
$msg.To.Add("moje.ime@mojdomen.com")

### Naziv poruke
$msg.Subject = "Queue na XY serveru"

### Dodavanje statistike u tijelo e-mail-a
$msg.Body = "Dragi moji Admini, u privitku Vam se nalazi izvještaj. Ugodan dan želi Vam skripta"
$msg.Body = $b

### Slanje poruke
$smtp.Send($msg)

 

 

Korištenje:

- spremanje kao *.ps1 i ručno pokretanje kroz shell

- Pokretanje ručno ili putem schedulera preko batch skrpte koja glasi:

    @echo off
PowerShell.exe -PSConsoleFile "E:\Exchange 2007\bin\exshell.psc1" -Command "C:\skripte\QUEUE_SKRIPTA\slanje_queue.ps1"

kod mene normalno radi.....
Poruka je uređivana zadnji put uto 16.11.2010 17:02 (cekpi).
Moj PC  
0 0 hvala 4
14 godina
neaktivan
offline
Exchange 2007/2010 - veličine mailboxa

Naziv i verzija:

Mailbox statistika na e-mail by cekpi (picek1@gmail.com
 

 

Kratki opis:

Powershell skripta koja provjera zapunjenost pojedinog mailbox-a naExchange 2007/2010 serveru

 

Vrsta:

Exchange powershell/Windows  batch

  

Programi i/li biblioteke potrebne za rad:

- Exchange powershell

  

Dodatne napomene:

Ni ova ne kuha kavu

 

###Naziv e-mail servera
$smtpServer = "FQDN exchange servera"

###Skupljanje i sortiranje mailbox statistike
Get-Mailbox -OrganizationalUnit "OU u kojem se nalaze useri" | get-MailboxStatistics | Sort-Object TotalItemSize -Descending | ft DisplayName,@{label="TotalItemSize(MB)";expression={$_.TotalItemSize.Value.ToMB()}} , storagelimitstatus > mailboxes.txt

###Skupljanje informacija o limitima za pojedinog usera
get-Mailbox -OrganizationalUnit "OU u kojem se nalaze useri" | ft name, issuewarningquota >> mailboxes.txt

###Kreiranje e-mail poruke i dodavanje attachmenta
$msg = New-Object Net.Mail.MailMessage
$att = new-object Net.Mail.Attachment("mailboxes.txt")
$smtp = new-object Net.Mail.SmtpClient($smtpServer)

###Slanje poruke
$msg.From = ("administrator@mojadomena.com")
$msg.To.Add("moje.ime@mojadomena.com")
$msg.Subject = "Informativni podatak o tome koliko megabajta tuđih mejlova moraš pročitati"
$msg.Body = "Dragi moji Admini, u privitku Vam se nalazi ono uz subject polja. Ugodan dan želi Vam skripta."
$msg.Attachments.Add($att)
$smtp.Send($msg)

###Puštanje attachmenta
$att.Dispose()

 

Korištenje:

- spremanje kao *.ps1 i ručno pokretanje kroz shell

- Pokretanje ručno ili putem schedulera preko batch skrpte koja glasi:

PowerShell.exe -PSConsoleFile "E:\Exchange 2007\bin\exshell.psc1" -Command "C:\skripte\mailbox_statistika\slanje2.ps1"

kod mene normalno radi.....
Moj PC  
0 0 hvala 5
15 godina
offline
Repozitorij korisnih admin-skripti

Bravo decki, odlicna tema!

Mi smo na putu da budemo na putu prema izlazu iz krize [GOOGLE TRANSLATOR]: Na putu prema dolje
 
2 0 hvala 0
14 godina
neaktivan
offline
RE: Repozitorij korisnih admin-skripti

Naziv i verzija:

ISADeleteCacheContent 1.0

 

Kratki opis:

Briše sadržaj cache datoteka ISA servera.

 

Vrsta:

VBS

 

Dodatne napomene:

Resetira Firewall servis (što može potrajati koju minutu).

 

Kod:

Sub DeleteCacheContents()Dim rootSet root = CreateObject("FPC.Root")Dim serverDim cacheDrivesDim cacheDriveDim fsoSet server = root.GetContainingServer()server.StopFirewallService()Set cacheDrives = server.CacheDrivesSet fso = CreateObject("Scripting.FileSystemObject")For Each cacheDrive In cacheDrivescacheFilePath = CacheDrive.Name & "\urlcache\Dir1.cdat"fso.DeleteFile cacheFilePathNextserver.StartFirewallService()WScript.Echo "ISA chache datoteke su prazne."End SubDeleteCacheContents

 

Primjer korištenja:

Spremiti kod kao ISADeleteCacheContent.vbs i onda dvoklik na nju.

Retry. Reboot. Reinstall. Reformat.
Poruka je uređivana zadnji put sri 26.1.2011 10:11 (vlad0).
14 godina
neaktivan
offline
Repozitorij korisnih admin-skripti

Mapiranje mrežnog diska :

 

 

on error RESUME NEXT

strDrive = "Z:"

strPath = "\\share\share

strUser = "DOMENA\korinsik

strPassword = "sifra_sustava"

boolPersistent = True ' True = Persistent ; False = Not Persistent

set objNetwork = WScript.CreateObject("WScript.Network")

objNetwork.MapNetworkDrive strDrive, strPath, boolPersistent, _

 strUser, strPassword

msgbox( "Disk je mapiran ")

 

 

 

Spremite kao VBS , mjenjate podcrtane vrijednosti , meni ovo pomoglo dosta puta.

 

Korištenje mrežnog printera i vezanje na LPT 

 

 

@echo off

net use lpt1 /d

net use lpt1 \\192.168.100.113\SamsungPrinter /p:Yes

 

 

Spremite kao BAT i pokrenete mjenjate podcrtano.

 

 

I'm from Hollywood
Poruka je uređivana zadnji put sri 26.1.2011 12:38 (woodgamesfx).
 
0 0 hvala 1
14 godina
neaktivan
offline
Repozitorij korisnih admin-skripti

Naziv i verzija:

PortStat 1.0a (by vlad0)

 

Kratki opis:

Daje detaljne informacije o procesu koji "sjedi" na nekom lokalnom TCP portu.

 

Vrsta:

Windows batch

 

Programi i/li biblioteke potrebne za rad:

netstat (dolazi s Windowsima)

tasklist (dolazi s Windowsima)

 

Dodatne napomene:

EDIT: Na Windows Vista i 7 OS-evima cmd mora biti pokrenut s elevated ovlastima da bi netstat i tasklist radili kako treba.

Skripta gleda samo portove u LISTENING stanju. Ako vam trebaju dodatna stanja, editirajte kod skripte (pogledajte netstat info).

Ako vam trebaju dodatne informacije o procesu, editirajte kod skripte (pogledajte tasklist info).

 

Kod:

PortStat.bat

@ECHO OFF
ECHO.
SET pid=
FOR /F "delims=" %%a in ('netstat -anob -p TCP ^|findstr ":%1" ^|findstr "LISTENING"') DO SET pid=%%a

IF DEFINED pid (
GOTO pidpostoji
) ELSE (
GOTO pidnepostoji
)

:pidpostoji
ECHO   Proto  Local Address          Foreign Address        State           PID
ECHO===============================================================================
ECHO %pid%
SET pid=%pid:~-11%
FOR /f "tokens=* delims= " %%a in ("%pid%") DO SET pid=%%a
tasklist /fi "PID eq %pid%"
tasklist /fi "PID eq %pid%" /svc
tasklist /fi "PID eq %pid%" /m
GOTO kraj

:pidnepostoji
ECHO Port %1 is not taken.
ECHO.

:kraj

 

 

Primjer korištenja:

PortStat PORT

 

portstat 80


  Proto  Local Address          Foreign Address        State           PID
==============================================================================
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       6080

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
httpd.exe                     6080 Services                   0     15.280 K

Image Name                     PID Services
========================= ======== ============================================
httpd.exe                     6080 wampapache

Image Name                     PID Modules
========================= ======== ============================================
httpd.exe                     6080 ntdll.dll, wow64.dll, wow64win.dll,
                                   wow64cpu.dll

 

portstat 25


Port 25 is not taken.

 

@mbaksa

Hvala za ideju! {#}

Retry. Reboot. Reinstall. Reformat.
Poruka je uređivana zadnji put sri 23.2.2011 10:44 (vlad0).
Moj PC  
5 0 hvala 0
15 godina
odjavljen
offline
Repozitorij korisnih admin-skripti

Zakon tema-glasam za sticky!! {#}

Ukoliko vam je mobitel u kvaru, ili ga želite prodati, zovite ovaj broj- 091 172 6697 ili posjetite stranicu- http://mobiservis.webs.com/
Moj PC  
4 0 hvala 0
14 godina
neaktivan
offline
Repozitorij korisnih admin-skripti

moze linux ilti unix verzija sa perlom i pythonom? :)

ajde neka "smisljator" teme napravi novu sa linux skriptama, tako da nam bude svima lakse...:)

mjenjam sobnu lampu za dvosobnu..
Moj PC  
0 0 hvala 0
13 godina
protjeran
offline
Re: Repozitorij korisnih admin-skripti
mihaeeel kaže...

moze linux ilti unix verzija sa perlom i pythonom? :)

ajde neka "smisljator" teme napravi novu sa linux skriptama, tako da nam bude svima lakse...:)

Stvar je u tome da za lnux servere ne trebaš izmišljati toplu vodu sa tamo nekim skriptama. Bash shell je sasvim dovoljan i 4 000 godina ispred batcha i onog smijeha od windows "power" shell-a.

Drago mi je.
14 godina
neaktivan
offline
Repozitorij korisnih admin-skripti

BASH je jednostavniji masu od batcha. Nebo i zemlja. No ne kvarimo momcima temu, go for it boys!

Nista nije sveto sve je bruto i neto, sve je zabava!
Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
Repozitorij korisnih admin-skripti

@mihaeeel

Mislim da nema potrebe za otvaranjem zasebne teme - postoji predviđeno polje "Vrsta" u kojem kažeš za koju platformu je skripta namjenjena. To što su dosad svi postali skripte za Windoze ne znači ništa (osim možda da su Win admini aktivniji od svojih *nix kolega, hehe;).

 

@Bypass

Nemoj se ljutiti, ali PowerShell prvo treba znati koristiti (jednako kao i bash), a tek onda suditi o njemu. A netko tko je proveo X vremena razvaljujući PS sigurno neće davati takve izjave jer zna da je riječ o vrlo, vrlo moćnom alatu.  Mogu se doduše složiti da je usporedba batch-bash na razini mogućnosti bespredmetna, ali takve usporedbe ionako nemaju baš previše smisla. Batch je u krajnoj liniji također alat - možda nešto jednostavniji - ali ako se nešto može obaviti / automatizirati koristeći upravo batch, ne vidim zašto to ne iskoristiti tu mogućnost. Krajnji cilj je ionako ušteda vremena i smanjivanje mogućnosti pogrešaka, pa ako je to doista i ostvareno, ne vidim zašto bi se itko bunio oko načina stizanja do cilja?

 

 

 

@svi

Samo da raščistimo unaprijed: ovo nije tema za Windows / *nix flame warove, držite se teme. Ako želite raspravljati o razlikama između Windowsa i *nixeva, iskoristite neku već postojeću temu na Bug forumu. Ovdje su tema korisne admin skripte, bez obzira na platformu. Hvala na razumijevanju.

Retry. Reboot. Reinstall. Reformat.
Moj PC  
9 0 hvala 1
14 godina
neaktivan
offline
Repozitorij korisnih admin-skripti

MS Community je objavio besplatan priručnik za upravljanje Windows Server 2008 R2 Core inačicama poslužitelja.

 

Priručnik je na hrvatskom jeziku i mislim da svatko ko ima ili razmišlja o core edicijama bi trebao bacit pogled.

 

Obrađene teme su:

- Značajke Core edicija

- Instalacija i aktivacija

- Inicijalno podešavanje

- Uobičajene administrativne radnje

- Pregled CLI naredbi

 

 

http://www.mscommunity.hr/News/Details/fa1c57da-f8c3-4adf-ab8a-990923800b45

kod mene normalno radi.....
Moj PC  
0 0 hvala 5
14 godina
neaktivan
offline
Re: Repozitorij korisnih admin-skripti

Naziv i verzija:

BriseTmp 1.2

 

Kratki opis:

Briše sadržaj temporary mapa od "current user" i Windows(%SystemRoot%).

 

Vrsta:

Windows batch

 

Dodatne napomene:

Nema upozorenja i obavijesti (pogodan kao dio veče skripte).

 

Kod:

BriseTmp.bat   

@echo offFOR /F "DELIMS=" %%? IN ('DIR/B/AD %TEMP%\*') DO RD/S/Q "%TEMP%\%%~?" >nul 2>&1DEL/F/A/Q %TEMP%\*.*  >nul 2>&1DEL/F/A/Q %SystemRoot%\temp\*.*  >nul 2>&1

 

 

Korištenje:

- Samo pokreni i pomoli se.

 

 

14 godina
neaktivan
offline
Repozitorij korisnih admin-skripti

Naziv i verzija:
Hyper-V Export 0.5



Kratki opis:

Exportira definirane VM-ove koji se vrthe na Hyper-V platformi. Korisno ako se npr. želi napraviti brzi full backup VM-ova.



Vrsta:

Windows PowerShell 1.0



Dodatne napomene:

1. Ako već niste, morat ćete podesiti PS execution policy da bi se ovo moglo odvrtiti:

set-executionpolicy remotesigned

2. Prije pokretanja promijenite nazive $guest varijabli tako da odgovaraju nazivima vaših VM-ova u Hyper-V-u (u expbackup.ps1). Možete slobodno dodavati / brisati VM-ove iz ovog popisa i backupirati samo one koje želite.
3. Prije pokretanja promijenite $script_dir i $dest varijable (u expbackup.ps1) kako vam odgovaraju.



Kod:

expfunction.ps1
$VM_Service = get-wmiobject -namespace root\virtualization Msvm_VirtualSystemManagementService
$VM = gwmi -namespace root\virtualization -query "select * from msvm_computersystem where elementname='$guest'"   
$VMReturnState = $VM.EnabledState   
$VMName = $VM.ElementName   

if (($VM.EnabledState -eq 2) -or ($VM.EnabledState -eq 32768) -or ($VM.EnabledState -eq 32770))   
{       
   $VM.RequestStateChange(32769)       
   $curtime = get-date -f HH:mm:ss       
   echo "$curtime >> Spremanje stanja: $VMName"   
}   

while (!($VM.EnabledState -eq 32769) -and !($VM.EnabledState -eq 3))   
{       
    Start-Sleep(1)       
    $VM = get-wmiobject -namespace root\virtualization -Query "Select * From Msvm_ComputerSystem Where ElementName='$VMName'"   
}
    $curtime = get-date -f HH:mm:ss
    echo "$curtime >> Exportiranje..."
    $status = $VM_Service.ExportVirtualSystem($VM.__PATH, $True, "$dest\$timestamp")
    if ($status.ReturnValue -eq 4096)
    {
        $job = [Wmi]$status.Job
       while (!($job.PercentComplete -eq 100) -and ($job.ErrorCode -eq 0))
        {
            Start-Sleep(10)
            $job = [Wmi]$status.Job
            $curtime = get-date -f HH:mm:ss
         $curperc = $job.PercentComplete
         echo "$curtime >> $curperc%"
        }
    }

$curtime = get-date -f HH:mm:ss
echo "$curtime >> Backup dovrsen i spremljen u $dest\$timestamp\$VMName"
echo ""
$VM.RequestStateChange($VMReturnState)

 

expbackup.ps1

$script_dir = "X:\putanja_do_skripte"
$dest = "X:\putanja_do_backup_mape"
$timestamp = Get-Date -f yyyy-MM-dd_HH-mm

$guest = "Naziv_VM_01"
. "$script_dir\expfunction.ps1"
Start-Sleep(60)

$guest = "Naziv_VM_02"
. "$script_dir\expfunction.ps1"
Start-Sleep(60)

$guest = "Naziv_VM_02"
. "$script_dir\expfunction.ps1"



Primjer korištenja:

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe X:\putanja_do_skripte\expbackup.ps1

Retry. Reboot. Reinstall. Reformat.
Moj PC  
1 0 hvala 2
13 godina
neaktivan
offline
Repozitorij korisnih admin-skripti

 

 

Naziv i verzija:

ThumbnailPhoto 1.0 (by: Marko Franjić)

 

Kratki opis:

Postavlja sliku u ad atribut, zatim se slika replicira u Outlook

 

Vrsta:

PowerShell

 

Programi i/li biblioteke potrebne za rad:

EMS

 

Kod:

function Import-Picture ($Path, $Identity)

{

 

   $Lenght       = ([System.IO.FileInfo]$Path)

   $Extension     = ([System.IO.DirectoryInfo]$Path)

 

 

   if (!([System.IO.File]::Exists($Path)))

   {

     Write-Host "Vaša putanje je nevaljana: $path"

   }

   elseif([System.IO.File]::Exists($Path))

   {

     if ($lenght.Length -gt 10000)

     {

       Write-Host 'File sadrži veličinu veču od dopuštene'

     }

     elseif($lenght.Length -lt 10000)

     {

       if ( $Extension.Extension -eq '.jpg')

       {

         Import-RecipientDataProperty -Identity $Identity -Picture -FileData ([Byte[]]$(Get-Content -Path $Path -Encoding Byte -ReadCount 0))

 

         Write-Host 'Slika postavljena'

       }

       else

       {

       Write-Host 'File mora sadržavati ".jpg" ekstenziju'

       }

     }

   }

}

 

 

Primjer korištenja:

Import-Picture -Path 'C:\User\Pcitures\test.jpg' -Identity 'pero.peric'

 

 

BajaBoss
Poruka je uređivana zadnji put sri 6.2.2013 17:49 (Franjic).
Moj PC  
1 0 hvala 0
15 godina
neaktivan
offline
Repozitorij korisnih admin-skripti

Popis korisnih Exchange skripti (hvala cekpiju na pomoći oko Exchangea):

 

Dobij mailbox GUID:

 

Get-MailboxStatistics -Database "mailbox baza" | Where-Object {$_.DisconnectDate -Notlike $NULL} | FL DisplayName, DisconnectDate, MailboxGuid

 

 

Briši usera iz diskonektanih usera:

 

Remove-Mailbox -Database "mailbox baza" -StoreMailboxIdentity MailboxGuid

 

 

Postavke imena foldera (Inbox- Primljeno, itd):

Set-MailboxRegionalConfiguration -Language “en-EN” -Identity "ime.prezime" -LocalizeDefaultFolderName:$true

 

Dostupno en -EN, hr -HR, de -DE...

 

 

 

Veličina mailboxeva:

 

Get-MailboxDatabase "mailbox baza" | Get-MailboxStatistics | Sort totalitemsize -desc | ft displayname, totalitemsize, itemcount

 

 

 

Briši whitespace u bazi:

Clean-mailboxdatabase –identity "Mailbox baza"

 

 

Vraćanje mailbox iz restorane baze:


1. Odabrati način vraćanja mailboxa (Windows server backup, Vmware flr)
2. Napraviti novi disk na mail serveru (R: u ovome slučaju)
3. Restorati bazu i logove
4. Otvoriti powershell i kucati:
- Provjeri ispravnost log fileova: eseutil /ml R:\logfiledb\E00
- Stavi bazu u clean shutdown: eseutil /r E00 /i /l R:\logfiledb\ /d 'R:\mailboxdb\recovering.edb'
- Provjeri bazu jeli u clean shutdownu: eseutil /mh 'R:\mailboxdb\recovering.edb'
- Ako nije, napravi repair i stavi je u clean shutdown: eseutil /p 'R:\mailboxdb\recovering.edb'
- Provjeri bazu jeli u clean shutdownu: eseutil /mh 'R:\mailboxdb\recovering.edb'
- Dodaj bazu u Exchange s drugim imenom: New-MailboxDatabase RecoveryDB -Server mail.firma.local -Recovery:$true –EdbFilePath 'R:\Mailboxdb\restoring.edb'
- Smontiraj bazu: Mount-Database RecoveryDB
- Provjeri dostupnost mailboxa s sličnim imenom: Get-MailboxStatistics -Database RecoveryDB | ?{$_.DisplayName -like 'ante*'}
- Vrati određeno ime u određeni mailbox iz određenog postojećeg foldera u novi folder: New-MailboxRestoreRequest -SourceDatabase RecoveryDB -SourceStoreMailbox 'Ime Prezime' –TargetMailbox 'Ime Prezime' -TargetRootFolder Restore -AllowLegacyDNMismatch -IncludeFolders '#Inbox#'

Imamo televune, radivone, televizije, lektrika, lektrika, sva čuda, raj na zemlji brajo... Samo nemamo pisme, ni ognjišta ni smija... E!
 
1 0 hvala 0
13 godina
neaktivan
offline
Repozitorij korisnih admin-skripti

Evo jedna sa mog bloga. Neznam koliko ce biti korisna "siroj" populaciji, posto je usko povezana sa hostingom :)

 

Skripta za rucno parsanje statistike ( Awstats ), tj. kada treba parsati stare log fileove. 

Skriptu treba spremiti u isti folder gdje se nalazi i awstats.pl i pretpostavlja da je perl instaliran u c:\perl

Detaljnije upute za koristenje - http://www.winblogs.net/index.php/2012/06/14/parse-old-log-files-with-awstats/

Skripta se pokrece kroz Powershell ( .\file.ps1 )

 

Function Awstats
{
param ($Dir = $(Read-host "Enter path to log files")),
($Website = $(Read-Host "Website name ( without www )?"))
$TargetFolder = $Dir
if (Test-Path $TargetFolder)
{
Write-host "Folder name is :" $TargetFolder -foregroundcolor "Red"
$Files = get-childitem $Dir\*.* -include *.log
$List = $Files | where {$_.extension -eq ".log"}
foreach ($File in $Files)
{
write-host "Updating statistics! Please wait." -foregroundcolor "Red";&'C:\perl\bin\perl.exe' awstats.pl config=$Website logfile=$File}
}
Else
{Write-Host "Folder $TargetFolder doesnt exist! Input correct path!" -foregroundcolor "Red"}
}
Awstats

http://www.winblogs.net
Poruka je uređivana zadnji put pon 11.2.2013 23:45 (Alesandro).
Moj PC  
1 0 hvala 0
13 godina
neaktivan
offline
Repozitorij korisnih admin-skripti

Skripta koja  premjesta log folder od svih webova na serveru u c:\logs\imeweba.tld

 

Ako folder ne postoji, kreira ga i u IIS-u podesi novi path

 

Korištenje : pokrenuti skriptu iz Powershella. 

 

 

Import-Module "WebAdministration" -ErrorAction Stop
foreach($site in (dir iis:\sites\*))
{
write-host $site.Name

if (!(Test-Path -path C:\Logs\$($site.Name)))
{
New-Item c:\Logs\$($site.Name) -type directory
}
Set-ItemProperty IIS:\Sites\$($site.Name) -name logFile.directory -value “C:\Logs\$($site.name)”
}

 

http://www.winblogs.net
Moj PC  
1 0 hvala 0
13 godina
neaktivan
offline
Repozitorij korisnih admin-skripti

Pošto SQL Express nema SQL Agent u kojemu se mogu scheduleati dumpovi baza, koristim sljedeci query za daily dump svih baza na tom SQL serveru ( osim tempdb )

Skripta u ovom slucaju sprema .bak fileove u E:\sqlbackups.

Taj path si izmjenite ako ne pase :)

 

Posto su sys admini po prirodi lijene bube, query se moze scheduleati kroz Task Scheduler.

Komanda koju treba pokretati je:

“C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE” -i “c:\folder\sqlbackup.sql”

 

Path do sqlcmd.exe se moze razlikovati na vasem stroju. 

 

 

DECLARE @name VARCHAR(50) -- database name
DECLARE @path VARCHAR(256) -- path for backup files
DECLARE @fileName VARCHAR(256) -- filename for backup
DECLARE @fileDate VARCHAR(20) -- used for file name
SET @path = 'E:\sqlbackups\' --path to the backup folder
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)
DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name NOT IN ('tempdb')
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + '_' + @fileDate + '.BAK'
BACKUP DATABASE @name TO DISK = @fileName
FETCH NEXT FROM db_cursor INTO @name
END
CLOSE db_cursor
DEALLOCATE db_cursor

http://www.winblogs.net
Moj PC  
3 0 hvala 0
13 godina
neaktivan
offline
Repozitorij korisnih admin-skripti

Brisanje svih fileova iz nekog foldera i podfoldera koji su stariji od X dana. 

 

Koristenje : pokrenuti skriptu u powershellu. 

 

 

 

 

 

Function GetOldFile
{
param ($Dir = $(Read-host "Unesi putanju do direktorija")),
($Days = $(Read-Host "Brišem fileove starije od koliko dana?"))
$TargetFolder = $Dir
if (Test-Path $TargetFolder)

{
Write-host "DIREKTORIJ JE :" $TargetFolder -foregroundcolor "Red"
#Write-Host `a `a `a `a `a - odkomentirati ako zelimo da pc speaker vristi :)
Write-Host "UPS, krivi folder! Stisni 'Ctrl + C' za prekid - imas 5 sekundi za prekid" -foregroundcolor "Yellow"
Start-sleep -s 5
$Now = Get-Date
$LastWrite = $Now.AddDays(-$days)
$Files = get-childitem $TargetFolder -include *.log -recurse |Where {$_.LastWriteTime -le "$LastWrite"}
foreach ($File in $Files)
{write-host "Brišem file $File" -foregroundcolor "Red"; Remove-Item $File | out-null}
}
Else
{Write-Host "Direktorij $TargetFolder ne postoji! Provjeri path!"}
}
GetOldFile

 

http://www.winblogs.net
Moj PC  
1 0 hvala 0
13 godina
neaktivan
offline
Repozitorij korisnih admin-skripti

Skripta koja skida zadnju verziju timthumb.php filea,  trazi stare timthumb.php fileove na serveru ( c:\users\ folder i upgradea ako je tako specificirano kod pokretanja skripte.

 

Ako se odabere D ( detect ) u folder iz kojeg se je skripta pokrenula ce spremiti file sa nazivom "toupgrade.txt" . U fileu ce biti kompletni path do timthumb.php filea. 

Ako se odabere U ( upgrade) , svaki nadjeni file ce zamijeniti sa zadnjom skinutom verzijom timthumb.php filea. 

 

Ovu skriptu sam napisao kada je otkriven timthumb.php exploit, tako da obavijestimo/zastitimo klijente. 

 

Skripta se pokrene u powershellu. Ostalo je pretty much straight forward :D

 

 

Function FindOldTimthumb

{

param ($string = $(Read-host "Enter timthumb.php version")),

($type = $(Read-host "Just (D)etect or (U)pgrade)?"))

$storageDir = $pwd

$path = "C:\users"

$webclient = New-Object System.Net.WebClient

$url = "http://timthumb.googlecode.com/svn/trunk/timthumb.php"

$tt = "$storageDir\timthumb.php"

$webclient.DownloadFile($url,$tt)

if ($type-eq 'D'){

Write-host "Detecting files. Results will be saved in $storagedir \toupgrade.txt" -foregroundcolor "Red"

$Files = Get-ChildItem -path $path -recurse -filter "timthumb.php" |where-object {!(Select-string -Path $_.fullname -Pattern '$string' -SimpleMatch)} > $storagedir\toupgrade.txt

}

elseif($type -eq 'U') {

$Files = Get-ChildItem -path $path -recurse -filter "timthumb.php" |where-object {!(Select-string $_.Fullname -Pattern '$string' -SimpleMatch )} | ForEach-Object -Process {$_.DirectoryName} | Out-File $pwd\timthumb.txt

$infected ="$pwd\timthumb.txt"

foreach ($File in $Files)

{

Get-content $infected |ForEach-Object {

write-host "Upgrading file $_\timthumb.php" -foregroundcolor "Red"

(Get-Content $infected)| Foreach-Object {Copy-Item $tt $_ -force}

#Write-host "Upgrading file $File " -foregroundcolor "Red" {Copy-Item $tt -destination $File -force)

}

}

}

}

FindOldTimthumb

 

 

 

http://www.winblogs.net
Poruka je uređivana zadnji put uto 12.2.2013 0:13 (Alesandro).
Moj PC  
0 0 hvala 0
13 godina
neaktivan
offline
Repozitorij korisnih admin-skripti

Skripta koja trazi stare Joomle ili Wordpresse na serveru i sprema rezultate u oldwordpress.txt ili oldjoomla.txt, zavisno sto se skenira. 

 

Koristenje : pokrenuti iz Powershella i citati :)

 

Zamijenti $path = "c:\users\" sa vasim pathom. 

 

 

 

Function FindOldWPandJoomla

{

param ($type = $(Read-host "Check (W)ordpress or (J)oomla?")),

($string = $(Read-host "Enter latest version"))

$storageDir = $pwd

$path = "C:\users\"

if ($type-eq 'W'){

Write-host "Detecting old versions. When done, results will be saved in $storagedir\oldwordpress.txt" -foregroundcolor "Red"

$Files = Get-ChildItem -path $path -recurse -filter "version.php" |where-object {!(Select-string $_.Fullname -Pattern '$string' -SimpleMatch )} | ForEach-Object -Process {$_.DirectoryName} | Out-File $storagedir\folderlist.txt

$folders ="$storagedir\folderlist.txt"

Get-Content $folders | Select-String "wp-includes" > $storagedir\oldwordpress.txt

}

elseif($type -eq 'J') {

Write-host "Detecting old versions. When done, results will be saved in $storagedir\oldjoomla.txt" -foregroundcolor "Red"

$Files = Get-ChildItem -path $path -recurse -filter "version.php" |where-object {!(Select-string $_.Fullname -Pattern '$string' -SimpleMatch )} | ForEach-Object -Process {$_.DirectoryName} | Out-File $storagedir\folderlist.txt

$folders ="$storagedir\folderlist.txt"

Get-Content $folders | Select-String "components" > $storagedir\oldjoomla.txt

}

}

FindOldWPandJoomla

 

http://www.winblogs.net
Poruka je uređivana zadnji put uto 12.2.2013 0:17 (Alesandro).
Moj PC  
0 0 hvala 0
7 godina
neaktivan
offline
Repozitorij korisnih admin-skripti

Ovaj digitalni repozitorij kreiran je u sklopu sustava Digitalnih akademskih arhiva i repozitorija Dabar koji ustanovama iz sustava znanosti i visokog obrazovanja omogućava da plodove svog rada u digitalnom obliku okupljaju na jednom mjestu, dugoročno ih čuvaju i koriste, a da pritom ne moraju razmišljati o tehnološkim pitanjima vezanim uz uspostavu i održavanje repozitorija. Veliku količinu materijala koja nastaje njenim radom, bilo da je riječ o izvorno digitalnoj ili digitaliziranoj građi, ustanova može pohraniti u svoj digitalni, institucijski repozitorij te tako osigurati jednostavnu organizaciju i pretraživost građe.

 
0 0 hvala 0
6 godina
offline
Repozitorij korisnih admin-skripti

Bilo mi dosadno pa napravio skriptu za mount share-a na linuxu (lako se prebaci u servis za automatizaciju sto sam u biti i napravio). Anyway:

 

putanja1= ip adresa\ime npr: \/\/192.168.1.11\/Ime

odrediste1= u koji se folder mounta share npr \/mnt\/share

* \\ se mora raditi sa escape characterom (\/\/= \\)

 

username: korisnik koji ima pravo na share

Passw: Lozinka za share

Admin pass: pass za sudo (ako korisnik nema prava treba ga dodati u sudoers)

 

Može se napraviti da se ne prompta za ista tipa:

mount_user=ime

mount_pass=lozinka 

ali se onda trebaju promijeniti prava na datoteku (chown samo na root) tako da drugi ne mogu citati lozink (plaintext jelte :D)

 

& fora je ako imate vise odredista (kao ja) onda napravite bulk mount :D samo sa c/p te odrediste(n)/putanja(n)

 

ako trebate mount od apple time capsule dodate: sec=ntlm,vers=1.0 u opcije :D

 

#!/bin/bash
putanja1=

odrediste1=
echo "Enter username for mounts:"
read mount_user
[[ -z "mount_user" ]] && echo "Username empty, exiting" && exit
echo "Enter password for mounts:"
read -s mount_pass
[[ -z "mount_pass" ]] && echo "Password empty, exiting" && exit
echo "Enter admin pass:"
read -s lozinka
[[ -z "lozinka" ]] && echo "Password empty, exiting" && exit
echo "neko ime share-a tek da se zna sto se mounta"
echo "$lozinka" | sudo -S mount.cifs $putanja1 $odrediste1 -o username="$mount_user",password="$mount_pass",gid=$(id -g),uid=$(id -u),forceuid,forcegid 2>/dev/null

exit

NULL!=NULL
 
0 0 hvala 1
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice