Exchange 2010


Servicepack Version ermitteln


get-exchangeserver | fl | findstr ‘AdminDisplayVersion’

oder

Exchange Verwaltungskonsole / Serverkonfiguration / Server / Eigenschaften / Version / ...

Versionen:

Microsoft Exchange Server 2003             6.5.6944
Microsoft Exchange Server 2003 SP1         6.5.7226
Microsoft Exchange Server 2003 SP2         6.5.7638
Microsoft Exchange Server 2003 post-SP2    6.5.7653.33
Microsoft Exchange Server 2003 post-SP2    6.5.7654.4
Microsoft Exchange Server 2007             8.0.685.24 oder 8.0.685.25
Microsoft Exchange Server 2007 SP1         8.1.0240.006
Microsoft Exchange Server 2007 SP2         8.2.0176.002
Microsoft Exchange Server 2007 SP3         8.3.0083.006
Microsoft Exchange Server 2010             14.00.0639.021
Microsoft Exchange Server 2010 SP1         14.01.0218.015
Microsoft Exchange Server 2010 SP2         14.02 (Build 247.5)
Microsoft Exchange Server 2010 SP3         14.3 (Build 123.4)

Überwachen von hoher Verfügbarkeit und Ausfallsicherheit
Eine schnelle Übersicht über die Integrität und den Status der Postfachdatenbankkopien
Get-DatabaseAvailabilityGroup DAG01 | %{ $_.Servers | %{ Get-MailboxDatabaseCopyStatus -Server $_ } }
ContentIndexState Failed
Update-MailboxDatabaseCopy "DATENBANKNAME\SERVERNAME"
Replikation anhalten / fortsetzen:
Suspend-MailboxDatabaseCopy "DATENBANKNAME\SERVERNAME"
Resume-MailboxDatabaseCopy "DATENBANKNAME\SERVERNAME"
Falls Protokolldateien vorhanden sind:
Update-MailboxDatabaseCopy "DATENBANKNAME\SERVERNAME" -DeleteExistingFiles
Weitere Befehle

Get-MailboxDatabaseCopyStatus
Get-MailboxDatabase|Get-MailboxDatabaseCopyStatus
Test-ReplicationHealth
CollectReplicationMetrics.ps1 -DagName DAG1 -Duration "01:00:00" -Frequency "00:01:00" -ReportPath

CheckDatabaseRedundancy.ps1 -MonitoringContext -SleepDurationBetweenIterationsSecs:0 -TerminateAfterDurationSecs:1 -SuppressGreenEventForSecs:0 -ReportRedEventAfterDurationSecs:0 -ReportRedEventIntervalSecs:0 -ShowDetailedErrors



MailboxExportRequest / MailboxImportRequest

Requests löschen
Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest
Get-MailboxImportRequest -Status Completed | Remove-MailboxImportRequest
Postfach in PST exportieren / Gesamtes Postfach
New-MailboxExportRequest -Mailbox [SMTP Adresse]  -FilePath "\\exgmbx02\r$\PST\NAME.pst"
Postfach in PST exportieren / Nur Inbox (Posteingang)
New-MailboxExportRequest -Mailbox 
[SMTP Adresse] -IncludeFolders "#Inbox#" -FilePath "\\exgmbx02\r$\PST\NAME.pst"
PST in Postfach importieren / Gesamte PST
New-MailboxImportRequest -Mailbox 
[SMTP Adresse] -FilePath "\\exgmbx02\r$\PST\NAME.pst" -TargetRootFolder "NAME"
PST in Postfach importieren / Nur Inbox (Posteingang)
New-MailboxImportRequest -Mailbox 
[SMTP Adresse] -FilePath "\\exgmbx02\r$\PST\NAME.pst" -TargetRootFolder "NAME" -IncludeFolders "#Inbox#"
In diesem Beispiel werden alle PST-Dateien in einem freigegebenen Ordner importiert. Jede PST-Datei wird nach dem entsprechenden Benutzeralias benannt. Der Befehl erstellt eine Importanforderung für alle PST-Dateien und importiert die Daten in das übereinstimmende Postfach
Dir \\SERVER01\PSTshareRO\Recovered\*.pst | %{ New-MailboxImportRequest -Name RecoveredPST -BatchName Recovered -Mailbox $_.BaseName -FilePath $_.FullName -TargetRootFolder SubFolderInPrimary}
Sonstige interessante Befehle
Get-MailboxImportRequest [-Status Failed|inProgress|Completed] [-Identity] | Get-MailboxImportRequestStatistics
Get-MailboxImportRequest | Get-MailboxImportRequestStatistics -includereport | fl [> e:\temp\importrequests.txt]

