Так что я нашел странное поведение:
У меня есть импортированный файл CSV с этими названиями:переменной Powershell заверяет объект CSV
$connections | Get-Member
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Access Method NoteProperty System.String Access Method=SSH
Accessable NoteProperty System.String Accessable=N/A
Application NoteProperty System.String Application=Test
Authentication type NoteProperty System.String Authentication type=rsa
Node NoteProperty System.String Node=ComputerName
Port NoteProperty System.String Port=22
User NoteProperty System.String User=User
Теперь, если я сделаю новую переменное из одной строки
$x = $connections[0]
Тогда-то изменить в $ х
$x.Accessable = $true
изменение будет быть видимым в $ соединениях [0].
$connections[0].Accessable
True
Это нормальное поведение? Если да, то как я могу создать новую переменную с похожим объектом, как эта строка?
Редактировать: Powershell array assignment assigns variable, not value? о массивах или многомерных массивах, этот вопрос касается передачи объекта (копии). В этом случае простые ответы на этой странице не работают. Проблема все еще происходит.
Не полностью дублировать IMO. Частью вопроса «как бороться с этим конкретным объектом» не ответил. – PetSerAl
Это дубликат, потому что речь идет о копировании по ссылке. У этого дубликата есть решение. Хотя этот вопрос также содержит альтернативу. – JasonMArcher