1

我们的问题:我们公司正在使用 FortiGate,有大约 2200 个客户。他们中的大多数人都在使用笔记本电脑。有些人在在家办公几天后来到办公室时无法连接到 Internet。我们的 Fortigate 配置为监视域控制器(我们有 5 个)上用户对象的 LogonEvents(编辑:更具体地说:属性“lastlogon”),并使用设备的 IP 对用户进行身份验证。这有时会失败。我们的网络人员正在研究这个问题,但与此同时我必须在客户端找到解决方案

我发现的一种解决方法是通过客户端上的 powershell 触发用户登录事件。

New-PsSession -ComputerName $Env:ComputerName -ErrorAction ignore

但大多数情况下,它会在一个特定的域控制器(主要是默认的 Logonserver)上创建用户登录事件,这可能是错误的。锁定设备并重新登录时也是如此。

有人知道通过 Powershell 或 Batch 创建 LogonEvent 的另一种方法,我可以在其中选择身份验证域控制器吗?就像,遍历我们所有的域控制器以在客户端上创建这样的事件。编辑:不幸的是,该命令必须以用户权限运行。

编辑:如果我告诉你我的总体目标可能会有所帮助:

  • 每个客户端都通过在用户上下文中运行的 GPO 获得计划任务
  • 它由来自源 Microsoft-Windows-NetworkProfile 的事件 10000 触发(网络更改)
  • 一个 powershell 脚本检查互联网连接是否正常
  • 如果没有,脚本将尝试在不同的域控制器上触发 LogonEvent,以确保 Fortigate 代理至少获得其中一个。
4

1 回答 1

0

Mathias 的想法是正确的,但是在您实际使用它之前,仅创建一个DirectoryEntry对象(这是[ADSI]类型加速器的用途)不会发出网络请求。

这将告诉它检索name域根的属性(任何属性都可以 - 你只需要它来获取某些东西):

[ADSI]::new("LDAP://domainController.fqdn", "svc_username", "p@ssW0rd").RefreshCache("name")
于 2022-01-26T17:26:52.590 回答