脚本通过PSEXEC

时间:2016-04-21 15:25:31

标签: desktop psexec

我正在尝试创建一个脚本,我可以通过PSEXEC远程将用户添加到远程桌面用户组。我可以运行以下命令,它会成功,但我需要它以脚本形式,所以我可以通过Excel导出添加多台计算机和用户:

psexec \ remotecomputername cmd

netsh防火墙设置服务remoteadmin enable

netsh防火墙设置服务remotedesktop enable

net localgroup“远程桌面用户”/添加域名\名称

reg添加“HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server”/ v fDenyTSConnections / t REG_DWORD / d 0 / f

这就是我作为一个脚本提出的,但每次运行它时,它只是在连接后就位于PSEXEC屏幕上,并且不运行其他命令。

psexec \\ computername -e cmd / c(netsh防火墙设置服务remoteadmin enable ^& netsh firewall set service remotedesktop enable ^& net localgroup“Remote Desktop Users”/ add Domain \ username ^& reg add“HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server“/ v fDenyTSConnections / t REG_DWORD / d 0 / f)

我也试过;和&&代替^&但是在遥控器进入后似乎失败了。这只是我坚持的一点。接下来我想让它告诉我它是成功还是失败。所以,如果可以在最后添加,那么我将在下一步。

1 个答案:

答案 0 :(得分:1)

我在受限制的环境中使用的一种方法是一系列bat脚本。使用目标计算机列表创建3个bat脚本和computer.txt文件。这有丑陋的日志,但它的工作原理。

第一个脚本循环遍历计算机列表,在目标列表中的每台计算机上运行第二个脚本。

REM Zip Script 1
@ECHO ON
CD /d D:\ScheduledTasks\Zip 
FOR /f %%1 IN (servers.txt) DO CALL PushZip.bat %%1

第二个脚本创建文件结构并将PSEXEC和第三个脚本复制到每台目标计算机。

REM PushZip.bat Script 2
ECHO %2  >> DeployZip.log
ECHO %1  >> DeployZip.log
cd /d c:\ScheduledTasks\Zip
CMD /C MD "\\%1\D$\ScheduledTasks\Zip"
xcopy /Y c:\ScheduledTasks\Zip\PsExec.exe \\%1\c$\ScheduledTasks\Zip
xcopy /Y c:\ScheduledTasks\Zip\Zip.xml \\%1\c$\ScheduledTasks\Zip
xcopy /Y c:\ScheduledTasks\Zip\CreateZip_ScheduledTask.bat \\%1\c$\ScheduledTasks\Zip
timeout /t 1
PSEXEC -accepteula @servers.txt \\%1\c$\ScheduledTasks\Zip\CreateZip_ScheduledTask.bat >> DeployZip.log

第三个脚本为每台目标计算机运行PSEXEC和脚本。

REM CreateZip_ScheduledTask.bat 3rd Script
cd /d C:\ScheduledTasks\Zip
ECHO "CREATING TASK"
SCHTASKS /CREATE /TN CompanyTasks\Zip /XML "C:\ScheduledTasks\Zip\Zip.xml" >> CreateZip_ScheduledTask.log
ECHO "Does new Zip task exist?"
SCHTASKS /QUERY /TN CompanyTasks\Zip >> CreateZip_ScheduledTask.log