windows - 客户端返回值,读入服务器
问题描述
我正在尝试从远程系统获取主机名、日期和时间,其中在执行服务器端批处理文件时我没有得到想要的结果
参考:远程端批处理文件
@echo off
hostname.exe > __t.tmp
set /p host=<__t.tmp
del __t.tmp
set hst=%host%
set dt=%Date%
Set tm = %Time%
set RETURNVALUE= %host%, %Date%, %Time%
ENDLOCAL&SET %~1=%RETURNVALUE%
如果我回显“ReturnValue”,这一切都很好
和服务器端批处理文件(iplist.txt 是包含远程机器 IP 的文件)
@echo off
for /f "tokens=*" %%a in ('type iplist.txt') do (
set line=%%a
echo %line%
wmic /node:%line% process call create "cmd.exe D:\\Scripts\\RCMD_TS.bat RtVal"
echo %RtVal%
)
set %%a=
set %a=
set line=
set rt=
这将返回以下内容:
D:\Scripts>ServerSideExecuteRemoteCommand.bat
ECHO is off.
call - Alias not found.
ECHO is off.
ECHO is off.
call - Alias not found.
ECHO is off.
ECHO is off.
call - Alias not found.
ECHO is off.
ECHO is off.
call - Alias not found.
ECHO is off.
我在这里做错了什么?我也可以得到 3 个值(单独的主机名、日期和时间)而不是 1 个(返回值)我试过但它没有发生。
解决方案
这似乎很容易使用 PowerShell 完成。这不是一个完整的解决方案,但这些可能会有所帮助。当然,需要将网络配置为支持 PowerShell 远程处理。
$HostName = [Net.DNS]::GetHostByAddress('10.24.12.35').HostName
Invoke-Command -ComputerName $HostName -ScriptBlock {Get-Date}
推荐阅读
- datetime - 如何通过 Groovy setter 设置日期时间
- php - Laravel {{Form::Select}} 未将值传递给 POST 请求参数
- git - 如何在多台计算机上设置 git
- firebase - Firebase Functions 自定义域与单页应用程序
- autodesk-forge - 通过 Web API 更新 Revit 自定义属性
- angular - RxJs 将 observables 与订阅链接起来
- python - python 3 如何使 input() 不停止
- mongodb - 在不使用 $match 的情况下获取条件内数组的大小
- mysql - 使用 Sequelize 在 Feathers.js 中连接到多个 MySQL 数据库
- python - TypeError:“int”对象不可调用(生成器错误)