Come vedere rapidamente le dimensioni in GB delle cassetta postali di Exchange con la EMS

Find username Avete la necessità di controllare le dimensioni della casella postale di uno o più utenti in modo rapido nel vostro Exchange?

Potete usare la EMS (Exchange Management Shell)!

Ecco come fare:

$Totale=0;(get-mailbox)| where-object {$_.LinkedMasterAccount -ne "NT AUTHORITY\SELF"}| select-object -property @{Name="Utente";Expression={$_.Name}},@{Name="GB";Expression = {"{0:N2}" -f ((get-mailbox $_.Alias|Get-MailboxStatistics).Totalitemsize.value.tomb()/1024)}},@{Name="Limite";Expression={$_.ProhibitSendReceiveQuota}} | sort-object GB -Descending;(get-mailbox)| % { $Totale+=((get-mailbox $_.Alias|Get-MailboxStatistics).Totalitemsize.value.tomb()/1024)};write-host ;write-host "Totale cassette (in GB):"([math]::Round($Totale))

Questo il risultato:

Utente          GB          Limite
------          --          ------
Valerio         9,52         12GB
Antonio         5,41          6GB
Leonardo        4,92          6GB
Emanuele        3,52          5GB
Salvatore       2,59          8GB

Totale cassette (in GB): 25,96

Inviare i messaggi sulla rete con il comando msg

Find username

Vi ricordate il comando net send che inviava piccoli messaggi sulla rete?

Ora c’è il comando msg ma come funziona?

Quando si aveva l’esigenza di mandare un messaggio sullo schermo di un computer, senza interazione, per avvisare gli utenti di un particolare evento o per comunicazioni straordinarie, esisteva, fino alle versioni XP e 2003, il comando net send.
Da Windows Vista in poi il comando è stato sostituito da msg.exe, eseguibile che non ha trovato tanti fan nel mondo informatico, vista la difficoltà nell’uso pratico.

In realtà un modo semplice per usarlo c’è ed è questo:

%windir%\system32\msg.exe * /server:NOMEPC /v "Messaggio di prova"

Se avete l’esigenza di inviare un messaggio di broadcast a tutti i PC create un file TXT contenente in ogni riga il nome di un PC e…

@echo off
Set "listComputers=c:\percorso\ListaComputersDominio.txt"
Set Message="Messaggio da Vincenzo: Riavvio del server in corso. Mi scuso anticipatamente per il disagio."
For /f "delims=" %%* in ('type "%listComputers%"') Do (
    echo.Invio messaggio al computer %%*
    %windir%\system32\msg.exe * /server:%%* /v %Message%
    echo.
)
echo.Fatto.
echo.Premi invio per chiudere.
pause>nul

Sincronizzare i propri desktop, documenti e immagini su Onedrive automaticamente

OneDrive

Vi piacerebbe sincronizzare il desktop, i documenti, le immagini, la musica, ecc. del vostro utente su Onedrive automaticamente?

Ecco come fare per avere una copia dei propri documenti sul Cloud di Microsoft in modo rapido e sicuro. (Ed accedervi dallo smartphone)

Seguite questa procedura passo-passo:

Passo 1

Create un account Onedrive
Dal sito https://onedrive.live.com/about/it-it/ effettuate l’iscrizione al Cloud di Microsoft. Avrete diritto a conservare 15 GB di dati gratuitamente (più altri 15 per il backup delle vostre foto).

Passo 2

Installate l’applicazione Onedrive sul PC.
Dal sito di Microsoft scaricate il programma (o la relativa App nel caso il vostro sistema operativo fosse Windows 8 o successivo) ed installatelo applicando tutte le impostazioni proposte dal programma.

Passo 3

Eliminate le cartelle predefinite
Aprite la cartella predefinita di Onedrive cliccando con il pulsante destro sull’iconcina a forma di nuvola presente nella vostra barra delle applicazioni (in basso a destra sullo schermo). Selezionate la voce “Apri OneDrive in Esplora file” e sarete reindirizzati alla cartella suddetta.
Spostate gli eventuali files presenti in un altra collocazione (per poi eliminarli qualora non contenessero nulla di utile).

Passo 4

Collegate le cartelle da sincronizzare
Ora potete collegare le cartelle di vostro interesse da sincronizzare al vostro profilo.
Ad esempio volete sincronizzare il desktop, i documenti e le immagini del vostro utente…

