0

以下に示すディスクレベル情報を取得するために実行しているスクリプトがあります。

ディスク.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 マシン自体で実行すると、出力は次のようになります。

レターディスク
------ ----
    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

これを実行すると、次のような出力が得られます。

レターディスク
------ ----
    ひ: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を使用してスクリプトを実行すると、出力全体を取得できたため、シェルがこれを行っていないと考えています。

4

1 に答える 1