Невозможно запустить сценарий PowerShell для разных доменов. - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь написать скрипт для получения сертификатов IIS с истекшим сроком действия по доменам.Я могу запустить скрипт без каких-либо ошибок, находясь в том же домене, что и список серверов, но не могу пересечь домены, даже если у пользователя, которого я использую, есть доступ администратора ко всем доменам.

Я попытался использовать New-PSSesiion и передать его в Invoke-Command, и я получаю ошибку: WindRM не может обработать запрос.

cd C:\Deploy\Certs

Enable-PSRemoting –force

            #set up path and user variables
            $AESKeyFilePath = “aeskey.txt” # location of the AESKey                
            $SecurePwdFilePath = “credpassword.txt” # location of the file that hosts the encrypted password                
            $user = "DOMAIN\Username" # User account login 

            #use key and password to create local secure password
            $AESKey = Get-Content -Path $AESKeyFilePath 
            $pwdTxt = Get-Content -Path $SecurePwdFilePath
            $securePass = $pwdTxt | ConvertTo-SecureString -Key $AESKey

           #crete a new psCredential object with required username and password
            $adminCreds = New-Object System.Management.Automation.PSCredential($user, $securePass)



$ServerList=Get-Content .\components\hosts.txt

foreach ( $Server in $ServerList ) {
    Write-Host "Checking $Server is up"
     if ( ( Test-Connection $Server -Quiet ) -eq $True ) {

     # Open remote session:
 #$session = New-PSSession -ComputerName $Server -Credential  $adminCreds -ThrottleLimit 16


Invoke-Command -ComputerName $Server -ScriptBlock  {

Import-Module -Name WebAdministration

Get-ChildItem -Path IIS:SSLBindings | ForEach-Object -Process `
 {
    if ($_.Sites)
    {
        $certificate = Get-ChildItem -Path CERT:LocalMachine/My |
        Where-Object -Property Thumbprint -EQ -Value $_.Thumbprint



        [PsCustomObject]@{
            HostName                     = $Env:COMPUTERNAME
            Sites                        = $_.Sites.Value
            CertificateFriendlyName      = $certificate.FriendlyName
            CertificateDnsNameList       = $certificate.DnsNameList
            CertificateExpiration         = $certificate.NotAfter
            CertificateIssuer            = $certificate.Issuer
        }  


    } 

}  
   }|  Out-File .\expired_Certs.txt -append #-NoTypeInformation
  } 
  }  

сообщение об ошибке:

WinRM не может обработать запрос.При использовании аутентификации Kerberos произошла следующая ошибка с кодом ошибки 0x80090311: Мы не можем войти в систему с помощью этих учетных данных, поскольку ваш домен недоступен.Убедитесь, что ваше устройство подключено к сети вашей организации и повторите попытку.Если вы ранее входили на это устройство с другими учетными данными, вы можете выполнить вход с этими учетными данными.

1 Ответ

0 голосов
/ 20 мая 2019

РЕШИТЬ! Я прочитал справку по устранению неполадок и выполнил следующую команду, чтобы добавить серверы к доверенным хостам:

Set-Item wsman:localhost\client\trustedhosts *.domain.name
...