Powershell - informações de espaço livre por e-mail

3

Atualmente estou usando:

$emailFrom = "[email protected]"
$emailTo = "[email protected]"
$subject = "subject"
$body = "message"
$smtpServer = "mail.host.com"
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($emailFrom, $emailTo, $subject, $body)

e eu sei que com o seguinte comando eu posso descobrir o espaço livre em todo o meu disco rígido:

Get-WmiObject WIN32_logicaldisk | sort -desc freespace | select -first 3 | format-table -autosize deviceid,devicetype,providername,freespace,size,volumename;

quando tento fazer isso:

$body = Get-WmiObject WIN32_logicaldisk | sort -desc freespace | select -first 3 | format-table -autosize deviceid,devicetype,providername,freespace,size,volumename;

mas tudo o que recebo no meu email é o seguinte:

    Microsoft.PowerShell.Commands.Internal.Format.FormatStartData Microsoft.PowerShell.Commands.Internal.Format.GroupStartData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData 
Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.GroupEndData Microsoft.PowerShell.Commands.Internal.Format.FormatEndData

como posso obter meu espaço livre via e-mail usando o powershell ???

    
por s.mihai 29.05.2009 / 11:33

4 respostas

5

Tente:

$ body = Get-WmiObject WIN32_logicaldisk | sort -desc freespace | selecione-primeiro 3 | formato-tabela -autosize deviceid, devicetype, providername, freespace, size, volumename | out-string

Eu apenas tentei no meu PC e funcionou.

Para saber o motivo pelo qual isso funciona, veja:

link

JR

    
por 29.05.2009 / 13:13
3

Você pode tentar isso:

$body_array = Get-WmiObject WIN32_logicaldisk | sort -desc freespace | select -first 3 | format-table -autosize deviceid,devicetype,providername,freespace,size,volumename;
$body = $body_array.ToString();
    
por 29.05.2009 / 12:40
1

Você pode se adaptar ao meu post em esta discussão .

    
por 29.05.2009 / 12:02
0

O PowerShell está usando um fluxo de objetos do Get-WMIObject, classificando e selecionando um subconjunto, produzindo uma renderização de texto dos objetos restantes, não apenas trabalhando com texto puro. Se você deseja obter uma conversão de texto puro, basta alterar sua chamada para a tabela de formatos para usar o objeto selecionado.

    
por 29.05.2009 / 19:35