martedì 15 marzo 2022

windows server: problemi impostazione linguistiche - impossibile aggiungere icone al desktop

Quando si accede con l'amministratore di dominio ad un server 2016/2019 (od anche una macchina Windows 10, in alcuni casi), tentando di modificare le impostazioni linguistiche puo verificarsi il seguente errore:

SystemSettingsAdminFlows.exe error

ho notato che si risolve anche l'errore che si verifica quando si tenta di abilitare le icone mycomputer/recycle bin ecc. ecc. sul desktop.

Aprire da prompt dei comandi:

secpol.msc

cercare la seguente voce ed abilitarla (enable)

user account control: admin approval mode for the built in administrator account

 nel seguente percorso:

Security settings - Local policies - Security options

REFERENCE

https://martinsblog.dk/windows-server-2016-systemsettingsadminflows-exe-error/

mercoledì 9 marzo 2022

Switch HP - Pulizia cache arp

Di solito, se scrivo le cose mi rimangono impresse :)


Pulizia della cache ARP su switch HP

clear mac-address port all

Si pouo pulire in base alla porta o in base alla VLAN. port all, pulisce ogni cosa.

Verifica della cache:
show mac-address

sabato 29 gennaio 2022

Office ADMX template

 Office template

Stavo installando i template aggiornati di Office, quando mi sono trovato a dover scegliere la versione 32 o 64 bit. Giusto per la cronaca: sono identiche a livello di admx. La prima va scaricata su sistemi a 32 bir e la seconda su sistemi x64. Poi, magari, ricordatevi di usare il central store (\\domain.local\sysvol\domain.local\Policies\PolicyDefinitions)

lunedì 24 gennaio 2022

Note sulla conversione di cassette postali utente in shared, in ambiente ibrido Microsoft 365.

 Note sulla conversione di cassette postali utente in shared, in ambiente ibrido Microsoft 365.


Mi e' capitato di dover convertire una casella di posta utente in una casella condivisa, in un ambiente ibrido di Microsoft 365.

La casella era gia su Microsoft 365.

Ho letto di vari suggerimenti, tra cui quello di riportarla on-prem, trasformarla in condivisa e riportarla online.


Io personalmente ho seguito una strada diversa, facendo riferimento al link sotto.


La prima cosa che ho notato e' che, solo per gli utenti sincronizzati con AD, devo entrare direttamente nell'interfaccia di amministrazione di 

Exchange online per poter convertire la casella.

Dopodiche ho seguito le istruzioni:


siccome la casella era gia su 365, dalla prospettiva dell'exchange on-prem, stiamo parlando di una cassetta remota.

A questo punto, dalla powershell di exchange on-prem eseguo il seguente comando:


Get-RemoteMailbox

per verificare se tra le caselle remote appare quella da convertire


Dopodiche eseguo il seguente comando

Set-RemoteMailbox "Giacomo Puccini" -Type Shared


Se tutto e' andato bene, dalla GUI on prem devo vedere la casella apparire tra le condivise.

Potrebbe essere necessario aspettare un attimo, prima che l'operazione diventi effettiva.


A questo punto mi sarei immaginato il miracolo e che dopo un po la  casella online si trasformasse in shared.

Purtroppo nessun miracolo, e cosi ho deciso di interventire manualmente:


Interfaccia di amministrazione di Microsoft 365-Exchange online, ricerca della mailbox, che on prem risulta shared, ma che online risulta ancora regular (utente),


converti in shared andando in https://admin.exchange.microsoft.com/#/mailboxes (selezionare utente e premere sul link)


Ho aspettato un po per dare il tempo ad exchange di fare i suoi ragionamenti e quindi sono tornato on prem.


Di solito l'utente delle caselle condivise risulta disattivo in AD.

Nel mio caso non e' successo neppure questo.

Ho disattivato l'utente a mano e verificato che tutto funzionasse.


A questo punto posso rimuovere la licenza di 365 dall'utente xche le caselle shared non necessitano di licenza.


