2013-09-30 86 views
1

我想写一个脚本,我可以在远程机器上运行EXE来停止进程,然后重新启动服务器。我有我认为需要的一切,但是IP地址的输出将以@ {ipaddress = xxx.xxx.xxx.xxx}形式提供。它告诉我,我的服务器的IP地址有错误。这是我得到的。Powershell输出过滤器

$action = "reboot" 

function LoadServerList { 
    param([string]$sFileName); 

    $aServers = Import-Csv $sFileName | Where-Object { !($_.servername.StartsWith('#')) -and ($_.servername -ne ""); }; 
    $aServers | Add-Member -MemberType NoteProperty -Name status -Value "unknown"; 

    return $aServers; 
} 

$IPADDRESS = Import-Csv -path D:\Scripts\RebootSequence\LABIPAddress.csv | Where-Object { !($_.ipaddress.StartsWith('#')) -and ($_.ipaddress -ne ""); } 

$CMD = 'icadmin' 
$arg1 = 'tv' 
$arg2 = 'admin' 
$arg3 = 'admin1' 
$arg4 = 'D:\Avaya\IC73\bin\icadmin.exe' 
$arg5 = '$SRVIP' 

& $CMD $arg1 $arg2 $arg3 $IPADDRESS $arg4 

回答

2

尝试修改此:

$IPADDRESS = Import-Csv -path D:\Scripts\RebootSequence\LABIPAddress.csv | Where-Object { !($_.ipaddress.StartsWith('#')) -and ($_.ipaddress -ne ""); } 

这样:

$IPADDRESS = Import-Csv -path D:\Scripts\RebootSequence\LABIPAddress.csv | Where-Object { !($_.ipaddress.StartsWith('#')) -and ($_.ipaddress -ne ""); } | Select-Object -Expand ipaddress