Powershell eigenes Objekt in Funktion verändern
Hallo,'
ich habe Folgende Funktion:
Obwohl "Gettype" ein Object erkennt, kann ich nicht auf die einzelnen Eigenschaften zugreifen.
Habe Ihr einen Tipp?
ich habe Folgende Funktion:
{
return [pscustomobject] @{
'Date' = Get-Date
'Beschreibung' = "Was"
'Verantwortlich' = "ich"
}
}
function Write-Obj
{
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True)]
[Object[]]$InputObject
)
begin {}
process
{
Write-Host $InputObject.GetType()
$M= Get-Member $InputObject
Write-Host $M
$InputObject
$InputObject.Date = $InputObject.Date.AddDays(100)
$InputObject.Beschreibung = "neue Zeit"
$InputObject.Verantwortlich = "Mein zukünftiges ICH"
Write-Host "Innen: $InputObject " # Does not return anything
return $InputObject
}
end {}
}
$ReqData = CreateObject
Write-Host "Außen: $ReqData "
$NewData = Write-Obj ($ReqData)
Write-Host "Außen2: $NewData"
Obwohl "Gettype" ein Object erkennt, kann ich nicht auf die einzelnen Eigenschaften zugreifen.
Habe Ihr einen Tipp?
Please also mark the comments that contributed to the solution of the article
Content-Key: 6198042713
Url: https://administrator.de/contentid/6198042713
Printed on: April 27, 2024 at 16:04 o'clock
2 Comments
Latest comment
Moin,
Beachte, dass der Parameter hier kein Objekt ergibt, sondern ein Array aus Objekten!
Wenn du dann später Get-Member ausführst, bekommst du (ohne Angabe eines Index) die Member des Arrays und nicht die des Objekts. Das Hinzufügen von Eigenschaften führt dann gar zu einem Fehler, da man keine Eigenschaften zu einen Array hinzufügen kann.
Get-Member muss hier die Parameterangabe -InputObject bekommen. Dieser kann abgekürzt sein, aber in dem Fall nicht ausgelassen werden.
Bei Write-Host-Ausgaben von Objekten empfielt es sich immer, diese vorher in eine Zeichenkette zu konvertieren
Gruß Thomas
Zitat von @SPSman:
Hier fehlt offensichtlich das {
return [pscustomobject] @{
'Date' = Get-Date
'Beschreibung' = "Was"
'Verantwortlich' = "ich"
}
}
Function CreateObject
[Object[]]$InputObject
Wenn du dann später Get-Member ausführst, bekommst du (ohne Angabe eines Index) die Member des Arrays und nicht die des Objekts. Das Hinzufügen von Eigenschaften führt dann gar zu einem Fehler, da man keine Eigenschaften zu einen Array hinzufügen kann.
$M= Get-Member $InputObject
Write-Host $M
Write-Host ($M | Out-String)
Gruß Thomas
Series: Powershell
Powershell: Office Programme inkl.- Bit-Version Auslesen (german)2W11: Aufgabenplanung führt PS Copy-item nicht aus (german)3Powershell remote Session: UnauthorizedAccessException (german)3Powershell eigenes Objekt in Funktion verändern (german)2Powershell individueller Rückgabewert von AddClick (german)7Aufgabenplanung: Powershell Script im Hintergrund mit Userbenachrichtigung im Vordergrund (german)Powershell: Aufgabe im Hintergrund MsgBox in Vordergrund (german)25