実行中のスクリプトがあり、以下に示すディスクレベル情報を取得しています。winrmを使用して出力が切り捨てられる
disk.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マシン自体に上記のスニペットを実行すると、出力は次のとおりです。
Letter Disk ------ ---- H: XXX_46_0_80987_XXXXX_b2fd_47bb_bc36_aaf4f3029a00 L: XXX_46_0_80987_XXXXX_b2fd_47bb_bc36_aaf4f3029a00 Q: XXX_46_0_80987_41a13cd9_b2fd_47bb_bc36_aaf4f3029a00
今、私は同じスクリプトを実行しようとしていますpywinrm
を使用してください。
disk.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は出力を切り捨てているか、シェルが出力を切り捨てているかどうかにいくつかの光を当てるしてください。
PowerShellを使用してスクリプトを実行すると、出力全体を取得できたため、シェルがこれを実行していないと考えています。
私はそれを持っていますが、フォーマットテーブルはスクリプト実行の一部である必要がありますか? –
PowerShellコードなので、PowerShellコードの一部である必要があります。Pythonコードではありません。 –
ok!それを試してみる –