mklink /j c:\users\nomeutente\Onedrive\Desktop c:\users\nomeutente\Desktop
mklink /j c:\users\nomeutente\Onedrive\Immagini c:\users\nomeutente\Pictures
mklink /j c:\users\nomeutente\Onedrive\Documenti c:\users\nomeutente\Documents

la sintassi è questa:

mklink /j cartella_di_destinazione_su_OneDrive cartella_sul_vostro_PC

Vi invito a fare attenzione alle cartelle sul vostro PC che spesso presentano dei nomi diversi da quelli mostrati dal sistema operativo. Ad esempio la cartella Immagini nel vostro sistema operativo potrebbe chiamarsi Pictures.
Nel dubbio potete lanciare il seguente comando da un prompt dei comandi per veder i nomi di tutte le cartelle presenti nel vostro profilo utente:

@for /f "usebackq tokens=*" %a in (`dir /b "%USERPROFILE%\*"`) do @echo %USERPROFILE%\%~a

Passo 5

Attendete la sincronizzazione
Il programma OneDrive inizierà a sincronizzare le cartelle collegate. Ciò significa che tutto ciò che avete nelle cartelle di cui al punto 4 sarà copiato nel Cloud. Vi faccio presente che i tempi di quest’operazione dipendono esclusivamente dalla velocità della vostra connessione ad Internet (non quella di download ma quella di upload).
E’ evidente che nel caso di connessione Internet a consumo bisogna valutare correttamente la quantità di dati da copiare nel Cloud (per intenderci se tutti i files inclusi nella vostra cartella Immagini raggiungono i 10GB di dati, ed avete deciso di sincronizzarla, consumerete 10GB di traffico dati).

Passo 6

Verifica ed utilizzo pratico (il punto più importante)
Una volta che OneDrive vi comunicherà di aver aggiornato tutto allora potrete procedere all’utilizzo pratico.
Un modo semplice per verificare è provare ad accedere al sito web di Onedrive (vedi punto 1) ed accedere al relativo portale. Da qui vedrete tutte le cartelle da voi sincronizzate.
Un altro modo pratico per accedere ai dati suddetti è dallo smartphone; ormai l’app di OneDrive è presente in tutti gli store a prescindere dal sistema operativo del vostro apparecchio. Scaricate l’applicazione inserite nome utente e password e potrete accedere ai dati suddetti. In più potrete anche decidere di salvare automaticamente le foto da voi scattate direttamente su OneDrive (fino a 15GB gratis).

ATTENZIONE

Essendo le cartelle suddette sincronizzate tra Cloud e PC se cancellate qualcosa in OneDrive (dal sito o dall’applicazione sullo smartphone) la modifica sarà replicata anche sul vostro computer cancellando anche da lì i files.
Pertanto vi invitiamo a fare attenzione e ad effettuare qualche piccola prova in modo da comprendere bene il meccanismo per poi goderne di tutti gli evidenti vantaggi.

Lanciare una sessione di desktop remoto senza pulsante Start

Find username

Vorrestre lanciare una sessione di desktop remoto su di un server senza consentire all’utente di usare il pulsante Start?

Si può fare!

Ecco come:

Basta “killare” il processo Explorer dell’utente che accede ed egli non potrà più usare il pulsante start e i menu vari. Si potrà poi lanciare l’eseguibile del programma che volete far utilizzare all’utente remoto.

Ecco lo script di logon da lanciare in fase di accesso:

FOR /F "tokens=2" %%i IN ('tasklist.exe /FI "IMAGENAME eq explorer.exe" /FI "Username eq nome_dell_utente"^|findstr "exp"') DO taskkill /PID %%i /f
Nome-dell-Eseguibile-che-deve-essere-lanciato
logoff

Trovare il numero della settimana corrente con powershell

WeekNumber

In uno script vi serve il numero della settimana corrente per svolgere una determinata azione una settimana sì ed una no?

Usate Powershell!

Spesso capita di voler svolgere una determinata azione a seconda che il numero della settimana sia pari o dispari, ad esempio voglio fare una copia di alcuni files una settimana in un disco e una settimana in un altro.
In soccorso arriva Powershell. Con esso possiamo stabilire il numero della settimana corrente e di conseguenza capire se è pari o dispari, per poi disporre un’azione da eseguire.

Ad esempio volete lanciare un programma se la settimana corrente è dispari:

if((get-date -uformat %W)% 2 -eq 0) 
       {write "Pari. Non faccio niente!"
       } 
    else 
       {write "Dispari. Procedo con le azioni previste..."
        ...azione da eseguire
       } 

