Problem vid crossforest migration
Kör get-mailbox <mailbox> | select exchangeguid i sourceforest.
Kopiera värdet för Exchangeguid till target med:
Get-MailUser jorbus | Set-MailUser -ExchangeGuid <Exchangeguid>
Kör get-mailbox <mailbox> | select exchangeguid i sourceforest.
Kopiera värdet för Exchangeguid till target med:
Get-MailUser jorbus | Set-MailUser -ExchangeGuid <Exchangeguid>
get-receiveconnector -server $env:COMPUTERNAME | where {$_.TlsCertificatename -ne $null} | select Name,TLS*
Lista alla certifikat
Get-ExchangeCertificate | ft Thumbprint,Services,Subject,Notafter -AutoSize
Byta cert på connector
$tlscert = Get-ExchangeCertificate -Thumbprint <Thumbprint> $tlscertname = "<I>$($TLSCert.Issuer)<S>$($TLSCert.Subject)" get-receiveconnector -server $env:COMPUTERNAME | where {$_.TlsCertificatename -ne $null} | Set-ReceiveConnector -TlsCertificateName $TLSCertName
Aktivera cert för tjänster
Enable-ExchangeCertificate -Thumbprint <Thumbprint> -Services IIS,SMTP
Manuell Sync
Start-ADSyncSyncCycle -PolicyType Delta (vanlig)
Start-ADSyncSyncCycle -PolicyType Initial (full)
Kontrollera Sync
Get-ADSyncScheduler
Inaktivera och aktivera Sync
Set-ADSyncScheduler -SyncCycleEnabled $False (inaktivera)
Set-ADSyncScheduler -SyncCycleEnabled $True (aktivera)
Filtrering
Skript för att söka upp användare i ett OU och mailenabla dess med upn som extern emailaddress.
get-user -organizationalunit domain.com/OU1/utb/users/metausers -resultsize unlimited | foreach {Enable-MailUser $_.samaccountname -ExternalEmailAddress $_.userprincipalname}
Script för att söka upp användare i ett OU och sätta deras samaccountname som upn.
Get-ADUser -Filter * -SearchBase "ou=MetaUsers,ou=Users,ou=ou2,ou=ou1,dc=domain,dc=com" -Properties SamaccountName | foreach {set-ADUser $_.samaccountname -Userprincipalname ($_.samaccountname+"@domain.com")}
set-msoluser -userprincipalname dirsync@contoso.com -passwordnewerexpires $true
Vid installation av dirsync så får man felmeddelandet:
Error
The minimum version of Windows Powershell Required is 2.0
Lösning: Ändra till English (United States) i regionala inställningar. Logga ut och in igen.
Detta beror på hur / hanteras.
get-msoluser -all | where-object {$_.LastDirSyncTime -eq $null} |select-object UserprincipalName, DisplayName | export-csv -encoding utf8 C:\Temp\not_synced_users.csv
För att kunna ta bort en domän från Office 365 så får den inte användas i användarnamn eller e-postadresser. För att hitta dom användare som använder domänen kan man köra:
Get-MsolUser -DomainName fqdn
Detta listar dom användare som använder domänen. Dom användare som har domänen som upnsuffix i sitt inloggningsnamn byter man med:
Set-MsolUserPrincipalName -UserPrincipalName old.upn -NewUserPrincipalName new.upn
Om det är många så får man köra ett script.
För att få en lista på object som använder domänen så kan man skriva:
get-recipient | where {$_.EmailAddresses -match “contoso.com”} | fl Name, RecipientType, EmailAddresses
I listan som skapas ovan är det object av typerna UserMailbox, MailUniversalDistributionGroup, MailUniversalSecurityGroup och DynamicDistributionGroup som är intressanta.
För att hitta dom användare som har domänen i sina proxyadresser skriver man:
get-mailbox -resultsize unlimited| where {$_.EmailAddresses -match “contoso.com”} | fl Name, RecipientType, EmailAddresses
Vill man ta reda på hur många det är så kan man skriva:
(get-mailbox -resultsize unlimited| where {$_.EmailAddresses -match “utb.lessebo.se”}).count
Om det är användare som är syncade med lokalt AD så måste man göra ändringen i det lokala AD:et. Nedanstående script kan användas för detta:
$Mailboxes = get-mailuser -resultsize unlimited | where {$.EmailAddresses -match “contoso.com”}
$Mailboxes | foreach{
for ($i=0;$i -lt $.EmailAddresses.Count; $i++)
{
$address = $.EmailAddresses[$i]
if ($address.IsPrimaryAddress -eq $false -and $address.SmtpAddress -like “*contoso.com” )
{
Write-host($address.AddressString.ToString() | out-file c:\temp\addressesRemovedO365.txt -append )
$.EmailAddresses.RemoveAt($i)
}
}
Set-Mailbox -Identity $.Identity -EmailAddresses $.EmailAddresses
}
Om det är icke syncade användare så kan nedanstående script användas:
param ([string] $CSVPath)
$CSVUsers = (Import-csv -delimiter “;” $CSVPath)
ForEach ( $CSVUser in $CSVUsers )
{set-mailbox $($CSVUser.UserPrincipalName) -EmailAddresses @{Remove=”$($CSVUser.proxyaddress)”}}
Scriptet använder en csv fil som innehåller 2 kolumner en med UserPrincipalName och en med proxyaddress. Proxyaddress är den adress som du vill ta bort.
Samma förfarande kan användas på grupperna.
Domänen tar man sedan bort med Remove-MsolDomain -DomainName fqdn