Get-MailboxImportRequest | Get-MailboxImportRequestStatistics -includereport | fl report

Send-As / Senden als
Wer hat Send-As Rechte?
Get-Mailbox [User] | Get-ADPermission | Where-Object { ($_.ExtendedRights -like "*send-as*") -and -not ($_.User -like "nt authority\self") } [ggf. | ft –autosize)]


Mailbox Permission
Add-MailboxPermission -Identity 'CN=sapworkflow,OU=Dummy,OU=EVV,OU=Migration,DC=shs,DC=erd,DC=loc' -User 'evv\sapworkflow' -AccessRights 'FullAccess'
Add-ADPermission -Identity 'CN=sapworkflow,OU=Dummy,OU=EVV,OU=Migration,DC=shs,DC=erd,DC=loc' -User 'evv\sapworkflow' -ExtendedRights 'Send-as'

MailboxFolderPermission
Berechtigungen für jedes Verzeichnis anzeigen:
ForEach ($Folder in (Get-MailboxFolderStatistics -Identity SMTPADRESSE)) {$identity = "
SMTPADRESSE:\" + $Folder.Name; Try {Get-MailboxFolderPermission -Identity $identity -ErrorAction Stop} catch {"Fehler!"}}

Hat User X eine Berechtigung auf irgendeine Mailbox?
get-mailbox -resultsize unlimited | Get-MailboxPermission | where-Object {$_.User -like "*jeder*"} | FT Identity


Alle linked Mailboxes, die nur eine SID als LinkedMasterAccount eingetragen haben
Get-MailBox -ResultSize unlimited | where {$_.LinkedMasterAccount -imatch 'S-1' -AND $_.IsLinked -eq $true} | ft LinkedMasterAccount,Alias,PrimarySmtpAddress

Alle Mailbox Export/Import Requests löschen
Get-MailboxExportRequest|Remove-MailboxExportRequest

User- oder linked Mailbox zu einer Room- oder Equipment Mailbox konvertieren
Set-Mailbox -Identity “UserMailbox” -Type Room
Set-Mailbox -Identity “UserMailbox” -Type Equipment

Linked Mailbox zu einer User Mailbox konvertieren
Set-User -Identity [SMTP] -LinkedMasterAccount $null

Get-MailboxDatabase
Get-MailboxDatabase | ?{$_.name -like "*ebe*standard*04*"} | fl Name, EdbFilePath, LogFolderPath
Alle Empfänger in einer bestimmten datenbank auflisten
DistinguishedName einer Datenbank ermitteln:
Get-MailboxDatabase | ?{$_.name -like "*ebe*standard*03*"} | fl DistinguishedName
Empfänger in der Datenbank auflisten:
Get-Recipient (-PropertySet ConsoleLargeSet) -Filter '(database -eq "DistinguishedName")' | fl primarysmtpaddress

SentOnBehalfTo
Wenn man von einem anderen Postfach aus versendet, sollen Nachrichten auch in den gesendeten Objekten des anderen Postfaches gespeichert werden.
Set-MailboxSentItemsConfiguration -Identity "SMTP" -SendAsItemsCopiedTo SenderAndFrom -SendOnBehalfOfItemsCopiedTo SenderAndFrom
Wenn nur im eigenen Postfach gespeichert werden soll bzw. Defaulteinstellung:
SendAsItemsCopiedTo         : Sender
SendOnBehalfOfItemsCopiedTo : Sender

Fragmentierung bzw. freien Speicherplatz in einer Datenbank anzeigen
Get-MailboxDatabase "MDB01" -status | ft name, databasesize, availablenewmailboxspace


Abwesenheit
Automatische Antwort mit Start und Ende
Set-MailboxAutoReplyConfiguration -AutoReplyState Scheduled -Identity [SMTP] -StartTime "04/17/2014 00:00" -EndTime "04/17/2014 23:59" -ExternalAudience All -ExternalMessage "TEXT<br>TEXT..." -InternalMessage "TEXT<br>TEXT..."

Verteiler
Mitglieder sämtlicher Verteiler in eine Datei exportieren
foreach ($group in Get-DistributionGroup | where {$_.PrimarySmtpAddress -like "*domain.de"}) {get-distributiongroupmember $group | ft alias, @{label='Verteiler';expression={$group.displayName}} >>\\PFAD\NAME.TXT}


InboxRule
Neue InboxRule, die alle E-Mails zu einer anderen Mailbox weiterleitet
New-InboxRule -Name "NAME" -mailbox "SMTPADRESSE" -ForwardTo "SMTPAdresseZielMailbox" -MyNameInToOrCcBox $true

Einen weiteren Empfänger hinzufügen bzw. Empfänger bestimmen
Set-InboxRule -identity "SMTPADRESSE\IDENTITY" -forwardto ("SMTP1", "SMTP2", "SMTP3", "SMTP4", ...)

Eventlog
Errorlevel des OALGen auf Medium setzen
Get-EventLogLevel -Identity EXGMBX01\MSExchangeSA\*
Set-EventLogLevel -Identity "EXGMBX01\MSExchangeSA\OAL Generator" -Level Medium


Automatische Abwesenheitsbenachrichtigung
Get-MailboxAutoReplyConfiguration -Identity [z.B. smtp-adresse]
Set-MailboxAutoReplyConfiguration -Identity [z.B. smtp-adresse] -AutoReplyState disabled

Regeln anzeigen
Get-InboxRule -Mailbox "z.B. SMTP Adresse" | select name, description | fl

Regel (Rule) deaktivieren
Disable-InboxRule -Mailbox "ausbildung@allbau.de" -Identity "Ausbildung"



Exchange 2010 Linked Mailbox Master Account ändern

$c=Get-Credential
set-mailbox -Identity TARGET\User1 -LinkedCredential $c -LinkedDomainController SOURCEDC.local -LinkedMasterAccount SOURCE\User1


Suchindex
Test-ExchangeSearch (ggf. -Server [Servername])

Wird hierbei ein Fehler ausgegeben, versuchen Sie den Dienst Micrososft Search neuzustarten, oft ist das schon die Problemlösung. Wiederholen Sie danach den Test.

findtsr und so
Get-ReceiveConnector | ft name, RemoteIPRanges, server | findstr "172.21.5.103"

ReceiceConnector kopieren
New-ReceiveConnector "AR SHSMDGP1" -Server exgcas02 -Bindings 0.0.0.0:25 -RemoteIPRanges ( Get-ReceiveConnector "EXGCAS01\AR SHSMDGP1" ).RemoteIPRanges -AuthMechanism ( Get-ReceiveConnector "EXGCAS01\AR SHSMDGP1" ).AuthMechanism -PermissionGroups ( Get-ReceiveConnector "EXGCAS01\AR SHSMDGP1" ).PermissionGroups

Dumpster leeren
Search-mailbox -identity [z.B. SMTP-Adresse] -SearchDumpsterOnly -DeleteContent

Postfachgrößen ermitteln
Get-MailboxStatistics -database NAME | Sort TotalItemSize -desc| ft displayname, {$_.TotalItemSize.Value.Tomb()} , {$_.TotalDeletedItemSize.Value.Tomb()}, storagelimitstatus


Dynamische Verteiler; Mitglieder Liste exportieren
Get-Recipient -RecipientPreviewFilter $DDG.Recipientfilter -OrganizationalUnit shs.erd.loc/002-Mailing/004-VIA/004-Postfächer/Meoline | ft name, PrimarySmtpAddress >c:\temp\distrimeoline.txt

Messagesize
Set-ReceiveConnector -identity "Default [SERVERNAME]" -maxmessagesize 20MB 
[35MB]
Mailboxes: Haken setzen: Nachricht an Weiterleitungsadresse und Postfach übermitteln
Get-Mailbox -OrganizationalUnit shs.erd.loc/Migration/EVAG/Mailboxes/dvv | where {$_.ForwardingAddress -ne $null} | Set-Mailbox -DeliverToMailboxAndForward $true 

($FALSE für Haken wegnehmen)

Mailboxes: Sparacheinstellungen anzeigen
Get-Mailbox -OrganizationalUnit shs.erd.loc/Migration/EVAG/Mailboxes/DVV | Get-MailboxRegionalConfiguration
Lanuages- Outlook Foldernames

Set-MailboxRegionalConfiguration -Identity "Alias oder E-Mailadresse" -Language {de-DE} -LocalizeDefaultFolderName:$true -DateFormat "dd.MM.yyyy"

Set-MailboxRegionalConfiguration -Identity "Alias oder E-Mailadresse" -Language {en-GB} -LocalizeDefaultFolderName:$true -DateFormat "dd/MM/yyyy"

Alle Mailboxes in einer OU:
Get-Mailbox -OrganizationalUnit shs.erd.loc/Migration/EVAG/Mailboxes/dvv |
Set-MailboxRegionalConfiguration -Language {de-DE} -LocalizeDefaultFolderName:$true -DateFormat "dd.MM.yyyy"

Alle Mailboxes (ungetestet!)
Get-Mailbox | Set-MailboxRegionalConfiguration -Identity "Alias oder E-MailAdresse" -Language {de-DE} -LocalizeDefaultFolderName:$true -DateFormat "dd.MM.yyyy"

Postfachgrößen anzeigen
Get-MailboxStatistics -server servername | Sort TotalItemSize -desc| ft displayname, {$_.TotalItemSize.Value.Tomb()} , {$_.TotalDeletedItemSize.Value.Tomb()}, storagelimitstatus
Alle Postfächer, die mehr als 8GB belegen
Get-MailboxStatistics -database [NAME] | where {$_.TotalItemSize.Value.Tomb() -gt 8000}| Sort TotalItemSize -desc| ft displayname, {$_.TotalItemSize.Value.Tomb()} , {$_.TotalDeletedItemSize.Value.Tomb()}, storagelimitstatus

Mailboxes auflisten

Get-Mailbox -OrganizationalUnit shs.erd.loc/Migration/EVAG/Mailboxes/temp | where {$_.ForwardingAddress -ne $null} | select Name, PrimarySmtpAddress, ForwardingAddress, DeliverToMailboxAndForward | out-file -filepath C:\[PFAD\DATEINAME]

Kontakt

New-MailContact "Nachname, Vorname" -Alias "NachnameVorname" -ExternalEmailAddress "SMTP-Adresse des Kontakts" -OrganizationalUnit "shs.erd.loc/Kontakte/Forward"


BB-Rechte


Get-MailboxDatabase | Add-ADPermission -User "BESAdmin" -AccessRights ExtendedRight -ExtendedRights Receive-As, ms-Exch-Store-Admin

Add-RoleGroupMember "View-Only Organization Management" -Member "BESAdmin"

Dann
Add-ADPermission -InheritedObjectType User -InheritanceType Descendents -ExtendedRights Send-As -User "BESAdmin" -Identity "OU=<organizational_unit>,DC=<domain_1>,DC=<domain_2>,DC=<domain_3>"
oder
Add-ADPermission -InheritedObjectType User -InheritanceType Descendents -ExtendedRights Send-As -User "BESAdmin" -Identity "CN=<common_name>,DC=<domain_1>,DC=<domain_2>,DC=<domain_3>"


Languages - (Termine werden weitergeleitet und der Organisator wird auf englisch darüber informiert)

Set-Mailbox -Identity "nowak, stefan" -Languages "de-DE"   ("en-US")

( Get-Mailbox -Identity "nowak, stefan" | fl )


Für alle Postfächer die Grenzwerte der DB übernehmen
get-mailbox -database [NAME] -resultsize unlimited | set-mailbox -UseDatabaseQuotaDefaults $true


Daten aus getrenntem Postfach wiederherstellen


Postfächer in der EMC anzeigen lassen:
Get-MailboxDatabase | Clean-MailboxDatabase

GUID des getrennten Postfaches ermitteln:
get-mailboxdatabase | get-mailboxstatistics | Where{ $_.DisconnectDate -ne $null } |fl displayName,Identity,disconnectdate

Daten aus getrenntem Postfach in ein aktives Postfach kopieren:
New-MailboxRestoreRequest -SourceDatabase "db-via" -SourceStoreMailbox 2fb32daf-ade3-484e-97f6-4ab52627e9f3 -TargetMailbox [SMTP-Adresse]

Getrennte Postfächer endgültig löschen


Get-MailboxDatabase | Clean-MailboxDatabase

Danach werden die getrennten Postfächer in der Exchange Verwaltungskonsole angezeigt, dort kann man sie zwar wieder verbinden, aber nicht löschen.

Löschen lässt sich das Postfach nur über die GUID des Postfachs. Diese kann man sich so anzeigen lassen:
Get-Mailbox -Identity "nowak, stefan" | fl
get-mailboxdatabase | get-mailboxstatistics | Where{ $_.DisconnectDate -ne $null } |fl displayName,Identity,disconnectdate

Möchte man nun das Postfach löschen, kopiert man sich den Wert der bei “Identity” steht und hängt ihn an den Remove-MailboxDatabase Befehl an:

Remove-mailbox -database “Name der Mailbox Datenbank” -storemailboxidentity “Wert der bei Identity steht”

Beispiel:

Remove-mailbox -database “MailBoxDatabase01″ -storemailboxidentity 853ad730-7111-4569-ad54-ef002046e97f

Seit SP1 gibt es einen neuen Befehl: Remove-StoreMailbox
(
$identity=get-mailboxdatabase "MBDB01" | Get-MailboxStatistics | ?{$_.DisconnectReason -eq "SoftDeleted"} | ft identity -HideTableHeaders)
Remove-StoreMailbox -database "MBDB01" -Identity “bcfd82dc-0b14-4ee3-aceb-f369159ddbc1″ -MailboxState SoftDeleted


Infos über Postfächer anzeigen/Optionen setzen:
Get-Mailbox "alias" | ft

Filter Beipiel:

Get-Mailbox "alias" | ft name,ExternalOofOptions

Optionen setzen Beispiel:

Set-mailbox "alias" ExternalOofOptions <InternalOnly | External>


Automatische Antworten / AutoReply:
Get-MailboxAutoReplyConfiguration "alias" | fl
Get-help Set-MailboxAutoReplyConfiguration (-examples)


Lastlogon
Get-mailboxstatistics
get-mailbox -database DB-EVAG1 | Get-MailboxStatistics | ft DisplayName, LastLogonTime, LastLoggedOnUserAccount

Verteilerlisten; Dynamische Verteilerlisten Mitglieder per Powershell anzeigen
$DDG = Get-DynamicDistributionGroup sammlermeoline

Get-Recipient -RecipientPreviewFilter $DDG.Recipientfilter -OrganizationalUnit shs.erd.loc/002-Mailing/004-VIA/004-Postfächer/Meoline | ft name, PrimarySmtpAddress >c:\temp\distrimeoline.txt


Terminplanung: Frei- Gebuchtzeiten eines Users werden nicht angezeigt.
set-mailboxfolderpermission -identity name@maildomain.de:\kalender -user standard -AccessRights "AvailabilityOnly"



Outlook 2010: "Zusätzliche Postfächer" lassen sich nicht trennen:
[adsiedit.msc] msExchDelegateListLink



DSQuery (alte Computerkonten bzw. Objekte allgemein)

Ab der Funktionsebene 2003 gibt es das Attribut LastLogonTimestamp und man kann mit dsquery arbeiten:

dsquery computer -stalepwd 180

zeigt an, welche Computer ihr Kennwort seit 180 Tagen nicht geändert haben. Standardmäßig zeigt dieser Befehl nur 100 Objekte an. Man kann dieses Limit mit -limit ändern oder abschalten:

dsquery computer -limit 0 stalepwd 180

Funktionsebenen unter 2003:

LasLogon.vbs zeigt alle Objekte, User- bzw. Computer, und das letzte Anmeldedatum an.

Syntax: cscript //nologo LastLogon.vbs > output.txt

LastLogonComputer.vbs
LastLogonUser.vbs



Recover:

Logs und DB zurücksichern in ein neues Verzeichnis.
[z.B.: \\EXGMBX02\e:\Recovery\swe-restore]

Alle Dateien, DB und Logs, in ein gemeinsames Verzeichnis verschieben.
[e:\recovery\swe-restore\]

Per Powershell eine Recoverydatenbank anlegen:

New-MailboxDatabase -recovery -Name swe-restore -server exgmbx02 -EdbFilePath "e:\recovery\swe-restore\db-swe.edb" -LogFolderPath "e:\recovery\swe-restore"

Mit ESEUTIL eien Healthcheck machen:

Ins Verzeichnis e:\revocery\swe-restore\ wechseln,

eseutil -mh db-swe.edb

Logs in die EDB einspielen. Basis vorher ansehen (im Beispiel fangen alle logs mit E03 an (E0300002933.log))

ESEUTIL /r e03 /i /d
(ESEUTIL /r e00 /Le:\Logfiles /i /d)

Mailboxen anzeigen:

Get-MailboxStatistics -database "swe-restore"
Get-MailboxStatistics -Database "DATABASENAME" | ?{$_.DisplayName -like '*irgendwas*'}
(Andere Vergleichsoperatoren: -contains, -notcontains, ...)

In eine PST exportieren (Funktioniert nur mit installiertem Outlook / 64bit):

Einem Benutzer (oder einer Gruppe) die Rolle "mailbox import export" zuweisen:

New-ManagementRoleAssignment -role "mailbox import export" -user "shs\snowakadm"

Vorhandene Mailbox mit Sicherung überschreiben:
Sicherung in ein Unterverzeichnis der aktuellen Mailbox exportieren:

Alles:

Restore-Mailbox snowak -RecoveryDatabase swe-restore -RecoveryMailbox snowak -TargetFolder Recovery-QMM

Mit Subject:

[PS] C:\Windows\system32>Restore-Mailbox snowak -RecoveryDatabase SWE-restore -SubjectKeywords "Test*" -RecoveryMailbox qmm2 -TargetFolder Recovery-QMM

Zeitraum:

Restore-Mailbox snowak -RecoveryDatabase SWE-restore -StartDate XXXX -EndDate XXXX -RecoveryMailbox qmm2 -TargetFolder Recovery-QMM
(? StartDate: 01.03.2010 )

Sonstige Befehle:

Disconnectet Mailboxes aktualisieren:
Get-MailboxStatistics und Clean-MailboxDatabase
Get-MailboxStatistics -Database MBD01 | Where { $_.DisconnectReason -eq "SoftDeleted" } | Format-List LegacyDN, DisplayName, MailboxGUID, DisconnectReason

Disconnected Mailboxes anzeigen
Get-MailboxDatabase | Get-MailboxStatistics | Where{ $_.DisconnectDate -ne $null } |fl displayName,Identity,disconnectdate

Disclaimer

Beispiel

Vergleichsoperatoren
-eq Gleich (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-ieq Gleich (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-ceq Gleich (unterscheidet zwischen Groß- und Kleinschreibung)
-ne Ungleich (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-ine Ungleich (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-cne Ungleich (unterscheidet zwischen Groß- und Kleinschreibung)
-lt Kleiner als (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-ilt Kleiner als (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-clt Kleiner als (unterscheidet zwischen Groß- und Kleinschreibung)
-gt Größer als (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-igt Größer als (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-cgt Größer als (unterscheidet zwischen Groß- und Kleinschreibung)
-le Kleiner als oder gleich (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-ile Kleiner als oder gleich (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-cle Kleiner als oder gleich (unterscheidet zwischen Groß- und Kleinschreibung)
-ge Größer als oder gleich (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-ige Größer als oder gleich (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-cge Größer als oder gleich (unterscheidet zwischen Groß- und Kleinschreibung)
-contains Die Elemente im linken Operanden, die dem rechten Operanden entsprechen (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-icontains Die Elemente im linken Operanden, die dem rechten Operanden entsprechen (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-ccontains Die Elemente im linken Operanden, die dem rechten Operanden entsprechen (unterscheidet zwischen Groß- und Kleinschreibung)
-notcontains Die Elemente im linken Operanden, die dem rechten Operanden entsprechen (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-inotcontains Die Elemente im linken Operanden, die dem rechten Operanden entsprechen (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-cnotcontains Die Elemente im linken Operanden, die dem rechten Operanden entsprechen (unterscheidet zwischen Groß- und Kleinschreibung)
-band Bitweises UND
-bor Bitweises ODER
-bnot Bitweise Negation (NICHT)
-and Logisches UND
-or Logisches ODER
-not Logische Negation (NICHT)
-match Zeichenfolgen mit regulären Ausdrücken vergleichen (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-notmatch Zeichenfolgen mit regulären Ausdrücken vergleichen (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-imatch Zeichenfolgen mit regulären Ausdrücken vergleichen (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-inotmatch Zeichenfolgen mit regulären Ausdrücken vergleichen (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-cmatch Zeichenfolgen mit regulären Ausdrücken vergleichen (unterscheidet zwischen Groß- und Kleinschreibung)
-cnotmatch Zeichenfolgen mit regulären Ausdrücken vergleichen (unterscheidet zwischen Groß- und Kleinschreibung)
-like Zeichenfolgen mithilfe von Platzhalterzeichenregeln vergleichen
-notlike Zeichenfolgen mithilfe von Platzhalterzeichenregeln vergleichen
-ilike Zeichenfolgen mithilfe von Platzhalterzeichenregeln vergleichen (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-inotlike Zeichenfolgen mithilfe von Platzhalterzeichenregeln vergleichen (unterscheidet nicht zwischen Groß- und Kleinschreibung)
-clike Zeichenfolgen mithilfe von Platzhalterzeichenregeln vergleichen (unterscheidet zwischen Groß- und Kleinschreibung)
-cnotlike Zeichenfolgen mithilfe von Platzhalterzeichenregeln vergleichen (unterscheidet zwischen Groß- und Kleinschreibung)

Get ADUser

Alle AD-User, deren Kennwort niemals abläuft
Get-ADUser -Searchbase "OU=XXXX,DC=XXXX,DC=local" -Properties useraccountcontrol -f {useraccountcontrol -eq "66048"} | ft -autosize name, smaccountname >c:\temp\KennwortLaeuftNieAb.txt

Alle AD-User, deren Logonscript gleich "kix32.exe" / nicht gleich "kix32.exe" ist
Get-ADUser -Properties scriptpath -f {ScriptPath -eq "kix32.exe"} | ft -autosize ScriptPath, name
Get-ADUser -Properties scriptpath -f {ScriptPath -ne "kix32.exe"} | ft -autosize ScriptPath, name


Standard OU für neue Computer- und Userkonten ändern
Redircmp OU=ComputerNeu,OU=Frankfurt,OU=Standorte,DC=CertBase,DC=De

(Redirusr)

Verbindung mit anderer Domäne
$c=get-credential
$session = New-PSsession -Computername [NAME] -credential $c
Enter-PSSession $session
import-module activedirectory
Get-ADUser -Filter * -Properties WhenCreated | sort WhenCreated -desc | fl -Property WhenCreated, Name
Exit -PSSession

Attribute löschen
ForEach ($User in (get-aduser -filter * -SearchBase "OU=002-Mailing,DC=shs,DC=erd,DC=loc" -Properties Scriptpath)) {Set-ADUser $User -Scriptpath $NULL}
ForEach ($User in (get-aduser -filter * -SearchBase "OU=002-Mailing,DC=shs,DC=erd,DC=loc" -Properties Homedrive)) {Set-ADUser $User -Homedrive $NULL}
ForEach ($User in (get-aduser -filter * -SearchBase "OU=002-Mailing,DC=shs,DC=erd,DC=loc" -Properties Homedirectory)) {Set-ADUser $User -Homedirectory $NULL}


GPO / GPResult / GPUpdate

Remote GPupdate
Psexec.exe -@ComputerList.txt Gpupdate.exe /Target:User /force
Psexec.exe -@ComputerList.txt Gpupdate.exe /Target:Computer /force
Psexec.exe \\COMPUTERNAME Gpupdate.exe /Target:User /force


BlackBerry

Adressbuch Reset
Adressbuch/Optionen/Desktop markieren und RSET eingeben.
Kalender Reset
Kalender/Optionen/auf Desktop gehen und RSET eingeben...


Zertificon

Restart Gateway

/etc/init.d/z1-smgw restart


Unsortiert
Get-MailboxDatabase -Status | ft name,databasesize,availablenewmailboxspace –auto

https://gate.xxxxxxxx.de/CitrixLogonPoint/EVVXA65-RSA/
https://gate.xxxxxxxx.de/CitrixLogonPoint/EVVXA6-RSA/

Im AD "Name, Vorname" als Standard für den Anzeigenamen setzen
ADSI-Edit
Konfiguration
cn=DisplaySpecifiers erweitern
cn=409 erweitern
CN-user-Display / createDialog = “%, %” (Ohne Anführungszeichen)

Berechtigungen auf Verzeichnisse und Dateien
get-childitem (gci)
gci -r | % {Get-Acl $_.FullName} | fl
gci -inc *.cmd -r | % {Get-Acl $_.FullName|select path, Owner} | fl
gci -inc *.cmd -r | % {Get-Acl $_.FullName|select path, Access} | fl
gci -inc *.cmd -r | % {Get-Acl $_.FullName|select path, Group} | fl

Berechtigungen auf jedes Verzeichnis ermitteln
Foreach ($Folder in (Get-Mailboxfolderstatistics -Identity SMTPAddress)) {$identity = "SMTPAddress:\" + $Folder.name; try {get-mailboxfolderpermission -Identity $identity -erroraction Stop} catch {"Fehler!"}}


netdom query fsmo

Datenschutz DSGVO