Oppure voglio connettere una LUN iScsi per le settimane pari ed un’altra per le settimane dispari:

write Disconnetto tutte le sessioni iScsi...
(iscsicli reporttargetmappings|findstr /i "sess").substring(30,33)| foreach-object -process {invoke-command{iscsicli logouttarget $_}}
if((get-date -uformat %W)% 2 -eq 0) 
       {write "Settimana pari. Attivo la LUN pari"
	iscsicli qlogintarget iqn.1992-04.com.emc:storage.LUN-PARI
       } 
    else 
       {write "Settimana dispari. Attivo la LUN dispari"
	iscsicli qlogintarget iqn.1992-04.com.emc:storage.LUN-DISP
       } 

Spedire email da Outlook per conto di un gruppo o di un altro utente con Exchange

SendAs

Come spedire email da Outlook per conto di un gruppo o di un altro utente di Exchange?

Ecco il procedimento…


Per garantire ad un utente di Exchange 2007 di spedire per conto di un gruppo o di un altro utente lanciare il seguente comando dalla Exchange Management shell:

Ad es.
Mario Rossi deve spedire per conto di gruppo.info@acme.com

Add-ADPermission -Identity "Mario Rossi" -User gruppo.info -ExtendedRights Send-as

oppure (ma io preferisco il primo)

Add-AdPermission "Group Name" -user "User Name" -AccessRights extendedright -ExtendedRights "send as"

Per verificare:

Get-ADPermission -Identity "Mario Rossi" -User gruppo.info


IMPORTANTE!!!
Attenzione la Exchange Management Shell deve essere lanciata con il permesso di Amministratore! e spesso l’Archivio informazioni di Exchange (servizio MsExchangeIs) deve essere riavviato dopo l’operazione (restart-service msexchangeis)

Ad esempio se volete creare un gruppo di distribuzione “newsletter” i cui membri possano inviare messaggi con l’indirizzo newsletter@acme.local questi sono i comandi della EMC:

1.
Creare il gruppo di distribuzione newsletter con indirizzo di posta newsletter@acme.local e designare i membri;

2.
Lanciare il comando:

Get-DistributionGroupMember -Identity newsletter | Add-ADPermission -User newsletter -ExtendedRights Send-as

Come sincronizzare i server Windows 2008/2012

NTP Come sincronizzare uno o più Windows Server 2008/2012 con un server esterno e tra di loro?

Usando il servizio W32time

 
Ecco la procedura:
 

Se il server è un DC con il ruolo di master operazioni

(verificabile con il comando:netdom /query FSMO)

 

