将Powershell变量导入VB.net
我正在尝试使用以下代码获取用户的最后登录日期。我的问题是将powershell变量$MailboxData中的powershell结果获取到VB.net变量中 displayname=obj.Membersalias.Value.ToString行只返回一个错误 有人知道吗将Powershell变量导入VB.net,vb.net,powershell,Vb.net,Powershell,我正在尝试使用以下代码获取用户的最后登录日期。我的问题是将powershell变量$MailboxData中的powershell结果获取到VB.net变量中 displayname=obj.Membersalias.Value.ToString行只返回一个错误 有人知道吗 Dim scripttext As String scripttext = "$MailboxData = @() " & vbCrLf & _ "$mailboxes = Get-
Dim scripttext As String
scripttext = "$MailboxData = @() " & vbCrLf & _
"$mailboxes = Get-Mailbox -ResultSize unlimited " & vbCrLf & _
"foreach ($mailbox in $mailboxes) { " & _
"$DBObject = new-object PSObject " & _
"$DBObject | add-member NoteProperty -Name Alias $Mailbox.alias " & _
"$DBObject | add-member NoteProperty -Name LastLogonTime (Get-MailboxStatistics $mailbox.alias).LastLogonTime " & vbCrLf & _
"$MailboxData = $MailboxData + $DBObject " & _
"}" & vbCrLf & _
"$mailboxData " & vbCrLf
powershell.Commands.AddScript(scripttext)
powershell.Runspace = myRunSpace
results = powershell.Invoke()
Dim displayname As String
Dim lastLogon As String
For Each obj As PSObject In results
Try
displayname = obj.Members("alias").Value.ToString
Catch ex As Exception
displayname = Nothing
End Try
Try
lastLogon = Convert.ToDateTime(obj.Members("LastLogonTime").Value.ToString)
Catch exc As Exception
lastLogon = Nothing
End Try
Next
看起来像是VB代码的以下几行:
"foreach ($mailbox in $mailboxes) { " & _
"$DBObject = new-object PSObject " & _
"$DBObject | add-member NoteProperty -Name Alias $Mailbox.alias " & _
以单行形式传递到PowerShell,且没有换行符。我会将vbCrLf添加到这些行的末尾,或者在每个$DBObject行的末尾使用PowerShell语句分隔符,例如:
"foreach ($mailbox in $mailboxes) { " & _
"$DBObject = new-object PSObject; " & _
"$DBObject | add-member NoteProperty -Name Alias $Mailbox.alias; " & _