Powershell Get-Service сообщает неверную информацию - PullRequest
0 голосов
/ 19 июня 2020
• 1000 Пока я обнаружил 2 проблемы.
  1. Get-Service -name "MyService" -ComputerName $myComputer "сообщит, что служба с таким именем не найдена, но если я перечислю все службы: Get-Service -ComputerName $myComputer it will say "This operation might require other privileges." Это проблема, потому что я Я сообщаю, что службы не существует, но она есть на самом деле.

  2. По какой-то причине, если я просто запускаю сценарий PowerShell из командной строки вручную, он перечисляет намного больше серверов и большую часть информация верна.Но я планирую выполнение сценария PowerShell из диспетчера задач windows с той же учетной записью, информация неверна и сообщает о гораздо меньшем количестве серверов.

Скрипт:

#$domain = [system.directoryservices.activedirectory.domain]::GetCurrentDomain().Name
#$numerOfDomainControlers= nslookup $domain
Clear-Content .\log.txt

$startTime = Get-Date

$allDCs = ((Get-ADForest).Domains | %{ Get-ADDomainController -Filter * -Server $_ } | Where-Object { $_.hostname -notlike '*root*' }).hostname


foreach( $allDC in $allDCs){



$testConnection = Test-Connection $allDC -Quiet -Count 1 -ErrorAction SilentlyContinue

Write-Host 

if($testConnection -like "true") {

    $SyncStatus = Get-Service -name "MyServicesName" -ComputerName $allDC  -ErrorAction SilentlyContinue 


    if($SyncStatus.length -eq 0) {
    Write-Host "MyServicesName doesn't exists on:"$allDC 

    $SyncStatus = "MyServicesName doesn't exists on:" + $allDC 
    $logs = $SyncStatus |Out-File .\log.txt -Append
                                         }
                                            else{
                                                write-host "MyServicesName on "$allDC "is: " $SyncStatus.status
                                                $SyncStatus = "MyServicesName on " + $allDC + "is: " + $SyncStatus.status
                                                 $logs = $SyncStatus |Out-File .\log.txt -Append
                                                }

                                    }
                                    else 
                                    {
                                    Write-Host "Test Connection to Server failed:"$allDC 
                                    $SyncStatus = "Test Connection to Server failed:" + $allDC 
                                    $logs = $SyncStatus |Out-File .\log.txt -Append
                                    }


}


$endTime = Get-Date
$totalTime =  New-TimeSpan -start $startTime -end $endTime
Write-Host $totalTime
$logs = "Total Time in Seconds:" + $totalTime |Out-File .\log.txt -Append
                                                                #send Email

                                                                $logs = Get-Content .\log.txt
                                                                $serverName = $env:computername
                                                                $LogTime = Get-Date -Format "MM/dd/yyyy hh:mm:ss"
                                                                $FromAddress = "email.com"
                                                                $ToAddress = "email.com"                                                                
                                                                foreach($log in $logs)
                                                                {
                                                                $Messagebody = $messagebody + $log + "`r`n" |Out-String
                                                                }
                                                                [string] $MessageSubject ="Status Report runing on " + $serverName +"  " + $endTime
                                                                $SendingServer = "server"
                                                                Send-MailMessage -to $ToAddress  -from $FromAddress -subject $MessageSubject -smtpServer  $SendingServer -body $Messagebody -Attachments .\log.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...