Powershell - Verwendung von PSSession erzeugt Fehlermeldung
Hallo liebe Kolleginnen und Kollegen,
vor der Umstellung auf Exchange 2016 bietet sich es an diverse Skripte zu überabeiten. Bisher wurden die Exchange Server Management Tools auf einer Art Job-VM installiert. Auf diese soll in Zukunft wenn möglich verzichtet werden, um die Pflege der Tools überflüssig zu machen.
Das Skript sieht aktuell so aus:
Macht genau was es soll.
Nun habe ich die ersten drei Zeilen des obigen Skripts durch folgenden Zeilen ersetzt:
Lass ich das Skript erneut laufen, erhalte ich auf einmal folgende Fehlermeldung.
Mir leuchtet leider nicht ein, warum es über die Management Tools funktioniert aber mit der importierten PSSession nicht.
Kann mir jemand auf die Sprünge helfen?
Gruß,
Dani
vor der Umstellung auf Exchange 2016 bietet sich es an diverse Skripte zu überabeiten. Bisher wurden die Exchange Server Management Tools auf einer Art Job-VM installiert. Auf diese soll in Zukunft wenn möglich verzichtet werden, um die Pflege der Tools überflüssig zu machen.
Das Skript sieht aktuell so aus:
. ((get-itemproperty HKLM:\SOFTWARE\Microsoft\ExchangeServer\v15\Setup).MsiInstallPath + "bin\RemoteExchange.ps1")
Connect-ExchangeServer -auto
$groups = Get-DynamicDistributionGroup | select DisplayName, LdapRecipientFilter, RecipientContainer, Notes
foreach ($group in $groups) {
[string] $members = ""
$objContainer ="LDAP://" + $group.RecipientContainer.DistinguishedName
$objDomain = New-Object System.DirectoryServices.DirectoryEntry $objContainer
$strFilter = $group.LdapRecipientFilter
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.Filter = $strFilter
$objSearcher.SearchScope = "Subtree"
$objSearcher.PropertiesToLoad.Add("Name") | Out-Null
$objSearcher.Sort.PropertyName = "Name"
$colResults = $objSearcher.FindAll()
...
}
Nun habe ich die ersten drei Zeilen des obigen Skripts durch folgenden Zeilen ersetzt:
$ExchangePsSessionId = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "http://$ExchangeFqdn/powershell" -Authentication Kerberos
Import-PSSession $ExchangePsSessionId -DisableNameChecking -AllowClobber | out-null
Lass ich das Skript erneut laufen, erhalte ich auf einmal folgende Fehlermeldung.
Ausnahme beim Aufrufen von "FindAll" mit 0 Argument(en): "Unbekannter Fehler (0x80005000)"
In C:\x\y\z.ps1:77 Zeichen:5
+ $colResults = $objSearcher.FindAll()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) , MethodInvocationException
+ FullyQualifiedErrorId : COMException
Kann mir jemand auf die Sprünge helfen?
Gruß,
Dani
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 335855
Url: https://administrator.de/forum/powershell-verwendung-von-pssession-erzeugt-fehlermeldung-335855.html
Ausgedruckt am: 08.04.2025 um 04:04 Uhr
2 Kommentare
Neuester Kommentar

Hi,
das liegt daran das bei der Verwendung von einer Remote-Session hier bei bestimmte Objekte nicht serialisiert werden.
So geschehen bei
Schau dir die Typen aller untergeordneten Eigenschaften der Groups an und du wirst feststellen das manchen zu Strings deserialisiert wurden, also bestimmte Eigenschaften die vorher typisiert waren nun reine Strings sind!
So kommt es dann das du deinem Adsisearcher fehlerhafte Parameter mitgibst und dieser fehlschlägt.
Das gilt es bei der Verwendung von Remote-Sessions immer zu beachten.
https://blogs.msdn.microsoft.com/powershell/2010/01/07/how-objects-are-s ...
Gruß
das liegt daran das bei der Verwendung von einer Remote-Session hier bei bestimmte Objekte nicht serialisiert werden.
So geschehen bei
$groups = Get-DynamicDistributionGroup | select DisplayName, LdapRecipientFilter, RecipientContainer, Notes
So kommt es dann das du deinem Adsisearcher fehlerhafte Parameter mitgibst und dieser fehlschlägt.
Das gilt es bei der Verwendung von Remote-Sessions immer zu beachten.
https://blogs.msdn.microsoft.com/powershell/2010/01/07/how-objects-are-s ...
Gruß