【问题标题】:Trust relationship auto fix script信任关系自动修复脚本
【发布时间】:2016-11-25 11:55:30
【问题描述】:

我正在尝试为我的服务台员工编写一个脚本来自动修复域环境中的常见问题“信任关系错误”,他们可以在其中运行带有所需变量的脚本

options : 使用 power-shell 或 PsExec 并且应该接受天真的用户的用户输入。

在 google 研究之后,查看 powershell 一条简单的线路可能会解决问题:“Test-COMputerSecureChannel -Repair”也不需要重新启动

根据我的简单知识,powershell 面临的挑战(应该在远程机器上启用远程命令执行,这不是一个选项

> PsExec 默认情况下不可用 windows 7 / citrix 员工

计算机名称:SAWD456335355(应该是可变的 - 用户输入) 本地管理员:管理员 本地密码:变量因计算机而异(应该是用户输入以及接受特殊字符)

==================================

弹出的权限管理员级别 1 帐户

在尝试使用团队查看器更改本地计算机时,弹出窗口会询问域凭据,例如: 用户名会像:admingroup1 权限管理员密码:password@123

【问题讨论】:

标签: powershell relationship psexec trust


【解决方案1】:

您可以通过三种方式解决此问题。

  1. 您实际要求的是,修复安全通道。您很可能需要一个本地管理员帐户(本地管理员帐户,因为信任关系已损坏)以及 Psexec 和 PowerShell 远程处理的组合。

    $Computer = Read-Host "输入计算机名称"

    $AdminAccount = Read-Host "输入本地管理员帐户"

    $SecurePassword = Read-Host "输入本地管理员密码" -AsSecureString

    $BSTR = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecurePassword)

    $UnsecurePassword = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)

    $Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $AdminAccount, $SecurePassword

    Psexec.exe \$Computer -u $AdminAccount -p $UnsecurePassword -h -d powershell.exe "enable-psremoting -force"

    Invoke-Command -ComputerName $Computer -Credential $Credential -ScriptBlock { 测试-ComputerSecureChannel-Repair }

  2. 将域设置为不重置域计算机帐户。在大多数环境中可能不建议这样做。

  3. 在我的环境中,我发现最好的解决方案是防止自动系统恢复(可能在断电或类似情况后),该恢复时间早于此处讨论的计算机密码: https://support.microsoft.com/en-us/kb/295049

我的解决方案是运行计划任务来删除早于当前计算机密码的系统还原点。

 Get-ComputerRestorePoint |`  
 Where {$_.ConvertToDateTime($_.CreationTime) -lt  $PasswordLastSet} | `
     Delete-ComputerRestorePoints

如果没有留下系统还原点,脚本会创建一个新的。 详细的文章可以在这里找到: http://blog.buktenica.com/issues-with-domain-membership-after-system-restore/

【讨论】:

  • 目前还不能删除旧的还原点,我们有很多机器通过 vpn 连接,但这对他们来说是个悲剧。我仍然感谢您的意见,并且一定会努力解决长期..但截至目前仍在寻找 powershell 或 psexce 中的选项
  • 我真的很感谢你的努力,并且肯定会寻找第二个和第三个选项,看看我们已经应用了本地管理员和密码的 psexce 和 powershell 的组合。我需要运行吗?该脚本使用来自帮助台机器的我的帮助台特权帐户... ?? psexce 是否应该出现在受影响的计算机上? ...最终的脚本是什么..谢谢
  • 要添加更多愚蠢的问题,psexec 是否应该出现在同一个帮助台操作员配置文件中,或者我可以从共享目录中调用它>?因为我觉得如果在他们的机器上不可用会更安全.. 任何风险影响:如果我启用 powershell 远程处理...一旦命令成功执行,我可以禁用吗..
  • PsExec 需要对帮助台操作员和计算机可用,但它可以位于远程共享上。我能看到的唯一安全优势是远程共享是否具有执行权限但没有复制权限,但这是一个非常有限的好处,因为它是一个公开可用的二进制文件。使用的帐户将需要远程 PowerShell 权限,并且需要以前登录到计算机,或者是本地帐户,因为到域的安全通道已损坏。我在所有客户端计算机上都启用了远程 PowerShell。禁用没有任何好处,因为任何本地管理员都可以使用 Psexec 重新启用。
  • 它似乎无法工作,psExec无法连接,我不知道为什么!!
猜你喜欢
  • 2014-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-17
  • 2013-11-25
  • 1970-01-01
相关资源
最近更新 更多