信任关系自动修复脚本

时间:2016-07-21 18:32:20

标签: powershell relationship psexec trust

我正在尝试提出一个脚本来自动修复域环境中的常见问题"信任关系错误"对于我的服务台员工,他们只需运行带有必需变量的脚本

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

查看powershell简单的一行可能会解决谷歌研究后的问题:" Test-COmputerSecureChannel -Repair"这也不需要重启

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

>默认情况下,Windows 7 / Citrix员工

不提供PsExec

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

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

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

在尝试使用团队查看器更改本地计算机时,弹出窗口将询问域凭据,例如: 用户名就像:admingroup1 privlege admin的密码:password @ 123<例如

1 个答案:

答案 0 :(得分:0)

有三种方法可以解决这个问题。

  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

    < #Enable PS Remoting#>

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

    <#修复安全频道#>

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

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

  3. 在我的环境中,我发现最好的解决方案是防止自动系统恢复(可能在断电或类似情况下),这比计算机密码更早,如下所述: https://support.microsoft.com/en-us/kb/295049

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

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

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