OPINIONI

Penso che non dovrebbe funzionare cosi la conversione. In parte potrebbe dipendere dal fatto che la versione di AD che stiamo usando non ha il write-back.

Ma la conversione in shared on prem, non ha comunque fatto nulla. 

Forse non ho aspettato abbastanza... 


Insomma questi sono solo appunti di come ho svolto questa attivita, probabilmente in modo sbagliato :)


REFERENCE

https://www.alitajran.com/convert-user-mailbox-to-shared-mailbox-exchange-hybrid/


domenica 23 gennaio 2022

Powershell - colori console

Powershell - Colori console

Quesli sono i colori disponibili per l'output a video in powershell?

Ecco la lista ed il comando per verficare

PS C:\Script\AD\Set Primary Proxy Address> [Enum]::GetValues([System.ConsoleColor])

Black

DarkBlue

DarkGreen

DarkCyan

DarkRed

DarkMagenta

DarkYellow

Gray

DarkGray

Blue

Green

Cyan

Red

Magenta

Yellow

White


ES:

write-host $a -ForegroundColor Black scrivera in nero e

write-host $a -ForegroundColor Magenta scrivera in magenta

p.s. usdando write-host -nonewline si impedisce all'output a video di andare a capo e quindi e' possibile avere sulla stessa linea piu colori.


 


mercoledì 5 gennaio 2022

Exchange 2016-2019 - code bloccate - Buon 2022 Exchange

 Exchange 2016-2019 - Baco anno nuovo 2022


Il nostro exchange ci ha regalato un baco per il nuovo anno 2022.

Se nel registro degli eventi appare uqesto errore:


Errore rilevato FIPFS - 5300


Impossibile eseguire la scansione dei messaggi per cui questi rimangono in coda.

Eseguire lo script nella cartella x sbloccare


Vuol dire che ne siete affetti.


Il motore di scansione non riesce a processare i messaggi in coda e quindi non li spedisce.

In breve occorre aggiornare il motore di scansione per sistemare.

In fondo trovate i link a cui fare riferimento.


Dopo che ha terminato attendere che venga aggiornato l'engine di scansione 

Add-PSSnapin Microsoft.Forefront.Filtering.Management.Powershell

Get-EngineUpdateInformation


I messaggi dovrebbero ripartire dopo che l'aggiornamento si e' concluso.


Potrebbe essere necessario riavviare i servizi di exchange od il server stesso (anche se lo fa gia lo script)


In presenza di errori e' possibile forzare l'aggiornamento del motore di scansione

Andare nella cartella degli script di Exchange:

E:\Microsoft\Exchange Server\V15\Scripts ed eseguire il seguente comando:

.\Update-MalwareFilteringServer.ps1 MAILBOX01.domain.local


L'aggiornamento e' molto lungo e potrebbe richiedere fino a quasi un'ora. Dipende anche dalla velocita della linea internet.


Dopo che l'aggiornamento e' completo si puo provare a rispedire i messaggi in coda:

Retry-Queue –Server "MAILBOX01" -Filter {Status -eq "Retry"} -Resubmit $True


Se ancora i messaggi non dovessero andare l'errore potrebbe essere legato ai troppi tentativi gia effettuati.

Per averne la certezza occorre verificare i log. Potrebbe essere necessario abilitarli:


Verifica dello stato attuale di logging (nel mio caso NONE)

Get-TransportService MAILBOX01 |fl *level*

Get-FrontEndTransportService MAILBOX01 |fl *level*


MODIFICA LIVELLO DI LOGGING

Set-TransportService MAILBOX01 -IntraOrgConnectorProtocolLoggingLevel Verbose

Set-FrontEndTransportService MAILBOX01 -IntraOrgConnectorProtocolLoggingLevel Verbose


Riforzare la spedizone dei messaggi in coda ed analizzare i log


Nel mio caso ho fatto in questo modo: ho disattivato il malware agent ed il transport agent rule agent, 

