PS Ver. 5 und Method invocation failed because System.Management.Automation PSCustomObject does not contain a method named Where
Moin zusammen,
ich hab folgendes Skript gefunden, ich finde es ziemlich cool. https://pshirwin.wordpress.com/2016/10/05/add-members-to-group-a-differe ...
Alle benötigten Module hab ich auch, allerdings habe ich ein Problem mit diesem Teil des Codes.
Der Import der Excel Datei funktioniert, Variable $Header ist auch gefüllt mit den Gruppen.
Soweit so gut. Wenn es zum Bereich #Get Group Membership läuft erhalte ich folgende Meldung
Auch der Befehl einzeln $xlsxADGroupMembers.Where{$_.$Group -eq '1'} | Select-Object -ExpandProperty 'UserID' funktioniert nicht.
Dieses .Where ist nicht vorhanden.
Ich habe schon meine PS auf Verson 5.1 aktualisiert. Es läuft trotzdem nicht.
Was kann das sein?
ich hab folgendes Skript gefunden, ich finde es ziemlich cool. https://pshirwin.wordpress.com/2016/10/05/add-members-to-group-a-differe ...
Alle benötigten Module hab ich auch, allerdings habe ich ein Problem mit diesem Teil des Codes.
#Get Group membership
$Header |
ForEach-Object{
$Group = $_
$addADGroupMembers.$Group = $xlsxADGroupMembers.Where{$_.$Group -eq '1'} | Select-Object -ExpandProperty 'UserID'
$delADGroupMembers.$Group = $xlsxADGroupMembers.Where{$_.$Group -ne '1'} | Select-Object -ExpandProperty 'UserID'
}
Der Import der Excel Datei funktioniert, Variable $Header ist auch gefüllt mit den Gruppen.
Soweit so gut. Wenn es zum Bereich #Get Group Membership läuft erhalte ich folgende Meldung
Method invocation failed because [System.Management.Automation.PSCustomObject] does not contain a method named 'Where'.
At C:\AddGroupMemberExcel.ps1:38 char:4
+ $addADGroupMembers.$Group = ($xlsxADGroupMembers).Where{$_.$Group ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Where:String) , RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
Auch der Befehl einzeln $xlsxADGroupMembers.Where{$_.$Group -eq '1'} | Select-Object -ExpandProperty 'UserID' funktioniert nicht.
Dieses .Where ist nicht vorhanden.
Ich habe schon meine PS auf Verson 5.1 aktualisiert. Es läuft trotzdem nicht.
Was kann das sein?
<#
Author: I. Strachan
Version:
Version History:
Purpose: Add group member from excel worksheet. Scripts is based on Mike Robin's work
http://tinyurl.com/jfmw4o7
#>
[CmdletBinding()]
param(
$xlsxFile = 'Test.xlsx',
$WorkSheet = 'Test'
)
#region
$exportDate = Get-Date -Format ddMMyyyy
#endregion
#Import Worksheet Using D. Finke's ImportExcel module http://tinyurl.com/lbhkhbd
$xlsxADGroupMembers = Import-Excel "C:\$xlsxFile" -WorkSheetname $WorkSheet
#Select Group names from Object
$Header = $xlsxADGroupMembers |
Get-Member -MemberType NoteProperty |
Where-Object{$_.Name -ne 'UserID'} |
Select-Object -ExpandProperty Name
#Create empty hashtables
$addADGroupMembers = @{}
$delADGroupMembers = @{}
#Get Group membership
$Header |
ForEach-Object{
$Group = $_
$addADGroupMembers.$Group = $xlsxADGroupMembers.Where{$_.$Group -eq '1'} | Select-Object -ExpandProperty 'UserID'
$delADGroupMembers.$Group = $xlsxADGroupMembers.Where{$_.$Group -ne '1'} | Select-Object -ExpandProperty 'UserID'
}
#region Main. Add and remove users to/from groups
$Header |
ForEach-Object{
if($addADGroupMembers.$_){
try{
Add-ADGroupMember -Identity $_ -Members $addADGroupMembers.$_
}
catch [Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException]{
Write-Warning "AD Object $($Error.CategoryInfo.TargetName) not found"
}
}
if($delADGroupMembers.$_){
try{
Remove-ADGroupMember -Identity $_ -Members $delADGroupMembers.$_ -Confirm:$false
}
catch [Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException]{
Write-Warning "AD Object $($Error.CategoryInfo.TargetName) not found"
}
}
}
#endregion
#region Export for futher processing
$GroupMembers =@{
Groups = $Header | Get-ADGroup -Properties WhenCreated
Added = $addADGroupMembers
Revoked = $delADGroupMembers
}
$GroupMembers |
Export-Clixml "C:\ADGroupMembers-$exportDate.xml" -Encoding UTF8
#endregion
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 365905
Url: https://administrator.de/forum/ps-ver-5-und-method-invocation-failed-because-system-management-automation-pscustomobject-does-not-contain-a-365905.html
Ausgedruckt am: 22.12.2024 um 12:12 Uhr
3 Kommentare
Neuester Kommentar
Schreib diese Zeilen 5 und 6 des Schnippsels so
Den Rest nicht angesehen, and no support ...
Gruß Snap
$addADGroupMembers.$Group = $xlsxADGroupMembers | ?{$_.$Group -eq '1'} | Select-Object -ExpandProperty 'UserID'
$delADGroupMembers.$Group = $xlsxADGroupMembers | ?{$_.$Group -ne '1'} | Select-Object -ExpandProperty 'UserID'
Gruß Snap
Ist bestimmt ein Fehler des externen Moduls, denn normalerweise haben Custom objects die Methode nicht.
Das was ich dir geschrieben habe macht aber exakt das Gleiche.
Das was ich dir geschrieben habe macht aber exakt das Gleiche.