M24*_*mit 1 arrays string powershell formatting
我正在尝试使用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)
你忘了扩展"starttime"属性.尝试更改为:
foreach ( $line in $starttimes){
$dateArray = $line.starttime.toCharArray()
Run Code Online (Sandbox Code Playgroud)
或这个:
foreach ( $line in $starttimes.starttime){
$dateArray = $line.toCharArray()
Run Code Online (Sandbox Code Playgroud)
或这个:
$starttimes = Get-WMIObject Win32_LogonSession | select -Expand starttime
foreach ( $line in $starttimes){
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
204 次 |
| 最近记录: |