我正在运行一个脚本来获取下面给出的磁盘级别信息。在
磁盘.ps1:
Get-WmiObject Win32_DiskDrive | % {
$disk = $_
$partitions = "ASSOCIATORS OF " +
"{Win32_DiskDrive.DeviceID='$($disk.DeviceID)'} " +
"WHERE AssocClass = Win32_DiskDriveToDiskPartition"
Get-WmiObject -Query $partitions | % {
$partition = $_
$drives = "ASSOCIATORS OF " +
"{Win32_DiskPartition.DeviceID='$($partition.DeviceID)'} " +
"WHERE AssocClass = Win32_LogicalDiskToPartition"
Get-WmiObject -Query $drives | % {
New-Object -Type PSCustomObject -Property @{
Disk = $disk.SerialNumber
Letter = $_.DeviceID
}
}
}
}
当我在windows计算机上执行上述代码片段时,输出是:
^{pr2}$现在我尝试使用pywinrm
执行相同的脚本。在
磁盘.py:
complete = <string which is equivalent to above script>
winrm_connector = winrm.Session('*.X.X.X', auth=('XXXX','XXXXXX.1'))
response = winrm_connector.run_ps(complete)
print response.std_out
执行此操作时,我得到的输出为:
Letter Disk ------ ---- H: XXX_46_0_80987_XXXXX_b2fd_47bb_b... L: XXX_46_0_80987_XXXXX_b2fd_47bb_b... Q: XXX_46_0_80987_41a13cd9_b2fd_47bb_b...
请说明WinRM是在截断输出还是shell在截断输出。在
我认为shell没有这样做,因为当我使用PowerShell执行脚本时,我能够得到整个输出。在
PowerShell自动截断宽列。为了避免您可以通过PowerShell代码中的
Format-Table -AutoSize
来使用自动调整列大小。由于您是通过Python调用该命令的,而Python不知道PowerShell对象,所以您可能还希望通过管道将Format-Table
输出转换为字符串(使用一个较大的行长度值)。在相关问题 更多 >
编程相关推荐