Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Powershell变量导入VB.net_Vb.net_Powershell - Fatal编程技术网

将Powershell变量导入VB.net

将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-

我正在尝试使用以下代码获取用户的最后登录日期。我的问题是将powershell变量$MailboxData中的powershell结果获取到VB.net变量中

displayname=obj.Membersalias.Value.ToString行只返回一个错误

有人知道吗

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; " & _