Normales Thema Powershellscript von wsus.de funktioniert nicht (Gelesen: 4457 mal)
SD1155
WSUS Neuling
Offline


I love WSUS!

Beiträge: 6
Mitglied seit: 07.06.17
Powershellscript von wsus.de funktioniert nicht
07.06.17 um 14:38:00
Beitrag drucken  
Hallo zusammen,

ich versuche die Serverbereinigung des WSUS über ein Script zu steuern. Dazu verwende ich das Script von hier: (Du musst Dich Einloggen oder Registrieren um Multimediadateien oder Links zu sehen).

Leider gibt es beim Ausführen des Scripts einen Fehler, bei dem ich nicht weiterkomme
Code
Ausnahme beim Aufrufen von "GetUpdateServer" mit 3 Argument(en):  "Fehler bei der Anforderung für Hauptberechtigung."
In C:\Scripts\WSUS_Serverbereinigung.ps1:39 Zeichen:1
+ $wsusParent = [Microsoft.UpdateServices.Administration.AdminProxy]::g ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : SecurityException

Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.
In C:\Scripts\WSUS_Serverbereinigung.ps1:46 Zeichen:1
+ $CleanupManager = $wsusParent.GetCleanupManager();
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

Es ist nicht möglich, eine Methode für einen Ausdruck aufzurufen, der den NULL hat.
In C:\Scripts\WSUS_Serverbereinigung.ps1:48 Zeichen:1
+ $CleanupManager.PerformCleanup($CleanupScope) | out-file -filepath $L ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull
 



WSUS ist auf einem Windows Server 2016 installiert.
WSUS Serverversion: 10.0.14393.1066

Ich hoffe jemand kann mir hierbei helfen. Smiley
  
Zum Seitenanfang
 
Sunny
Microsoft MVP
*****
Offline



Beiträge: 15136
Mitglied seit: 11.02.07
Geschlecht: männlich
Re: Powershellscript von wsus.de funktioniert nicht
Antwort #1 - 08.06.17 um 11:49:49
Beitrag drucken  
Ohne vollständiges Script ist das nicht möglich. Den/die Server und die Domain kannst Du anonymisieren, den Rest bitte eins zu eins hier in einen Code Tag kopieren, Danke.
  
Zum Seitenanfang
 
SD1155
WSUS Neuling
Offline


I love WSUS!

Beiträge: 6
Mitglied seit: 07.06.17
Re: Powershellscript von wsus.de funktioniert nicht
Antwort #2 - 13.06.17 um 08:33:54
Beitrag drucken  
Das Script wurde eins zu eins von wsus.de übernommen und nur an den vorgesehenen Stellen (Servername, SMTPServer, Mailadresse) geändert.

Code
# WSUS Connection Parameters:
[String]$WSUSServer = "Servername"
[Boolean]$useSecureConnection = $True
[Int32]$portNumber = Port
[String]$LogFile = "C:\Logs\Monthly-Report.txt"
[String]$SMTPServer = "SMTPServer"


# Windows PowerShell example to check 'If File Exists'
$FileExists = Test-Path $LogFile
If ($FileExists -eq $True) {
#Alte Logdatei vorsichtshalber löschen.
Remove-Item $LogFile
}

# Cleanup Parameters:
# Decline updates that have not been approved for 30 days or more, are not currently needed by any clients, and are superseded by an aproved update.
[Boolean]$supersededUpdates = $True
# Decline updates that aren't approved and have been expired my Microsoft.
[Boolean]$expiredUpdates = $True
# Delete updates that are expired and have not been approved for 30 days or more.
[Boolean]$obsoleteUpdates = $True
# Delete older update revisions that have not been approved for 30 days or more.
[Boolean]$compressUpdates = $True
# Delete computers that have not contacted the server in 30 days or more.
[Boolean]$obsoleteComputers = $False
# Delete update files that aren't needed by updates or downstream servers.
[Boolean]$unneededContentFiles = $True

#EndRegion VARIABLES

#Region SCRIPT

