Вывод Windows cmd.exe в PowerShell - PullRequest
0 голосов
/ 19 марта 2011

У меня есть скрипт для удаленного выполнения команд на других машинах, однако ... при использовании команд 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 Ответ

5 голосов
/ 19 марта 2011

Почему ты делаешь это нелегко?Вы можете использовать WMI для получения сведений об IP-адресе удаленного компьютера.

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

Теперь, когда у вас есть этот файл, вы можете переместить его, используя команды, которые были в вашем скрипте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...