venerdì 21 febbraio 2020

Verifica versione Exchange

Quando e' necessario verificare la versione precisa di Exchange (soprattutto 2010) la console grafica non e' molto utile. E molto veloce farlo a linea di comando:

Da linea di comando:
GCM exsetup |%{$_.Fileversioninfo}
Get-ExchangeServer | Format-Table Name, *Version* -autosize

Da interfaccia grafica e' possibile andare negli aggiornamenti e trovare le ultime CU/RU installate

martedì 18 febbraio 2020

Trovare serial number

Spesso mi capita di dover trovare i seriali dei prodotti installati per via di qualche reinstallazione.
Regolarmente mi dimentico i nomi dei software ed altri tips
Ecco alcune note di promemoria:

Linea di comando
"wmic bios get serialnumber"
Tip: You can use the command "wmic csproduct get name" to retrieve the local computer model.

VBSCRIPT
On Error Resume Next
Dim strComputer
strComputer = InputBox("Enter the name of the computer:")
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colSMBIOS = objWMIService.ExecQuery ("Select * from Win32_SystemEnclosure")
For Each objSMBIOS in colSMBIOS
MsgBox strComputer & ": " & objSMBIOS.SerialNumber
Next

OFFICE
https://account.microsoft.com/services/
Accedere con i dasti del proprio account

Usare altri software
NIRSOFT key viewer
MAGIC JELLY keyfinder

REFERENCE
https://support.microsoft.com/en-us/help/558124
https://www.nirsoft.net/utils/product_cd_key_viewer.html
http://www.magicaljellybean.com/keyfinder/

lunedì 3 febbraio 2020

Assegnare permessi SendAs a tutti i membri di una distribution list

Mi trovo nella situazione di dover assegnare i permessi di send as a tutti i membri di una distribution list. Fare questa operazione per ciascuna lista potrebbe diventare un lavoro abbastanza lungo.
Tramite script la soluzione, invece, e' piuttosto veloce.
Copiare il testo sotto ed incollarlo in un file con estensione .ps1.

Per assegnare a tutti i membri di una distrubion List i permessi di sendas
$DLs = Get-DistributionGroup
ForEach ($DL in $DLs){
$DLMs = Get-DistributionGroupMember -identity $DL.name
ForEach ($DLM in $DLMs){
Add-RecipientPermission -Identity $DL.name -AccessRights SendAs -Trustee $DLM.name -confirm:$false
}
}

sabato 1 febbraio 2020

Office 365 Mailbox quota

Quote Mailbox Office 365

Potrebbe essere una buona idea impostare una quota nelle mailbox, prima che un utente con 100 GB di messaggi nella inbox, si lamenti della lentezza di outlook e della posta su 365.

C'e' un articolo di Microsoft sull'argomento, molto ben fatto. Io ho fatto lo sforzo di trascrizione.

Set-Mailbox < UserID > -ProhibitSendQuota < Value > -ProhibitSendReceiveQuota < Value > -IssueWarningQuota <Value>

<User ID> = l'UPN, l'indirizzo di posta elettronica o il GUID dell'utente della casetta postale
<Value> = un numero in megabyte (MB), kilobyte (KB) o gigabyte (GB)

ES:
Set-Mailbox camillo@benso.com -ProhibitSendQuota 19GB -ProhibitSendReceiveQuota 20GB -IssueWarningQuota 18GB

Verificare le impostazioni
Get-Mailbox < User ID > | Select *quota

Configurare i limiti delle dimensioni della cassetta postale per più utenti
Get-Mailbox | Set-Mailbox -ProhibitSendQuota < Value > -ProhibitSendReceiveQuota < Value > -IssueWarningQuota < Value >

Get-Mailbox | Set-Mailbox -ProhibitSendQuota 4GB -ProhibitSendReceiveQuota 5GB -IssueWarningQuota 3,5GB

È possibile applicare ulteriori filtri al Get-Mailbox cmdlet o il Get-User cmdlet per controllare gli utenti per i quali è stata apportata la modifica. Di seguito viene riportato un esempio in cui tre cmdlet vengono utilizzati per filtrare il comando sul reparto Vendite di un'organizzazione:

Get-User | where {$_.Department -eq "Sales"} | Get-Mailbox | Set-Mailbox -ProhibitSendQuota < Value > -ProhibitSendReceiveQuota < Value > -IssueWarningQuota < Value >

REFERENCE
https://support.microsoft.com/it-it/help/2490230/how-to-set-exchange-online-mailbox-sizes-and-limits-in-the-office-365

mercoledì 29 gennaio 2020

Esportazione elenco indirizzi Exchange

Esportazione di tutti gli indirizzi di posta di Exchange, alias compresi.
Durante una migrazione di Exchange puo essere utile sapere tutti gli indirizzi di posta utilizzati, eventuali alias compresi.

Get-Recipient -resultsize unlimited | Select DisplayName, RecipientType, EmailAddresses
MAILBOX ONLY
Get-Mailbox | Select UserPrincipalName,EmailAddresses

