尝试使用此方法将所有参数获取到多个PowerShell GUI文本框
foreach($tenant in $tenants) {
foreach($parameter in $parameters) {
if($Customers.SelectedItem -eq $tenant.name) {
$indexeduser = Get-MsolUser -TenantId $tenant.TenantId -UserPrincipalName $Users.Selecteditem | select -Property $parameter
New-Variable -Name "tb$parameter" -Value (New-Object System.Windows.Forms.TextBox) -Force
(Get-Variable -Name "tb$parameter").Value.Text = "$indexeduser"
(Get-Variable -Name "tb$parameter").Value.Size = New-Object System.Drawing.Size(150,30)
(Get-Variable -Name "tb$parameter").Value.Location = New-Object System.Drawing.Point($x, $y)
$form.Controls.Add((get-variable -Name "tb$parameter").Value)
$i++
if($i -eq 5 -or $i -eq 10 -or $i -eq 15 -or $i -eq 20 -or $i -eq 25 -or $i -eq 30 -or $i -eq 35 -or $i -eq 40 -or $i -eq 45) {
$x = $x + 160
$y = 270
}
$y = $y + 30
$y
}
}
}
仅像魅力一样工作,它会将文本框中的所有变量显示为
@{Department=}
似乎无法弄清楚原因。
答案 0 :(得分:0)
通过将$ indexeduser设置为$ indexeduser.parameter解决此问题
foreach($tenant in $tenants) {
foreach($parameter in $parameters) {
if($Customers.SelectedItem -eq $tenant.name) {
$indexeduser = Get-MsolUser -UserPrincipalName walter.kindblad@enzure.se | Select $parameter
$indexeduser = $indexeduser.$parameter
New-Variable -Name "tb$parameter" -Value (New-Object System.Windows.Forms.TextBox) -Force
(Get-Variable -Name "tb$parameter").Value.Text = $indexeduser
(Get-Variable -Name "tb$parameter").Value.Size = New-Object System.Drawing.Size(150,30)
(Get-Variable -Name "tb$parameter").Value.Location = New-Object System.Drawing.Point($x, $y)
$form.Controls.Add((get-variable -Name "tb$parameter").Value)
$i++
if($i -eq 5 -or $i -eq 10 -or $i -eq 15 -or $i -eq 20 -or $i -eq 25 -or $i -eq 30 -or $i -eq 35 -or $i -eq 40 -or $i -eq 45) {
$x = $x + 160
$y = 270
}
$y = $y + 30
$y
}
}
}