我将多个不同大小的字符串返回到一个盒子中。我使用了一个,System.Windows.Forms.Label但不幸的是,有些字符串对于它来说太大了,无法显示。我试过用 a 替换它,System.Windows.Forms.TextBox但它不会让我将它的高度设置为超过 1 行,即使多行设置为 true,并且滚动条设置:
$objTextBox1 = New-Object System.Windows.Forms.TextBox
$objTextBox1.Multiline = True;
$objTextBox1.Location = New-Object System.Drawing.Size(150,10)
$objTextBox1.Size = New-Object System.Drawing.Size(300,200)
$objTextBox1.Scrollbars = Scrollbars.Vertical
$objForm1.Controls.Add($objTextBox1)
Run Code Online (Sandbox Code Playgroud)
有什么我在这里想念的吗?
我正在尝试使用WMI来获取计算机登录会话的开始时间:
$starttimes = Get-WmiObject Win32_LogonSession -ComputerName HM-ITS-KLP |
select starttime
Run Code Online (Sandbox Code Playgroud)
这给了我格式化为的日期:
20170120075444.819609+000 (yyyymmddhhmmss.??????+???)
使用String.ToCharArray()我设法将字符串转换为数组的方法,以便我可以更好地重组它,尽管在这种格式中它不会接受这样:
方法调用失败,因为[Selected.System.Management.ManagementObject]不包含名为"ToCharArray"的方法.
整码如下:
$starttimes = Get-WmiObject Win32_LogonSession -ComputerName HM-ITS-KLP |
select StartTime
foreach ($line in $starttimes) {
$dateArray = $line.ToCharArray()
$time = $dateArray[8..9] + ":" + $dateArray[10..11] + ":" + $dateArray[12..13]
$date = $dateArray[6..7] + "/" + $dateArray[4..5] + "/" + $dateArray[0..3]
$LoginTimeAndDate1 = $time + " " + $date
$LoginTimeAndDate = $LoginTimeAndDate1 -join ""
}
Run Code Online (Sandbox Code Playgroud)