Supprimer un Membre d'un PowerShell Objet?
J'ai besoin de supprimer un membre (en particulier, NoteProperty) à partir d'un objet. Comment puis-je y arriver?
Vous devez vous connecter pour publier un commentaire.
J'ai besoin de supprimer un membre (en particulier, NoteProperty) à partir d'un objet. Comment puis-je y arriver?
Vous devez vous connecter pour publier un commentaire.
Select-Object
avecExcludeProperty
est bon pour la suppression d'une propriété à partir d'une collection d'objets.Pour la suppression d'une propriété d'un objet unique, cette méthode pourrait être plus efficace:
Remove
méthode et ne pouvait pas le faire fonctionner, mais il est logique que vous auriez à appliquer spécifiquement à la classe avec les propriétés en elle. Merci à vous deux.Get-Process -id $pid | % { $_.psobject.properties.remove('__NounName'); $_} | % __NounName
. Il n'est pas surprenant qu'il allait travailler avec un psobject ou pscustomobject même. Otoh, que j'ai été capable de le faire avec DisplayHint sur Get-Date.$_.__NounName = "some new value"
NoteProperty
membres de cette façon. Alors qu'ils se trouvent généralement sur la coutume PS objets, PS aussi ajoute parfois deNoteProperty
propriétés .Types de réseau (dont les propriétés sont de typeProperty
), commeDisplayHint
sur[System.DateTime]
, ce qui explique Keith expérience.Remove-ItemProperty
. TuyauterieGet-Service
elle a entraînéCannot find path 'C:\System.ServiceProcess.ServiceController'
..Properties.Add
? J'ai essayé, mais a eu que des erreurs sur l'argument de comptage n'importe comment beaucoup d'arguments que j'utilise.$obj = New-Object psobject; $np = New-Object psnoteproperty MyProperty, MyValue; $obj.PSObject.Properties.Add($np); $obj;
Je ne pense pas que vous pouvez supprimer à partir d'un objet existant, mais vous pouvez créer filtré.
Ou
Ce qui va effectivement obtenir le même résultat.
-Property *
est vraiment nécessaire ou qu'il ne fonctionne pas. Merci pour l'astuce Andy!J'ai trouvé le suivant aide si vous êtes intéressé par la suppression de un ou deux propriétés d'un objet de grande taille. Convertir votre objet en JSON puis de nouveau un objet de toutes les propriétés sont convertis en type NoteProperty, à quel point vous pouvez supprimer ce que vous aimez.
La conversion en JSON et à l'arrière crée une PSCustomObject. Vous aurez l'objet d'origine exprimée et ensuite vous pouvez supprimer que désiré.
Si peut dépendre du type de l'objet ou de la collection que vous souhaitez supprimer de. Souvent son une Collection (array) des objets que vous pouvez obtenir à partir de 'import-csv que vous pouvez le faire assez facilement.
Le but de retirer un bien de chacun de ces:
$MyDataCollection.PSObject.Properties.Remove('Notes')
également fait le tour.