我正在尝试运行脚本来设置自动记录到服务器。我的问题是,该帐户是远程计算机的本地配置文件,我遇到了问题。
脚本:
@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”
对本地帐户使用句点(点)。这可能会导致您想要的。
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 %%i
或nbtstat -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)