riavviato il servizio di trasporto e riforzato l'invio.

Quindi ho riattivato i 2 agenti disabilitati, riavviato il servizio di trasporto e rieseguito un riavvio del servizio.

La coda in questo modo e' stata smaltita ed i messaggi nuovi sono partiti regolarmente.


Verifica della situazione

Get-TransportAgent


Disattivazione agenti transport rule e malware agent

Disable-TransportAgent "Transport rule agent"

Disable-TransportAgent "Malware Agent"

Restart-Service MSExchangeTransport


Processare la coda in modo forzato

Retry-Queue –Server "MAILBOX01" -Filter {Status -eq "Retry"} -Resubmit $True


Verifica delle code

Get-queue


Al termine dello smaltimento della coda, riavviare gli agenti disattivati.


Attivazione agenti transport rule e malware agent

Enable-TransportAgent "Transport rule agent"

Enable-TransportAgent "Malware Agent"

Restart-Service MSExchangeTransport


Verifica finale della situazione

Get-TransportAgent


Adesso occorre verificare regolarmente le code nel corso delle prox ore/gg.

Get-queue


REFERENCE

https://techcommunity.microsoft.com/t5/exchange-team-blog/email-stuck-in-exchange-on-premises-transport-queues/ba-p/3049447

https://docs.microsoft.com/en-us/exchange/troubleshoot/setup/manually-update-scan-engines

https://docs.microsoft.com/it-it/exchange/mail-flow/transport-agents/manage-transport-agents?view=exchserver-2019

https://techgenix.com/resubmitmessagesinqueues/

https://docs.microsoft.com/en-us/exchange/mail-flow/connectors/configure-protocol-logging?view=exchserver-2019#use-the-exchange-management-shell-to-enable-or-disable-protocol-logging-on-the-intra-organization-send-connector

https://www.alitajran.com/exchange-mail-flow-breaks/

https://docs.microsoft.com/it-it/exchange/mail-flow/queues/queue-procedures?view=exchserver-2019




APPENDICE

Prova a rispedire tutti i messaggi nella coda 3

Retry-Queue "MAILBOX01\3" -Resubmit $True


Prova a rispedire tutti i messaggi di tutte le code

Retry-Queue –Server “MAILBOX01” -Filter {Status -eq "Retry"} -Resubmit $True



Cancellare tuttu i messaggi dalla coda (senza mandare NDR di notifica

Get-Message -Queue "MAILBOX01\3" | Remove-Message -WithNDR $false -Confirm:$false


Cancellare un messaggio specifico

Get-ExchangeServer |

    ?{$_.IsHubTransportServer -eq $true} |

    Get-Queue |

    get-message |

    ? {$_.sender -eq 'Vinc@somedomain.uhoh'} |

    Remove-Message -withNDR $false



giovedì 25 novembre 2021

Report password utenti AD

 Una delle cose a cui spesso e' necessario mettere mano con AD e' il discorso delle password.

Molto spesso sono impostate per non scadere mai, o potrebbe essere necessario farle scadere.

Il primo passo per prendere delle decisioni in merito e' un report sulle password. Io ho usato questi 2  script:

ES1:

Tutti gli utenti di AD

Get-ADUser -filter {Enabled -eq $True} –Properties DisplayName,msDS-UserPasswordExpiryTimeComputed,BadLogonCount,LastBadPasswordAttempt,LastLogonDate,PasswordExpired,PasswordLastSet,PasswordNeverExpires | Select-Object -Property "Displayname",DistinguishedName,@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}},BadLogonCount,LastBadPasswordAttempt,LastLogonDate,PasswordExpired,PasswordLastSet,PasswordNeverExpires | export-csv C:\Script\AD\ReportUserPassword\PwdUsersAll.csv

ES2:

