iSCSI イニシエーターの IP アドレスとそれぞれの ID のリストを出力するこの小さな PS スクリプトがあります。今、私はこの情報を使ってもっと広範なことをしたいと思っています.PSとその仕組みをよく知らないので、スクリプトをPythonに移行してそこから続けたいと思います.
これで、PS スクリプトは WMI 経由でこれらを取得します。ここにあります:
function Get-IscsiPortNumber {
$PortalSummary = @()
$portalInfo = get-wmiobject -namespace root\wmi -class msiscsi_portalinfoclass
$eScriptBlock ={([Net.IPAddress]$_.ipaddr.IPV4Address).IPAddressToString}
$customLabel = @{Label="IpAddress"; expression = $eScriptBlock}
foreach ($portal in $portalInfo) {
foreach ($p in ($portal.portalinformation)) {
$CurrentPort = New-Object PsObject -Property @{ `
NetID = $p.port;`
IP = ([net.ipaddress]$p.ipaddr.IpV4Address).IPAddressToString `
}
$PortalSummary += $CurrentPort
}
}
return $PortalSummary
}
Get-IscsiPortNumber | ft -AutoSize
Pythonでは、このようなことを始めましたが、実行中に常にエラーが発生します:
import wmi
test = wmi.WMI(namespace='root\wmi',moniker='msiscsi_portalinfoclass')
どちらが言う:
Traceback (most recent call last):
File "C:\Users\rg\Desktop\diskchecktptest\getnicids.py", line 2, in <module>
test = wmi.WMI(namespace='root\wmi',moniker='msiscsi_portalinfoclass')
File "C:\Python27\lib\site-packages\wmi.py", line 1290, in connect
handle_com_error ()
File "C:\Python27\lib\site-packages\wmi.py", line 241, in handle_com_error
raise klass (com_error=err)
wmi.x_wmi: <x_wmi: Unexpected COM Error (-2147217406, 'OLE error 0x80041002', No
ne, None)>
この件についてある程度の知識がある人が私を啓発してくれることを願っています