Possiamo o applicare la fix prevista nella soluzione http://support.microsoft.com/kb/816042 oppure procedere con i seguenti passi:

  • Sincronizzare il server di riferimento ora interno (FSMO) con un’origine ora esterna.
    • Cambiare il tipo di server in NTP. Per effettuare questa operazione, attenersi alla seguente procedura:
      • Fare clic sul pulsante Start, scegliere Esegui, digitare regedit, quindi scegliere OK.
      • Individuare e selezionare la seguente sottochiave del Registro di sistema:

        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type

      • Nel riquadro destro fare clic con il pulsante destro del mouse su Type, quindi scegliere Modifica.
      • In Modifica valore, digitare NTP nella casella Dati valore, quindi scegliere OK
    • Impostare AnnounceFlags = 5. Per effettuare questa operazione, attenersi alla seguente procedura:
      • Individuare e selezionare la seguente sottochiave del Registro di sistema:

        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags

      • Nel riquadro destro fare clic con il pulsante destro del mouse su AnnounceFlags, quindi scegliere Modifica.
      • In Modifica valore DWORD, digitare 5 (decimale) nella casella Dati valore, quindi scegliere OK.
    • Abilitare NTPServer. Per effettuare questa operazione, attenersi alla seguente procedura:
      • Individuare e selezionare la seguente sottochiave del Registro di sistema:

        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer

      • Nel riquadro destro fare clic con il pulsante destro del mouse su Enabled, quindi scegliere Modifica.
      • In Modifica valore DWORD digitare 1 nella casella Dati valore, quindi scegliere OK.
    • Specificare le origini ora. Per effettuare questa operazione, attenersi alla seguente procedura:
      • Individuare la seguente sottochiave del Registro di sistema:

        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters

        e fare clic su di essa.

      • Nel riquadro destro fare clic con il pulsante destro del mouse su NtpServer, quindi scegliere Modifica.
      • In Modifica valore, digitare l’elenco dei peer (esempio ntp1.inrim.it,0x1) nella casella Dati valore e scegliere OK.
        Nota: Peer è un segnaposto per un elenco di peer delimitato da spazi dal quale il computer ottiene i timestamp. Ogni nome DNS elencato deve essere univoco. È necessario aggiungere,0x1 alla fine di ogni nome DNS. Se non si aggiunge,0x1 alla fine di ogni nome DNS, le modifiche apportate nel passaggio 5 non avranno effetto.
    • Selezionare l’intervallo di polling. Per effettuare questa operazione, attenersi alla seguente procedura:
      • Individuare e selezionare la seguente sottochiave del Registro di sistema:

        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval

      • Nel riquadro destro fare clic con il pulsante destro del mouse su SpecialPollInterval, quindi scegliere Modifica.
      • In Modifica valore DWORD digitare TempoInSecondi nella casella Dati valore e scegliere OK.
        Nota: TempoInSecondi è un segnaposto per il numero di secondi tra un polling e l’altro. Si consiglia di impostare 900 Decimale. Questo valore consente di configurare il server di riferimento ora in modo che venga eseguito il polling ogni 15 minuti.
    • Configurare le impostazioni di correzione ora. Per effettuare questa operazione, attenersi alla seguente procedura:
      • Individuare e selezionare la seguente sottochiave del Registro di sistema:

        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxPosPhaseCorrection

      • Nel riquadro destro fare clic con il pulsante destro del mouse su MaxPosPhaseCorrection, quindi scegliere Modifica.
        Nella finestra di dialogo Modifica valore DWORD selezionare Decimale nella casella Base.
      • In Modifica valore DWORD, digitare TempoInSecondi nella casella Dati valore e scegliere OK.
        Nota: TempoInSecondi è un segnaposto per un valore ragionevole, ad esempio 1 ora (3600) o 30 minuti (1800). Il valore selezionato dipenderà dall’intervallo di polling, dalla condizione della rete e dall’origine ora esterna.
    • Configurare la correzione ora negativa maggiore. Per effettuare questa operazione, attenersi alla seguente procedura:
      • Individuare e selezionare la seguente sottochiave del Registro di sistema:

        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\MaxNegPhaseCorrection

      • Nel riquadro destro fare clic con il pulsante destro del mouse su MaxNegPhaseCorrection, quindi scegliere Modifica.
      • Nella finestra di dialogo Modifica valore DWORD selezionare Decimale nella casella Base.
      • In Modifica valore DWORD, digitare TempoInSecondi nella casella Dati valore e scegliere OK.
        Nota: TempoInSecondi è un segnaposto per un valore ragionevole, ad esempio 1 ora (3600) o 30 minuti (1800). Il valore selezionato dipenderà dall’intervallo di polling, dalla condizione della rete e dall’origine ora esterna.
  • Chiudere l’editor del Registro di sistema.
  • Da un prompt dei comandi digitare il seguente comando per riavviare il servizio Ora di Windows, quindi premere INVIO:

    net stop w32time && net start w32time

 

Per il server che è un DC senza ruolo di master operazioni

(verificabile con il comando:netdom /query DC)

 
Dopo aver abilitato la sincronizzazione esterna nel server con il ruolo FSMO (vedi sopra),
con il comando w32tm /monitor avremo:

NOMEDC.dominio.local[[fe80::9d32:87c6:ddb5:29e4%25]:123]:
ICMP: 0ms ritardo
NTP: -0.0076197s differenza di tempo da NOMEDC-FSMO.dominio.local
RefID: IP-DEL-SERVER-NTP-DA-SOSTITUIRE-CON-FSMO-INTERNO
Strato: 2

quindi lanciare i comandi:

net stop w32time
w32tm /unregister
w32tm /register
net start w32time
w32tm /resync
w32tm /monitor

Configurare un SMTP server su Windows senza Exchange

SMTP2008 Volete spedire le notifiche da un server Windows ma non sapete abilitare il protocollo SMTP?

Ecco una guida completa per spedire i messaggi dal server senza avere Exchange o un altro mail server!

Tutti i server Windows 2008 hanno la possibilità di fungere da server SMTP senza la necessità di installare alcun software, ma semplicemente abilitando una delle sue funzionalità.