A questo punto potrebbe essere utile esportarli in un file CSV.

Get-Recipient -resultsize unlimited | Select DisplayName, RecipientType, EmailAddresses | Export-Csv C:\Temp\Addresses.csv

Quando visualizzo il file, nel campo email address, anziche gli indirizzi trovo il seguente valore:

”Microsoft.Exchange.Data.ProxyAddressCollection”

Tutte le righe erano esportate correttamente tranne quella degli indirizzi di posta. A video, invece, nessun problema.

Il motivo per cui accade questo e' perche il campo email address e' un valore multiplo.
Per risolvere e' necessario ricorrere ad un piccolo trucchetto. Al posto di emailadresses usare:
@{Name='EmailAddresses'; Expression={$_.EmailAddresses -join ","}}

Get-Recipient -resultsize unlimited | Select DisplayName, RecipientType, @{Name='EmailAddresses'; Expression={$_.EmailAddresses -join ","}} | Export-Csv C:\Temp\Addresses.csv

MAILBOX ONLY
Get-Mailbox | Select UserPrincipalName, @{Name='EmailAddresses'; Expression={$_.EmailAddresses -join ","}} | Export-Csv C:\Temp\Addresses.csv

La differenza tra get-recipient include tutti gli indirizzi (mailbox, dl ecc. ecc.)
p.s. non sono certo se include anche i pf mail enabled, ma dovrebbe. Non ho avuto modo di provare

REFERENCE
https://jaapwesselius.com/2014/12/11/export-email-addresses-in-exchange-2013/
eightwone.com

martedì 28 gennaio 2020

Importare moduli Exchange in powershell

Importare i moduli di Exchange in powershell:

Prima di usare la powershell con Exchange occorre:

installare gli Exchange Management Tools
Importare il modulo di Exchange nella sessione powershell.

Ciascuna versione di Exchange ha un modo differente di iimportare il modulo nella sessione powershell:

Exchange 2007 Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin;
Exchange 2010 Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010;
Exchange 2013 Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn;
Exchange 2016 Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn;

venerdì 13 dicembre 2019

Stampanti - WSD to IP

Capita spesso che Windows10 colleghi automaticamente le stampanti che trova disponibili in rete e che supportano WSD.
Se osserviamo le proprietà della stampante, noteremo che la porta in utilizzo sara qualcosa di molto simile a questo:
WSD-434e4238-4433-5a53-354a-80c16e947c6d

Se fosse necessario risalire all'IP dalla porta WSD, si puo andare in questa chiave di registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\SWD\DAFWSDProvider
dalle proprieta della porta e' possibile risalire all'ip ed alla stampante ad esso associata.

REFERENCE
https://www.reddit.com/r/sysadmin/comments/47dhq9/how_to_find_ip_address_of_network_printer_showing/


lunedì 9 dicembre 2019

SQL Password

Come resettare la password SQL

Se si  dovesse smarrire la password dell'utente SA e questo dovesse essere l'unico account amministratore, sara' necessario provvedere a resettarla. Il modo che ho provato io e' il seguente:

aprire un prompt dei comandi come amministratore

net stop MSSQL$SISTEMI
net start MSSQL$SISTEMI -m"SQLCMD"

sqlcmd
da dentro alla console sqlcmd digitare:
CREATE LOGIN sa2 WITH PASSWORD=’Zanfretta777’
GO

SP_ADDSRVROLEMEMBER sa2,’SYSADMIN’
GO
EXIT

A questo punto abbiamo un nuovo utente amministratore che potra accedere alla console sql.
Accedere con la sql management console e resettare la password dell'utente sa.

venerdì 6 dicembre 2019

Office 365 - Hybrid migration - Outlook profiles

In una migrazione ibrida, dopo aver spostato le caselle, mi e' capitato su diversi client che non funzionasse l'aggiornamento automatico del profilo di Outlook. Dopo lo spostamento della mailbox da on prem in cloud, mi venivano continuamente richieste le credenziali.

Creando il profilo da zero, invece tutto prendeva a funzionare a dovere. Purtroppo la cosa non era "smooth" come si sarebbe piaciuto che fosse.

Il problema sembra essere legato alla modern authentication.

Dopo un po di ricerche ho trovato la soluzione, ovvero una chiave di registro:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Exchange]
"AlwaysUseMSOAuthForAutoDiscover"=dword:00000001

Ho aggiunto la chiave di registro al client, spostato la mailbox e riaperto outlook al termine dello spostamento. Tutto e' andato liscio. VITTORIA

Per completare l'opera, ho creato una GPO per distribuire la chiave ai client, ed in questo modo dovrei avere risolto. Lo sapro appena avro finito lo spostamento di tutte le mailbox. :)



Reference

https://support.microsoft.com/en-us/help/3126599/outlook-prompts-for-password-when-modern-authentication-is-enabled

https://support.microsoft.com/en-us/help/3073002/after-migration-to-office-365-outlook-doesn-t-connect-or-web-services

