【问题标题】:Getting workgroup and domain computers with net view使用网络视图获取工作组和域计算机
【发布时间】:2015-03-10 10:00:28
【问题描述】:

好的,情况就是这样。我有一组windows 7电脑,大约3-8台。他们中的大多数以前都连接到更大的网络,因此它们都具有相同的域,称为win。其中一些尚未连接到这个更大的网络,也没有域。

我会将这组计算机连接到较小的网络中。我将取其中的一部分并相互连接。我将完成多次,而不是一直使用相同的子集。

执行此操作时,我希望能够知道哪些计算机已连接,以及它们是否有任何共享驱动器。我为此使用了 powershell,在 powershell 脚本中我使用了net view

现在解决问题。从域计算机,我可以使用net view 获取所有其他域计算机。但我无法获取不在域中的计算机。从非域计算机我可以使用net view /domain:win 获取域计算机。但是我无法以可靠的方式获得所有计算机。

所以我在想,要么从所有计算机中删除域,然后创建一个家庭组。它们中的任何一个都不会再次使用域服务器连接到更大的网络(出于安全原因),因此这可能是最有意义的。我猜我无法将非域计算机添加到win 域而不将其连接到域服务器?

但我最想要的解决方案是如果我可以使用net view 或其他命令获取所有计算机,包括域和非域。

有什么想法吗?

【问题讨论】:

    标签: powershell


    【解决方案1】:

    对于您的域连接机器,我建议使用Get-ADComputer,例如

    $days = (Get-Date).Adddays(-7)
    Get-ADComputer -Properties lastlogondate -Filter {lastlogondate -gt $days} | select name,lastlogondate
    

    这列出了过去 7 天内登录您的域的所有计算机。其中 (-7) 是您认为是“活跃”机器的天数。 根据 AD 的大小,您可能希望将此查询锁定到特定的组织单位,以避免返回服务器等。

    在您的非域计算机上不是 100%,您是否已经有了它们的 DNS 名称,或者您是否需要在本练习中找到它们?

    【讨论】:

    • 一旦域计算机离开更大的网络,并放入我的小组,它们将永远不会再次登录到域。之后它们与computername\user-login 一起使用。所以我想我必须将lastlogondate 设置为无穷大......我没有非域计算机的DNS 名称。或者我做得很好,但我不想在脚本中列出所有这些。届时列表将需要经常更改。
    • 好吧,如果您只需要列出“所有”计算机,您可以将过滤器更改为enabled -eq $true,以确保计算机帐户仍然处于活动状态,没有理由在您的情况下使用 lastlogondate。根据我的经验,大多数域都充满了旧的计算机帐户。
    • 是否可以在 Windows 7 中使用 Get-ADComputer?我只看到了一些对win8和server2012的引用,找不到与win7相关的任何内容。默认不可用
    • 当然可用!它与客户端无关,它是一个 Active Directory cmdlet,用于查询 AD 以获取计算机帐户。如果 powershell 无法识别它,那是因为您缺少 AD 工具/管理单元。Import-Module ActiveDirectory 如果您从工作站运行它,则需要先安装 RSAT 工具:microsoft.com/en-gb/download/details.aspx?id=7887
    • 是的,试过了,还是不行。即使是这样,在所有计算机上安装大约 240mb 的更新也将比删除它们上的域更费力。因此,我将不得不研究其他选择。无论如何感谢您的努力!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 2011-02-03
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    相关资源
    最近更新 更多