riegerrobsi
Goto Top

Kontakte per Powershell zu Verteilerliste hinzufügen

Hallo liebe Forenteilnehmer,

ich habe eine Frage, kennt jemand von euch eine Möglichkeit per Powershell Kontakte in einer Verteilerliste zu hinterlegen?

Zum Hintergrund, am Wochenende gibt es eine wechselnde Bereitschaft, aber immer nur der Betreffende Kollege soll dann
die Nachrichten über die Verteilerliste erhalten, meine Idee war jetzt es gibt 4 Dateien die lauten dann KW1.csv KW2.csv KW3.csv
da steht der zuständige Mitarbeiter drin.

(Get-DAte).DayOfyear /7
'KW{0:0}' -f ((Get-Date).DayOfYear / 7)  
$KW = 'KW{0:0}' -f ((Get-Date).DayOfYear / 7)  

import-module activedirectory
import-CSV "c:\Util\$KW.csv" | % {   
Add-ADGroupMember -Identity 'Bereitschaft' -Members $_.UserName   
} 

Soweit so gut, jetzt müsste ich allerdings auch noch Kontakte hinzufügen, weis jemand wie ich das bewerkstelligen kann?

Vielen Dank schon einmal für eure Tipps

Content-Key: 369563

Url: https://administrator.de/contentid/369563

Printed on: April 28, 2024 at 07:04 o'clock

Member: emeriks
emeriks Mar 28, 2018 at 13:40:28 (UTC)
Goto Top
Hi,
na genau so?
Die Kontakte müssen dann natürlich im AD (Exchange) angelegt sein und nicht im Outlook.

E.
Member: riegerrobsi
riegerrobsi Mar 28, 2018 at 14:12:45 (UTC)
Goto Top
Leider nein, kommt die Fehlermeldung dass es das Objekt nicht gibt.
Member: emeriks
emeriks Mar 28, 2018 at 14:21:17 (UTC)
Goto Top
Versuche mal dies:
$Group = [ADSI]"LDAP://CN=Gruppenname,OU=Bla Bla Bla,DC=domain,DC=tld"  
$Group.Member.Add("CN=Kontaktname,OU=Bla Bla Bla,DC=domain,DC=tld")   
$Group.psbase.CommitChanges() 
Member: riegerrobsi
riegerrobsi Mar 28, 2018 at 14:46:44 (UTC)
Goto Top
Das funktioniert zwar, habe ich vorhin auch gefunden, aber wie kann ich da eine Variable übergeben?
Bekomme dann nur Fehlermeldungen
Member: emeriks
emeriks Mar 28, 2018 at 15:23:18 (UTC)
Goto Top
aber wie kann ich da eine Variable übergeben
Na, so z.B.
$GroupDN = "CN=Gruppenname,OU=Bla Bla Bla,DC=domain,DC=tld"  
$ContactDN = "CN=Kontaktname,OU=Bla Bla Bla,DC=domain,DC=tld"  
$Group = [ADSI]"LDAP://$GroupDN"  
$Group.Member.Add($ContactDN) 
$Group.psbase.CommitChanges() 
Member: riegerrobsi
riegerrobsi Mar 29, 2018 at 08:07:08 (UTC)
Goto Top
Hallo Emeriks,

ja, so würde es funktionieren, habe jetzt leider nur noch keine Lösung wie ich von der csv den Wert so auslesen kann, dass er in Anführungszeichen steht, oder gibt es eine Möglichkeit sinngemäß die Variable zusammensetzt?
$User = "&CN=Kontaktname,OU=Bla Bla Bla,DC=domain,DC=tld&"
Member: emeriks
emeriks Mar 29, 2018 updated at 08:37:52 (UTC)
Goto Top
ja, so würde es funktionieren, habe jetzt leider nur noch keine Lösung wie ich von der csv den Wert so auslesen kann, dass er in Anführungszeichen steht,
Warum sollte er das? Ich fürchte, hier fehlen bei Dir allgemeine PowerShell-Grundlagen. Das hat ja nun nichts mehr mit dem ursprünglichen Thema zu tun.

oder gibt es eine Möglichkeit sinngemäß die Variable zusammensetzt?
$User = "&CN=Kontaktname,OU=Bla Bla Bla,DC=domain,DC=tld&"

$ContactName = "Müller, Peter"  

$ContactCN = "CN=" + $ContactName.Replace(",", "\,")  
$ContactDN = "CN=$ContactCN,CN=Kontaktname,OU=Bla Bla Bla,DC=domain,DC=tld"  

$Group.Member.Add($ContactDN)      <------ hier müssen keine "" mehr angegeben werden  


Edit

$BaseDN = ",CN=Kontaktname,OU=Bla Bla Bla,DC=domain,DC=tld"  

$ContactName = "Müller, Peter"  

$ContactCN = "CN=" + $ContactName.Replace(",", "\,")  
$ContactDN = "CN=$ContactCN$BaseDN"  

$Group.Member.Add($ContactDN)      <------ hier müssen keine "" mehr angegeben werden  
Mitglied: 135799
Solution 135799 Mar 29, 2018 updated at 10:18:23 (UTC)
Goto Top
Oder auch so
import-CSV "c:\Util\Daten.csv" -delimiter "," | % {  
    $contact = ((Get-ADObject -LDAPFilter "(&(objectClass=Contact)(cn=$($_.Username)))").DistinguishedName)  
    if($contact){
        Set-ADGroup "Bereitschaft" -Add @{'member' = $contact }  
    }
} 
Gruß Schnuffi
Member: riegerrobsi
riegerrobsi Mar 29, 2018 at 10:06:58 (UTC)
Goto Top
Hallo Schnuffi,

bei deiner Variante bekomme ich diese Fehlermeldung:

Set-ADGroup : Das Argument für den Parameter "Add" kann nicht überprüft werden. Das Argument ist NULL, oder ein Element der
Argumentauflistung enthält einen NULL-Wert.
In Zeile:4 Zeichen:26

back-to-topSet-ADGroup Whatsup -Add @{'Member' = ((Get-ADObject -LDAPFilter "(&(objectClass ...

back-to-top~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : InvalidData: (face-smile [Set-ADGroup], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.SetADGroup
Mitglied: 135799
Solution 135799 Mar 29, 2018 updated at 10:19:29 (UTC)
Goto Top
Dann hast du nicht den CN (Common-Name) in deiner CSV benutzt oder die Eigenschaft für den Namen des Kontakts in deiner CSV heißt anders (nicht Username) ... Wurde hier einwandfrei getestet , sofern natürlich der Kontakt existiert, ansonsten musst du noch eine IF-Abfrage einbauen!
Member: riegerrobsi
riegerrobsi Mar 29, 2018 at 13:38:27 (UTC)
Goto Top
Vielen Dank für Euere Hilfe, so hat es dann funktioniert.
Member: emeriks
emeriks Mar 29, 2018 at 13:41:41 (UTC)
Goto Top
Och, keine Ursache.