Exchange 2013 Aktivieren und Deaktivieren von OWA und Activesync
Hallo Liebe Leute,
da mir bisher immer sehr gut geholfen wurden konnte in diesem Forum, wende ich mich wieder an euch.
In Anbetracht auf folgendes Powershell-Script Activesync habe ich versucht das Script für mich ein wenig anzupassen, da es bei mir im Exchange 2013 Cu11 nicht funktioniert.
Hier mein derzeitiger Codeschnipsel:
Leider komme ich hier nicht weiter.
Ich denke ich habe hier folgenden Fehler begangen, den ich aber auch nicht wüsste wie ich Ihn lösen könnte
und zwar denke ich:
Listet es mir folgendermaßen auf:
Samaccountname
User1
User 2
Das selbe, denke ich, auch ist auch bei :
PrimarySmtpAddress
user1@test.com
user2@test.com
und hier vermute ich den Fehler da er mir immer noch zum Anfang
Samaccountname sowie PrimarySmtpAddress ausgibt.
Lieg ich denn da richtig?
Kann mir hier bezüglich des Fehlers jemand Tipps geben?
da mir bisher immer sehr gut geholfen wurden konnte in diesem Forum, wende ich mich wieder an euch.
In Anbetracht auf folgendes Powershell-Script Activesync habe ich versucht das Script für mich ein wenig anzupassen, da es bei mir im Exchange 2013 Cu11 nicht funktioniert.
Hier mein derzeitiger Codeschnipsel:
#Activesync und OWA für alle deaktivieren
$sans = Get-ADGroupMember -Identity Domänen-Benutzer -Recursive | select Samaccountname
foreach ($san in $SaNs)
{$mails = get-mailbox $san |select PrimarySmtpAddress}
foreach ($mail in $mails)
{set-casmailbox $mail -IgnoreDefaultScope -ActiveSyncEnabled $false -OWAenabled $false}
# Activesync Gruppenmitglieder enablen
$SaNs = Get-ADGroupMember -Identity Activesync | select Samaccountname
foreach ($san in $SaNs)
{$mails = get-mailbox $san |select PrimarySmtpAddress}
foreach ($mail in $mails)
{set-casmailbox $mail -IgnoreDefaultScope -ActiveSyncEnabled $true}
# OWA Gruppenmitglieder enablen
$SaNs = Get-ADGroupMember -Identity owa | select Samaccountname
foreach ($san in $SaNs)
{$mails = get-mailbox $san |select PrimarySmtpAddress}
foreach ($mail in $mails)
{set-casmailbox $mail -IgnoreDefaultScope -OWAEnabled $true}
Leider komme ich hier nicht weiter.
Ich denke ich habe hier folgenden Fehler begangen, den ich aber auch nicht wüsste wie ich Ihn lösen könnte
und zwar denke ich:
Get-ADGroupMember -Identity Domänen-Benutzer -Recursive | select Samaccountname
Listet es mir folgendermaßen auf:
Samaccountname
User1
User 2
Das selbe, denke ich, auch ist auch bei :
get-mailbox $san |select PrimarySmtpAddress
PrimarySmtpAddress
user1@test.com
user2@test.com
und hier vermute ich den Fehler da er mir immer noch zum Anfang
Samaccountname sowie PrimarySmtpAddress ausgibt.
Lieg ich denn da richtig?
Kann mir hier bezüglich des Fehlers jemand Tipps geben?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 301156
Url: https://administrator.de/contentid/301156
Ausgedruckt am: 25.11.2024 um 08:11 Uhr
11 Kommentare
Neuester Kommentar
Einfach die Eigenschaft expandieren sonst sind es noch Objekte und du müsstest in den Schleifen die Eigenschaft zusätzlich mit einem Punkt hinter der Lauf-Variablen abrufen.
Gruß jodel32
.... | select -Expand Samaccountname
Gruß jodel32
Selbes Problem nur Zeile 11
Wie gesagt wenn du Objekte nicht expandierst musst du später den Eigenschaftsnamen angeben ($mail.PrimarySmtpAddress) wenn die Eigenschaft aus dem Objekt erhalten willst, logisch!
Wie gesagt wenn du Objekte nicht expandierst musst du später den Eigenschaftsnamen angeben ($mail.PrimarySmtpAddress) wenn die Eigenschaft aus dem Objekt erhalten willst, logisch!
Ach ich seh den Fehler, SMTPAddress ist kein String sondern ebenfalls noch ein Objekt das wandelst du vorher auch noch in einen String um, deswegen auch die Fehlermeldung wegen des Objekttyps.
$mails = get-mailbox $san | %{$_.PrimarySmtpAddress.toString()}
Ach sorry, Tippfehler meinerseits ist oben korrigiert. Das %{} ist die Abkürzung für eine FOREACH-Schleife,
genau so wie ?{} für ein WHERE-Object, und das $_ ist das aktuelle Objekt in der Pipeline.
genau so wie ?{} für ein WHERE-Object, und das $_ ist das aktuelle Objekt in der Pipeline.
$mails = get-mailbox $san | %{$_.PrimarySmtpAddress.toString()}
Man lernt ja nie aus...
Gruß jodel
Hier nun nochmal mein Gesamter Code
Was sich auch auf 3 Zeilen abkürzen lässt Get-ADGroupMember -Identity Domänen-Benutzer -Recursive | %{set-casmailbox ((Get-Mailbox $_.SamAccountName).PrimarySmtpAddress.toString()) -ActiveSyncEnabled $false -OWAenabled $false}
Get-ADGroupMember -Identity ActiveSync -Recursive | %{set-casmailbox ((Get-Mailbox $_.SamAccountName).PrimarySmtpAddress.toString()) -ActiveSyncEnabled $true}
Get-ADGroupMember -Identity OWA -Recursive | %{set-casmailbox ((Get-Mailbox $_.SamAccountName).PrimarySmtpAddress.toString()) -OWAEnabled $true}
Ein
würde auch reichen.
p.s. der String-Vergleich geht, aber ist schlechter Stil, denn das ist eigentlich ein Boolean Wert. Wenn in dieser Art dann besser so:
Guckst du:
....| ?{$_.ActiveSyncEnabled} | ....
p.s. der String-Vergleich geht, aber ist schlechter Stil, denn das ist eigentlich ein Boolean Wert. Wenn in dieser Art dann besser so:
$_.ActiveSyncEnabled -eq $true
Guckst du:
ActiveSyncEnabled Property bool ActiveSyncEnabled {get;set;}