# Load .NET assembly
[void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration");

# Connect to WSUS Server
$wsusParent = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer($WSUSServer,$useSecureConnection,$portNumber);

# Log the date first
date | out-file -filepath $LogFile -append -noClobber;

# Perform Cleanup
$WSUSServer | out-file -filepath $LogFile -append -noClobber;
$CleanupManager = $wsusParent.GetCleanupManager();
$CleanupScope = New-Object Microsoft.UpdateServices.Administration.CleanupScope($supersededUpdates,$expiredUpdates,$obsoleteUpdates,$compressUpdates,$obsoleteComputers,$unneededContentFiles);
$CleanupManager.PerformCleanup($CleanupScope) | out-file -filepath $LogFile -append -noClobber;
#EndRegion SCRIPT

# Der nachfolgende Teil ist von hier kopiert: http://gallery.technet.microsoft.com/scriptcenter/90ca6976-d441-4a10-89b0-30a7103d55db#content
# Mail the report...
$message = new-object Net.Mail.MailMessage
$mailer = new-object Net.Mail.SmtpClient($SMTPServer)

$message.From = "Mailadresse"
$message.To.Add("Mailadresse")
$MeinText = "WSUS - Server CleanUp Bericht " + $WSUSServer
$message.Subject = $MeinText
$message.Body = [string]::join([environment]::NewLine, (get-content $logfile))
$mailer.Send($message)

#Logdatei löschen.
Remove-Item $LogFile 

  
Zum Seitenanfang
 
Sunny
Microsoft MVP
*****
Offline



Beiträge: 15136
Mitglied seit: 11.02.07
Geschlecht: männlich
Re: Powershellscript von wsus.de funktioniert nicht
Antwort #3 - 13.06.17 um 09:29:38
Beitrag drucken  
Du hast im Script angegeben, den 'sicheren' Port zu verwenden, d.h. Du hast entweder Port 443 oder 8531 in Verwendung. Richtig? Wie steht der WSUS drin? deinWSUS.domain.TLD oder mit (Du musst Dich Einloggen oder Registrieren um Multimediadateien oder Links zu sehen).

Du kannst die Zeile mit dem Namen des WSUS auch gegen diese hier austauschen:

Code
[String]$WSUSServer = ([system.net.dns]::GetHostByName('localhost')).hostname
 



Starte das Script in einer als Admin geöffneten Powershell ISE, dabei kannst Du das Script auch zeilenweise durchlaufen. Mit F9 in der dritten Zeile einen Haltepunkt setzen, mit F5 das Script starten und jetzt mit F11 zeilenweise weiterlaufen lassen. Und jetzt kannst Du zusätzlich immer in die Variablen reinschauen was drin steht. Dazu mit der Maus auf so eine Variable fahren, dann siehst Du den Inhalt der Variable.

Darf der Mailserver auch unauthentifizierte Mails vom WSUS annehmen?
  
Zum Seitenanfang
 
SD1155
WSUS Neuling
Offline


I love WSUS!

Beiträge: 6
Mitglied seit: 07.06.17
Re: Powershellscript von wsus.de funktioniert nicht
Antwort #4 - 22.06.17 um 09:52:20
Beitrag drucken  
Hallo Sunny,

danke für deine Antwort. Leider erhalte ich keine E-Mail-Benachrichtigung, sodass ich die Antworten sehr zeitverzögert lese.

Zum Thema:
- Der Port 8530 ist in Verwendung.
- Der WSUS wird so angegeben: deinWSUS.domain.TLD

Jetzt klappt es, nachdem ich in Zeile 3 "FALSE" eingetragen habe und das Script als Administrator starte.

Danke für deine Hilfe. Das Script läuft jetzt so wie es soll!  Smiley
  
Zum Seitenanfang
 
Bookmarks: Facebook Google Google+ Linked in Twitter Yahoo
 



Nutzungsbedingungen | Datenschutz
Kontakt | RSS | Feedback | Impressum
Facebook | News einsenden