Solo con password che non scadono

Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} –Properties DisplayName,msDS-UserPasswordExpiryTimeComputed,BadLogonCount,LastBadPasswordAttempt,LastLogonDate,PasswordExpired,PasswordLastSet,PasswordNeverExpires | Select-Object -Property "Displayname",DistinguishedName,@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}},BadLogonCount,LastBadPasswordAttempt,LastLogonDate,PasswordExpired,PasswordLastSet,PasswordNeverExpires | export-csv C:\Script\AD\ReportUserPassword\PwdUsersNEFalse.csv

A questo punto avete qualche informazione in piu per fare un'analisi e prendere delle decisioni.

Ricordate che obbligare gli utenti a cambiare password rappresenta potenzialmente del lavoro in piu, ma e' uno dei passaggi necessari per migliorare la sicurezza.

E possibile verificare la scadenza della password di un singolo utente di dominio in modo molto piu semplice:

net user c.ogura /domain

Vengono restituiti molti dati utili, anche sulle password 

Sulle impostazioni delle password e' importante impostare una scadenza (90/180 gg.), possibilmente dei criteri di complessiva, ed almeno una lunghezza minima, e magari un minimo di password ricordate in modo che non vengano usate a rotazione sempre le stesse. E' anche molto importante impostare un lockout automatico degli account. Questo non ci espone ad attacchi brute force. In pratica e' consigliabile bloccare un account per un periodo di tempo, anche breve, se un utente sbaglia la password per un certo numero di volte. 

In active directory le impostazioni per le password sono definite nella default domain policy, nel seguente percorso:

Computer configuration/Policies/Windows settings/Security settings/Account policies

Password policies

Account lockout policies 

Sarebbe inoltre molto utile monitorare l'event viewer per tentativi di accesso falliti ripetuti all'indirizzo di un utente. (ES: event viewer/security log/4625). Provate a controllare questo evento su un server RDP pubblicato senza VPN :). 

REFERENCE

https://social.technet.microsoft.com/wiki/contents/articles/12037.active-directory-get-aduser-default-and-extended-properties.aspx

https://www.pcwdld.com/password-expiration-date-ad-user#wbounce-modal

https://www.alitajran.com/create-active-directory-users-from-csv-with-powershell/

giovedì 18 novembre 2021

NETLOGON e SYSVOL mancanti su un controller di dominio

Ciao,

potrebbe capitare che le cartelle netlogon e syscol risultino mancanti su un domain controller.

La prima cosa da fare e' verificare che l'ora sia corretta e provare a riavviare il servizio netlogon (accesso di rete).

Aspettate quaalche minuto per vedere se la situazione ritorna normale.

Se questa cosa accade subito dopo aver promosso un DC, fermatevi: probabilmente c'e' un problema sui DC pre-esistenti.

Demotate il domain controller appena fatto ed effettuate qualche test preliminare con dcdiag e repadmin.

Quando siete sicuri che tutto funziona come deve, ricreaate il nuovo domain controller.


Se aancora esiste qualche problema, oppure il problemaa si e' creato successsivamente, assicuratevi sempre con dcdiag e repadmin che tutto funzioni correttamente.


Potete forzare la creazione della condivisione andando in regedit:


Browse to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters

Set SysVolReady from 0 to 1

Close Regedit


Riavviate il servizio Netlogon, oppure aspettate qualche minuto.


Adesso la SYSVOL dovrebbe riapparire.

Se mancasse ancora la NETLOGON, occorre creaarla a mano, anndando nel seguente path:

C:\Windows\SYSVOL\domain\ e creaare una caartella chiamata scripts.


Riavviate il servizio Netlogon, oppure aspettate qualche minuto.


A questo punto occorre speraare che si sincronizzi il tutto.


A questo punto per sistemare occorre ragionare se stiamo usando FRS domini piu' vecchi) o DFSR per replicare


Ci sono utility e tool che possono aiutare come FRSDiag, e AD replication status tool



DFRS - Verifica delllo stato di replica (DFRS)

For /f %i IN ('dsquery server -o rdn') do @echo %i && @wmic /node:"%i" /namespace:\\root\microsoftdfs path dfsrreplicatedfolderinfo WHERE replicatedfoldername='SYSVOL share' get replicationgroupname,replicatedfoldername,state


