PowerShell中的Windows cmd.exe输出

时间:2011-03-19 03:35:30

标签: powershell cmd

我有一个用于在其他计算机上远程执行命令的脚本,但是...当使用Windows cmd.exe命令时它不会写入远程服务器上的文件。这是代码。

$server = 'serverName'  
$Username = 'userName'  
$Password = 'passWord'  
$cmd = "cmd /c ipconfig"  

########################  

########################  

$ph = "C:\mPcO.txt"  
$rph = "\\$server\C$\mPcO.txt"  

$cmde = "$cmd > $ph"  
$pass = ConvertTo-SecureString -AsPlainText $Password -Force  
$mycred = new-object -typename System.Management.Automation.PSCredential -argumentlist  "$Username",$pass  
Invoke-WmiMethod win32_process -name create -ComputerName $server -ArgumentList $cmde  Credential $mycred  
cmd /c net use \\$server\C$ $password /USER:$username  
Get-Content $rph  
Remove-Item $rph  
cmd /c net use \\$server\C$ /delete  

如你所见,我们只需写

$cmde = "$cmd > $ph"  

如果我使用PowerShell命令,我使用

$cmde = "$cmd | Out-File $ph"  

它工作正常。任何建议赞赏

1 个答案:

答案 0 :(得分:5)

你为什么这么做?您可以使用WMI获取远程计算机的IP详细信息。

Get-WMIObject -ComputerName "RemoteServer" Win32_NetworkAdapterConfiguration -Filter "IPEnabled=$true" | Out-File $env:TEMP\ipdetails.txt

现在,一旦拥有该文件,就可以使用脚本中的命令移动它。