Primo passo installare la funzionalità di server SMTP:
Dalla box “Cerca programmi e file” cercare “Attivazione o disattivazione delle funzionalità di Windows” ed aprire la relativa management console; quindi selezionare le funzionalità e, dalla sezione all’estrema sinistra selezionate “Aggiungi funzionalità”. Scegliete tra tutte le funzionalità quella relativa al protocollo SMTP ed accettate tutte le richieste.
Non appena terminata l’installazione dagli strumenti di amministrazione aprite la console
Gestione Internet Information Services (IIS) 6.0 oppure lanciate il comando inetmgr6.exe.

Ora applicate le seguenti configurazioni.
1. Create un nuovo dominio esterno per ogni indirizzo a cui volete spedire e-mail. Ad esempio se il vostro indirizzo e’ info@nomedominio.it allora create un nuovo dominio come indicato.
SMTP1

2. Cliccate con il pulsante destro su SMTP Virtual server #1 selezionate Proprietà -> Accesso, cliccate sul pulsante Connessione in corso ed abilitate l’accesso al solo indirizzo del computer locale ovvero localhost (127.0.0.1)
SMTP1

3. Cliccate sul pulsante Inoltro in corso… e consentite l’inoltro a tutti
SMTP1

4. Se poi volete essere ancora più sicuri conviene inoltrare la posta tramite uno smart host (tipo out.alice.it). Chiedete al vostro provider della linea internet per conoscere il nome del server SMTP a cui reinoltrare le e-mail in uscita oppure chiedete a chi vi fornisce il nome a dominio. Modificate il vostro dominio inserendo il nome del server SMTP esterno. Se il provider dovesse richiedere l’autenticazione cliccate su Protezione recapito esterno ed inserite le credenziali nella sezione Autenticazione di base
SMTP1

Errore Outlook su ricerca: “impossibile completare l’azione. Riprovare”

RicercaOutlook

Quando lanciate una ricerca da un Outlook collegato ad un server Exchange (oppure fate la ricerca da Outlook web access) vi compare l’errore “impossibile completare l’azione” e non sapete cosa fare?

Riorganizzate gli indici di Exchange!

Se compare in Outlook (legato a Exchange 2007/2010) l’errore

"impossibile completare l'azione. Riprovare"

vuol dire che l’indice del database è corrotto.

Per verificare lo stato lanciare il comando:

[PS]> Get-MailboxDatabaseCopyStatus

Name                        Status   Copy   Replay Last Time   State
                                     Queue  Queue  Inspected   
                                     Length Length Log Time    
--------------------------  ------   ------ ------ ----------  -------
Mailbox Database\SERVER-01  Mounted  0         0               Failed
Archive Database\SERVER-02  Mounted  0         0               Healthy

In questo caso lo stato non dovrebbe essere Healthy ma Failed, quindi bisognerà lanciare lo script .\ResetSearchIndex.ps1 -all presente nella cartella C:\programmi\microsoft\Exchange Server\v14\scripts.

[PS]> cd C:\programmi\microsoft\Exchange Server\v14\scripts
[PS]> .\ResetSearchIndex.ps1 -all

Non appena lanciato lo stato del database passerà a Crawling (se consultato con il comando Get-MailboxDatabaseCopyStatus). Alla fine della reindicizzazione lo stato ripasserà a Healthy.

Riavviare poi i relativi servizi lanciando i comandi:

[PS]> Restart-Service MSexchangeSearch
[PS]> Restart-Service MSexchangeIS

Riprovare con la ricerca.

Come tracciare i messaggi inviati/spediti tramite Exchange 2007/2010/2013

Track Exchange message

Come e’ possibile tracciare i messaggi inviati da e verso un server Exchange?

Con la EMS (Exchange Management Shell)!

Ecco come fare…

Per verificare i messaggi che escono da un server Exchange in un determinato range di date/ora è possibile usare la seguente sintassi nella Exchange Management Console:

get-messagetrackinglog -EventID "SEND" -Start "12/18/2013 00:01:00" -End "12/18/2013 16:11:00"| ConvertTo-Html -as Table -property Timestamp, Sender, MessageSubject, RecipientCount > ReportMail.html; ii ReportMail.html
get-messagetrackinglog -EventID "SEND" -Start "12/18/2013 00:01:00" -End "12/18/2013 16:11:00"| where-object {$_.Sender -eq "EmailDelMittente"} | ConvertTo-Html -as Table -property Timestamp, Sender, MessageSubject, RecipientCount > ReportMail.html; ii ReportMail.html