The states should translate as below


0 = Uninitialized

1 = Initialized

2 = Initial Sync

3 = Auto Recovery

4 = Normal

5 = In Error


Nel mio caso (NTFRS) ha risolto ripristinare il funzionamento dal DC di origine (non da quello nuovo che ho appena creato).

Sono andato nel vecchio DC e aperto il regedit:


HKLM\System\CurrentControlSet\Services\NtFrs\Parameters

ho creato il DWORD "Enable Journal Wrap Automatic Restore" e l'ho impostato a 1.

Ho riavviato il servizio di replica file (net stop ntfrs && net start ntfrs)

Le share SYSVOL e NETLOGON spariranno. 

Ho aspettato con impazienza l'evento 13516.

Dopo questo evento ho impostato il DWORD "Enable Journal Wrap Automatic Restore" a 0.

Ho riavviato il servizio di replica file (net stop ntfrs && net start ntfrs)


Per verificare che tutto abbia funzionato a dovere le share, che nel frattempo erano sparite, dopo l'evento 13516 devono riapparire.


=========================================================================REFERENCE

https://noelpulis.com/fix-missing-sysvol-and-netlogon-after-domain-controller-promotion/

https://www.microsoft.com/en-us/download/details.aspx?id=8613

https://www.microsoft.com/en-us/download/details.aspx?id=30005

https://docs.microsoft.com/it-it/troubleshoot/windows-server/identity/get-use-active-directory-replication-status-tool

https://docs.microsoft.com/en-us/troubleshoot/windows-server/networking/use-burflags-to-reinitialize-frs


Rimozione forzata di un domain controller

Puo succedere che DCpromo, per rimuovere un domain controller fallisca, soprattutto nel caso in cui lo si voglia rimuovere per problemi di replica.

In questo caso occorre procedere con un DCPROMO /forceremoval, che pero lasciera AD "sporca".

Infatti dopo aver fatto questa operazione sara' necessario pulire i metadati e d il DNS.

Supponiamo che il nostro dominio casa.local abbia 3 DC, DC1, DC2 e DC3 e che il nostro obiettivo sia rimuovere DC3.


Collegarsi a DC3 ed eseguire da cmd (come admin): dcpromo /forceremoval (bisognera impostare una nuova pwd e fare un riavvio)


Questo dovrebbe permetterci di riuscire a completare il demotion.


A questo punto dobbiamo usare ntdsutil per pulire i metadati:


Collegarsi a DC1 o DC2 ed eseguire da cmd (come admin) ntdsutil.exe


All'interno di ntdsutil dovremo collegarci ad un dc e successivamente definire un operation target.

Siccome il DC3 non e' stato rimosso correttamente, sara ancora visibile tra i DC disponibili.

Per effettuare lì'operazione possiamo collegarci a DC1 (o DC2) ed impostare DC3 (ovvero il DC da rimuovere) come operation target.



Al primo prompt di NTDSUTIL.exe digitare:

ntdsutil:

Comando: metadata cleanup e premere invio 

Comando: connections e premere invio 

Comando: connect to server DC1

Comando: q (quit, per tornare al menu precedente)

Comando: select operation target e premere invio 

Comando: list domains e premere invio (verrano mostrati i domini presenti in ordine numeri partendo da 0)

Comando: Select domain 0 (supponendo che il dominio dove era ppresente il DC fosse lo 0)

Comando: List sites

Comando: Select site 0

Comando: List servers in site


La risposta a questo comando sara' la lista dei DC presenti compreso quello rimosso forzatamente. ES:

0-CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=dorg,DC=net

1-CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=dorg,DC=net

2-CN=DC3,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=dorg,DC=net

DC3 (che corrisponde al 2 nella nostra lista)


Comando: Select server 2

Comando: remove selected server


Siamo riusciti a togliere DC3 


