如何通过命令提示符查找具有用户名的所有机器

如何通过命令提示符查找具有用户名的所有机器

我知道我的用户凭证,它们是User:JohannesPasswort:Pass12345
我可以使用 找到我所属的群组net

net user /domain Johannes

这给了我我所在的群组。

*BELIEVER51
*SOUTHHAMPTONBASKETBALL
*NEVERSAYDIE

我知道该BELIEVER51组有权访问ARE42。我可以使用批处理文件通过远程桌面协议
连接到。ARE42

cmdkey /generic:"ARE42" /user:"Johannes" /pass:"Pass12345"
start mstsc /v:ARE42

我只有一个 Windows 命令提示符。
如何发现所有可以连接的服务器?

答案1

如果您可以使用 powershell,您可以运行此脚本:

Import-Module ActiveDirectory
$Servers = Get-ADComputer -filter {OperatingSystem -like "*Server*"} -Properties OperatingSystem
$MyServers = @()

$User = "Johannes"
$Password = "Pass12345"

$Credential = New-Object System.Management.Automation.PSCredential $User,($Password | ConvertTo-SecureString -AsPlainText -Force)
foreach($Server in $Servers) {
   if( New-PSSession $Server.Name -Credential $Credential -ErrorAction Ignore ) {
      $MyServers += $Server.Name
    }
}

它将尝试使用提供的凭据在域中的每个服务器中创建会话。如果您可以连接到它,它将成功并将服务器名称添加到 $MyServers。然后您可以将变量导出到这样的列表中:

$MyServers | Out-File "c:\Temp\MyServers.txt"

相关内容