Il tipo di evento “SEND” può essere sostituito con “RECEIVE” in questo modo:

get-messagetrackinglog -EventID "RECEIVE" -Start "12/18/2013 14:31:00" -End "12/18/2013 16:11:00" | select Timestamp, Sender, {$_.Recipients}, MessageSubject, RecipientCount | ConvertTo-Html -as table > ReportMail.html; ii ReportMail.html

Ad esempio, per verificare le e-mail ricevute da un proprio utente:

get-messagetrackinglog -EventID "RECEIVE" -Start "12/18/2013 14:31:00" -End "12/18/2013 16:11:00" | where-object {$_.Recipients -like "*EmailDelDestinatarioInterno*"} | select Timestamp, Sender, {$_.Recipients}, MessageSubject, RecipientCount | ConvertTo-Html -as table > ReportMail.html; ii ReportMail.html

Mentre per controllare le e-mail spedite da nomeutente@gmail.com a mioutente@miodominio.it:

get-messagetrackinglog -EventID "RECEIVE" -Start "12/18/2013 14:31:00" -End "12/18/2013 16:11:00" | where-object {$_.Sender -eq "nomeutente@gmail.com" -and $_.Recipients -like "*mioutente@miodominio.it*"} | select Timestamp, Sender, {$_.Recipients}, MessageSubject, RecipientCount | ConvertTo-Html -as table > ReportMail18122013.html; ii ReportMail18122013.html

