用于保存远程计算机本地帐户的RDP凭据的批处理文件

问题描述 投票:1回答:1

我正在尝试运行脚本来设置自动记录到服务器。我的问题是,该帐户是远程计算机的本地配置文件,我遇到了问题。

脚本:

@ECHO off
FOR /F %%i IN (IPs.txt) DO (
    ECHO =====================
    ECHO Starting for %%i
    cmdkey /generic:"%%i" /user:"local\user" /pass:"password"
    ECHO =====================

)

使用上面的内容,RDP没有检测到本地方式本地...

IPs.txt文件列出了服务器的所有IP地址。我唯一能想到的是拥有另一个包含计算机名称的文本文件,但我不知道该怎么做。

示例:cmdkey / generic:“%% i”/ user:“%% hostname \ user”/ pass:“password”

batch-file cmd network-programming rdp
1个回答
0
投票

对本地帐户使用句点(点)。这可能会导致您想要的。

cmdkey /generic:"%%i" /user:".\user" /pass:"password"

或者根据你的需要拿你的pick of environmental variable ... %ComputerName%%USERDOMAIN%%USERDOMAIN_roamingprofile%%LOGONSERVER%

示例:cmdkey /generic:"%%i" /user:"%ComputerName%\user" /pass:"password"

对于远程服务器本地的帐户,一个简单的非限定用户名应该工作...

cmdkey /generic:"%%i" /user:"user" /pass:"password"

除此之外,如果您需要根据IP地址解析您的远程服务器名称,我想您可以解析ping -a %%inbtstat -A %%i ...或使用DNS使用nslookup

要将其中一个合并到批处理文件中,请尝试以下操作...:

@Echo Off
SETLOCAL EnableDelayedExpansion

FOR /F %%i IN (IPs.txt) DO (
    ECHO =====================
    Echo Resolving IP Address %%i...
    set CurrentIP=%%i
    Call :ResolveIpAddress
    echo Resolved Name = !ipName!
    Echo Creating Credentials
    cmdkey /generic:"%%i" /user:"!ipName!\user" /pass:"password"
    ECHO =====================
)

pause

:ResolveIpAddress
For /F "tokens=2" %%a IN ('ping -n 1 -a %CurrentIP%') Do (set ipName=%%a && exit /b)
© www.soinside.com 2019 - 2024. All rights reserved.