A questo punto occorre pulire il DNS. Togliere i riferimenti al server demotato dal tab name servers dei domini, e da tutti i record.



REFERENCE:

https://www.manageengine.com/products/active-directory-audit/kb/how-to/how-to-remove-a-domain-controller-that-no-longer-exists.html


NTDSUtil - transfer fsmo roles

Come trasferire i ruoli usando NTDSUtil


Aprire ntdsutil, 

Type ntdsutil and press Enter.

Type roles and press Enter.

Type connections and press Enter.

Type connect to server DC01 and press Enter, where DC01 is the server computer name that will transfer the FSMO roles to.

Type quit and press Enter.

Next, we will transfer FSMO roles one by one with the corresponding command, as the case may be. After each Enter appears a confirmation window. Just click Yes to continue.

For Schema Master, type transfer schema master and press Enter.

For RID Master, type transfer rid master and press Enter.

For Domain Naming Master, type transfer naming master and press Enter.

For PDC Emulator, type transfer pdc and press Enter.

For Infrastructure Master, type transfer infrastructure master and press Enter.


REFERENCE

https://www.dtonias.com/transfer-fsmo-roles-domain-controller/



Errore accesso Microsoft 365 - 80090034

Durante l'accesso con l'account di Microsoft 365 mi sono trovato di fronte a questo errore, che mi ha davvero spiazzato.

Your computer trusted platform module has failed. If this error persist contaact your administrator

Error code 80090034

Server message: encryption failed

"

La situazione era questa.

un laptop in dominio, fuori sede, non collegaao alla VPN.

Microsoft 365 hybrid, collegato al dominio AD.

Il problema di attivazione non si manifestava con utenti locali, ma solo con quelli di dominio.

La soluzione, nel mio caso con era collegata al TPM, ed era abbastanza banale. E' stato sufficiente collegarsi alla vpn prima di fare l'accesso, in modo da mettere il portatile in comunicazione con il DC.

In alternativa attivare il 365 qquando di e' in rete.

Dopodiche' ha funzionato tutto perfettamente.

giovedì 28 ottobre 2021

Mozilla Firefox - SEC_ERROR_PKCS11_GENERAL_ERROR

 Mozilla Firefox


Durante l'accesso con Firefox ad una pagina autenticata tramite token (pin+certificato), ricevo il seguente errore

SEC_ERROR_PKCS11_GENERAL_ERROR


Nel mio caso sono rtiuscito a risolvere nel seguente modo:


aprire about:config

modificare il valore di security.osclientcerts.autoload in 0, false (dovrebbe essere impostato su True)


REFERENCE

https://github.com/orange-cloudfoundry/paas-templates/issues/891


giovedì 7 ottobre 2021

Microsoft 365 - dimensioni mailbox

 Ciao,

in miocrosoft 365 le dimensioni delle mailbox vanno in base al tipo di licenza, ma ad ogni modo variano da 50 a 100 GB. Può capitare di notare, nelle proprietà della mailbox, una dimensione molto piu piccola. Nel mio caso, Exchange ibrido e mailbox spostate da Exchange on prem ad Exchange on line, le mailbox hanno mantenuto i limiti impostati all'origine.

Per cui in Exchange online possiamo modificare i limiti delle mailbox,poiche le dimensioni della mailbox dipendono dalla nostra licenza (rimanendo nelle situazioni piu comuni).

Il comando per modifcare questi limiti:

Collegarsi a Microsoft 365 in powershell:

da fare solo la prima volta

Set-ExecutionPolicy -ExecutionPolicy unrestricted

Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force

Install-Module -Name ExchangeOnlineManagement


Da fare ogni volta

Import-Module ExchangeOnlineManagement

Connect-ExchangeOnline -UserPrincipalName postmaster@dominio.onmicrosoft.com 

Cambiare le dimensioni:

Set-Mailbox pippo@dominio.it -ProhibitSendQuota 6GB -ProhibitSendReceiveQuota 8GB -IssueWarningQuota 5GB