Volendo è possibile aggiungere un foglio CSS con il codice seguente:
(inserire il parametro -CssUri nomefile.css

table {
width: 100%;
color: #333;
font-family: Helvetica, Arial, sans-serif;
width: 640px;
border-collapse: collapse;
border-spacing: 0;
} 
td th {
border: 1px solid #CCC;
height: 60px;
}
th {
background: #F3F3F3;
font-weight: bold;
border: 1px solid #7F7F7F;
}
td {
background: #FAFAFA;
text-align: center;
font-size:12px;
border: 1px solid #7F7F7F;
}

Esempio
Voglio un file HTML per verificare tutte le email spedite ad utenti Gmail nel mese di Dicembre del 2013

get-messagetrackinglog -EventID "SEND" -Start "12/01/2013 00:00:00" -End "12/31/2013 23:59:59" |where-object {$_.Recipients -like "*gmail.com*"} | select @{Expression={$_.Timestamp};Label="Data/Ora"}, @{Expression={$_.Sender};Label="Mittente"}, @{Expression={$_.Recipients};Label="Destinatari"}, @{Expression={$_.MessageSubject};Label="Oggetto"}, @{Expression={$_.RecipientCount};Label="Numero destinatari"} | ConvertTo-html -cssuri "table.css" > ReportMail.html ; ii .\ReportMail.html

Voglio che mi venga spedito un file HTML allegato ad un email contenente tutte i messaggi ricevuti da un utente del mio dominio nelle ultime 24 ore

$allegato= $env:temp +'\Messaggi_' + (get-date).day + '-' + (get-date).month + '-' + (get-date).year +  '.html'
get-messagetrackinglog -EventID "RECEIVE" -Start (Get-Date).AddHours(-24) | where {$_.Recipients -like "*utente@dominio.com*"}| select Timestamp, Sender, MessageSubject | ConvertTo-Html -as table > $allegato; Send-MailMessage -to "destinatario-rapporto-mail@dominio.it" -from "postmaster@dominio.it"  -Subject ('Report mesaggi del ' + (get-date).day + '-' + (get-date).month + '-' + (get-date).year) -Attachments "$allegato" -
SmtpServer 127.0.0.1

Se invece volete esportare su Excel le email spedite nelle ultime 24 ore:

get-messagetrackinglog -EventID "SEND" -Start (get-date).AddHours(-24) |where-object {$_.Sender -like "*EmailDelMittente*"} | select @{Expression={$_.Timestamp};Label="Data/Ora"}, @{Expression={$_.Sender};Label="Mittente"}, @{Expression={$_.Recipients};Label="Destinatari"}, @{Expression={$_.MessageSubject};Label="Oggetto"}, @{Expression={$_.RecipientCount};Label="Numero destinatari"} | ConvertTo-CSV -delimiter "`t" > ReportMail.csv ; ii .\ReportMail.csv

ATTENZIONE
nel caso riceviate il seguente errore

Get-MessageTrackingLog : Impossibile associare il parametro 'Start'. Impossibile convertire il valore "12/18/2013 14:31:00" nel tipo "System.DateTime". Errore: "Stringa non riconosciuta come valore DateTime valido." In riga:1 car:49

Bisognerà invertire il mese ed il giorno nelle date!

Come sapere chi è loggato ad un PC di un dominio?

Find usernameVolete sapere su un PC della rete chi si è loggato ma non sapete come fare?

Potete usare un batch con un comando WMI.

Ecco come fare:

 
 

Create questo script che accetti come parametro l’indirizzo IP o il nome del computer:

@echo off
for /F "tokens=1 delims= " %%i in ('WMIC /node:%1 ComputerSystem Get UserName 2^>^&1 ^| find /i "\"') do set NOME=%%i
IF "%NOME%"=="" (echo Non e' possibile recuperare il valore richiesto per l'IP %1.) ELSE (echo L'utente connesso a %1 e' %NOME%)
SET NOME=

 
Ad esempio il risultato del comando “c:\temp\CercaUtenteLoggato.bat 192.168.100.221” sarà:

L'utente connesso a 192.168.100.221 e' DOMINIO\vincenzoconvertito


 
 

Come ottenere da remoto la lista delle stampanti installate su un PC

Printer's listIn un dominio si ha spesso la necessità di vedere quali stampanti sono presenti su un PC remoto.

Ma come ottenere quest’informazione da linea di comando?

Usando WMI!

 
 

Aprire un prompt dei comandi e digitare:
wmic /node:NOMECOMPUTER-O-INDIRIZZO-IP printer list status

otterremo:

Name                   Status
RICOH MP 2501 PCL 6    Online
NRG P7431cn PCL 5c     Online
Microsoft XPS Document Online
INFOTEC MP C2030       Offline
HP LaserJet 3050       Online
CommunicationsClients  Online

Errore nell’accesso all’instanza SQL microsoft##…

Error-SSEE Se provate ad accedere dalla management console di SQL ad un istanza del Windows Internal Database ricevete l’errore “impossibile connettersi a NOMESERVER\MICROSOFT##…”.
Come accedere?

Basterà inserire come nome server:

\\.\pipe\mssql$microsoft##ssee\sql\query

Per SQL2012 la sintassi cambia in:
\\.\pipe\MICROSOFT##WID\tsql\query

Importante:

La management console deve essere eseguita come amministratore!

Tempi di notifica del ritardo di recapito di un messaggio in Exchange 2007/2010

A volte capita che dopo aver spedito un messaggio al nostro server Exchange ci venga restituito il seguente errore: “Recapito ritardato per i seguenti destinatari o gruppi…”. Ma i tentativi vanno avanti per due giorni e poi arriva la fatidica notizia: Impossibile recapitare il messaggio.

Due giorni vi sembrano troppi?
Continua a leggere Tempi di notifica del ritardo di recapito di un messaggio in Exchange 2007/2010

Configurare la dimensione max di un messaggio in uscita/arrivo in Exchange 2007/2010

E-mailSizeA volte si ha la necessità di variare il limite di default di Exchange per l’invio di messaggi di posta elettronica.
Per una rapida soluzione al problema basta usare la EMC.

Ecco come fare:

Continua a leggere Configurare la dimensione max di un messaggio in uscita/arrivo in Exchange 2007/2010

Implementare facilmente un server proxy

ProxyOggi la necessità di filtrare gli accessi ad internet ci impone l’uso di un server proxy che regolamenti la navigazione di tutti gli apparecchi della rete.

Ma come implementare facilmente un proxy da un server Windows usando il DHCP e IIS?

Usando il WPAD (noto anche come PAC)

Continua a leggere Implementare facilmente un server proxy

Ripulire il database dei file non in linea per riavviare la sincronizzazione dei files

offlinefiles
A volte capita che la sincronizzazione dei files non riesca o che vengano mostrati errori di sincronizzazione, a causa della corruzione del database che contiene i file non in linea. Come risolvere il problema?

Continua a leggere Ripulire il database dei file non in linea per riavviare la sincronizzazione dei files

La posta elettronica certificata (PEC)

Che cos’è la Posta Elettronica Certificata?

La Posta Elettronica Certificata (PEC) è una soluzione digitale per l’invio di contenuti con valore legale che garantisce la certezza di invio e di consegna al destinatario, in sostituzione di strumenti tradizionali quali raccomandata con ricevuta di ritorno o fax. La PEC si rivolge principalmente a chi ha l’esigenza di inviare messaggi in modo sicuro direttamente dal proprio pc. L’utilizzo della PEC è particolarmente vantaggioso non solo per i privati, che grazie alla PEC possono evitare spese e code agli uffici postali per l’invio delle proprie raccomandate, ma anche per le aziende perché la PEC consente di semplificare i rapporti con clienti e fornitori, sostituendosi alle raccomandate e ai fax nei rapporti ufficiali.

Da quali leggi è regolata?

La Posta elettronica certificata è regolata del DL 185/2008 convertito con Legge 2/2009. L’articolo 16 del suddetto Decreto sancisce che: -Le nuove società sono tenute a dichiarare l’indirizzo PEC all’iscrizione nel registro delle imprese -I professionisti dovranno dichiarare, entro un anno, l’indirizzo PEC ai rispettivi ordini -Le società già esistenti dovranno dichiarare entro tre anni l’indirizzo PEC al registro delle imprese -Tutte le pubbliche amministrazioni dovranno dichiarare il proprio indirizzo PEC La Posta elettronica certificata fornita da Register.it in collaborazione con Infocert consente alle società, ai professionisti e alle pubbliche amministrazioni di adeguarsi immediatamente alle disposizioni previste dal decreto attivando un vero e proprio “domicilio elettronico” virtuale.

Come funziona la PEC?

Funzionamento PEC

Tra due utenti dotati di posta elettronica certificata il percorso di invio e ricezione del messaggio è mediato e garantito dai provider accreditati dal CNIPA (Centro Nazionale per l’Informatica nella Pubblica Amministrazione http://www.cnipa.gov.it/site/it-IT/) che regolano la PEC. Il mittente invia il suo messaggio (1a) e riceve la ricevuta di accettazione (1b), nel momento in cui il messaggio viene preso in carico dal suo provider. Il messaggio viene inviato in maniera protetta e assicurata dal provider del mittente a quello del destinatario tramite una busta di trasporto (2a) virtuale sigillata. In fase di ricezione dal provider del destinatario viene inviata al mittente la ricevuta di consegna (2b). Allo stesso tempo il provider del destinatario consegna il messaggio al destinatario (4a). A questo punto il messaggio è disponibile nella casella del destinatario. (5) Ogni messaggio viene catalogato con codice identificativo conservato per legge per 30 mesi. Il contenuto può essere salvato inoltre nell’archivio di sicurezza (fino a raggiungimento limite spazio di 1 GB).

Come vengono gestiti i messaggi da email ordinarie a posta certificata?

Messaggi PEC normali

I messaggi di posta certificata che non vengono riconosciuti come tali dal provider del destinatario (punto di ricezione) vengono trattati come messaggi di posta non certificata. Quando il messaggio non certificato perviene ad un provider di posta certificata (1) il punto di ricezione non riconosce le caratteristiche del messaggio di posta certificata e quindi crea un messaggio di anomalia (2), firmato digitalmente, a cui allega il messaggio ricevuto. Il messaggio di anomalia viene inoltrato al punto di consegna (se diverso dal punto di ricezione). Il messaggio di anomalia, a cui è allegato il messaggio ricevuto, viene depositato nella casella del destinatario, (3) che può visualizzare il messaggio di anomalia contenente il messaggio originale. (4)

Come vengono gestiti i messaggi da posta certificata a email ordinarie?

Messaggi PEC

Il messaggio raggiunge il provider (1) che invia al mittente una ricevuta di accettazione (2), firmata digitalmente, in cui indica quali sono i destinatari che appartengono alla posta certificata e quali sono quelli esterni; per questi ultimi la trasmissione non viene considerata di posta certificata. La ricevuta contiene la data e l’ora di elaborazione (data e ora di invio). Non vengono accettati messaggi con destinatari in BCC (copia nascosta). Il provider del mittente crea un messaggio di trasporto a cui viene allegato il messaggio originale (3); il messaggio di trasporto contiene alcune informazioni sulla trasmissione, tra cui la data e l’ora di invio. Il messaggio di trasporto viene firmato dal provider mittente e spedito al destinatario. Il messaggio viene recapitato senza ulteriori controlli non essendoci provider certificato in ricezione, non verrà quindi inviata la ricevuta di consegna. Il destinatario accede alla propria casella di posta e legge il messaggio, costituito da messaggio di trasposto con allegato il messaggio originale.

Il blog dei sistemisti italiani