lunedì 2 dicembre 2019

GRUPPI OFFICE 365

Una delle peculiarità di Office 365 rispetto alle installazioni on-Prem sono i gruppi "Office 365".
Questi gruppi possono essere creati in varie maniere: tramite l'interfaccia del portale (portal.office.com/amministrazione/gruppi), tramite l'interfaccia di amministrazione di Teams, tramite l'interfaccia di amministrazione di Exchange.
I gruppi di Office365 racchiudono in se un insieme di funzioni e sono essenzialmente un mix tra le liste di distribuzione e le shared mailbox:
calendari condivisi: shared mailbox
inoltro messaggi a tutti gli appartenenti:lista di distribuzione
mailbox: tutti i messaggi spediti all'indirizzo del gruppo, oltre o a poter essere inoltrati ai membri sono conservati in una mailbox specifica del gruppo.
one drive condiviso/canale di teams: teams e condivisione files
All'interno di Outlook posso accedere ai calendari condivisi dei gruppi di Office 365, nel momento in cui ne viene rilevata l'appartenenza.

Il mio problema nasce in questa fase. Ho creato un gruppo Office365 ed outlook non me lo mostrava. Per questo motivo non potevo usare questo indirizzo di "reparto" per spedire e non potevo accedere ai calendari condivisi. C'era un problema!

Collegandomi in powershell ho rilevato questa situazione:


Per alcuni gruppi i parametri:
 - HiddenFromExchangeClientsEnabled
 - HiddenFromAddressListsEnabled

risultavano $true, anziché $false. Non e' un problema grave, basta solo modificare i due parametri ed impostarli a $false. La stranezza e' che il parametro "HiddenFromExchangeClientsEnabled" non e' modificabile. Siccome sto impostando tutto da zero, ed il fatto che il gruppo sia "HiddenFromExchangeClientsEnabled" sia true e non modificabile, non mi GARBA :).


SOLUZIONE
Ho creato i gruppi in due modi diversi:
tramite interfaccia di amministrazione Teams: in questo caso mi trovo i valori impostati a true. Cosi non va bene.
tramite interfaccia di amministrazione Office365: in questo caso trovo i valori impostati su false. Il gruppo appare inm outlook con relativi calendari condivisi ecc. ecc.





mercoledì 20 novembre 2019

SONICWALL SSLVPN

Potrebbe accadere che durante il collegamento con NetExtender, il client non riesca a risolvere i nomi host. Spesso la cosa e' spesso un problema. Nel mio caso dipendeva dalla configurazione SSL, dove avevo dimentica di inserire il nome del dominio AD.


Fatto quello ha ripreso a funzionare a dovere.

mercoledì 13 novembre 2019

Esecuzione batch schedulati

Un salto nel passato...
Ho dovuto schedulare un batch per un trasferimento FTP.
Il batch crea un file cmd.ftp, contenente i comandi ftp, e poi avvia
ftp.exe usando il file di comandi cmd.ftp.
Quando eseguo il file batch in modalita interattiva funziona tutto regolarmente.
Quando lo eseguo come operazione schedulata richiamando direttamente il batch non funziona.
Il batch si chiama TrasferimentoFTP.bat
Non viene creato il cmd.ftp.
Soluzione:
richiamare il batch tramite cmd.exe
c:\Windows\System32\cmd.exe /c C:\Sistemi\aep\expavvisi\TrasferimentoFTP.bat


================================================================================================================================
EXPORT.BAT
set datetime=%date:~6,4%%date:~3,2%%date:~0,2%%time:~0,2%%time:~3,2%%time:~6,2%
copy C:\temp\ExpAvvisi\Clienti.csv C:\temp\ExpAvvisi\Clienti_%datetime%.csv
c:\Windows\System32\cmd.exe /c C:\Sistemi\aep\expavvisi\TrasferimentoFTP.bat C:\sistemi\AeP\ExpAvvisi\Clienti_%datetime%.csv
================================================================================================================================



================================================================================================================================
TrasferimentoFTP.bat
ECHO OFF
REM cd C:\temp\ExpAvvisi
cd /d C:\temp\ExpAvvisi - l'opzione d imposta l'home drive per il batch
echo user userftp password > cmd.ftp
echo put  %1% >> cmd.ftp - esiste una parte di batch
echo quit >> cmd.ftp
cd %1%
echo --------------------------
echo Trasferimento FTP avviato
echo --------------------------
REM ftp -n -s:cmd.ftp ftp.papallo.org
echo ---------
echo F I N E
echo ---------
exit
================================================================================================================================

domenica 3 novembre 2019

Office 365 Hybrid - remote move

Solo alcuni dei problemi incontrati durante il remote move
 - abilitare le licenze sugli utenti prima di effettuare un remote move
 - verificare che non ci siano richieste di spostamento per le mailbox nell'exchange on premise

REFERENCE
https://support.microsoft.com/en-us/help/4502865/cannot-move-mailboxes-from-on-premises-to-exchange-online