Remote per Script Lizenzen austauschen
Hallo liebe ITLer Gemeinde,
ich bin neu hier und hoffe hier auf einen guten Austausch sowie neue Erfahrungen bzw. Ideen..
Ich bin nun seit 27 Jahren im IT Geschäft tätig.
Da ich mich nun endlich mit dem Scripten beschäftigen möchte (räusper ..::: Muss )
möchte ich nun den Anfang machen und gerne auf eure Erfahrungen zurückgreifen.
Ich such nun seit einigen Tagen eine gute Möglichkeit bei via Remote in Form eines Scriptes
Lizenzen auf dem Server aus zu tauschen.
Folgendes habe ich bereits im Internet erfolgreich zurecht gesucht.
Komme jedoch einfach nicht mehr weiter.. .. ...
Was mir dieser Stelle noch fehlen würde...
- Parameter mit Login Informationen
- Fehlt hier nicht der Befehl zum aktivieren der Lizenz? (slmgr.vbs /ato)
- Wurde der Lizenzkey erfolgreich ausgetauscht? (slmgr.vbs /dil)
- Schreibe Ergebnise in eine Log-Datei
Könnt Ihr mir helfen?
Vielen lieben Dank im Voraus
IMicha
ich bin neu hier und hoffe hier auf einen guten Austausch sowie neue Erfahrungen bzw. Ideen..
Ich bin nun seit 27 Jahren im IT Geschäft tätig.
Da ich mich nun endlich mit dem Scripten beschäftigen möchte (räusper ..::: Muss )
möchte ich nun den Anfang machen und gerne auf eure Erfahrungen zurückgreifen.
Ich such nun seit einigen Tagen eine gute Möglichkeit bei via Remote in Form eines Scriptes
Lizenzen auf dem Server aus zu tauschen.
Folgendes habe ich bereits im Internet erfolgreich zurecht gesucht.
Komme jedoch einfach nicht mehr weiter.. .. ...
$servers = @("Server1", "Server2") # Ersetze mit deinen Servernamen
Installiere die ESU-Lizenz
try {
slmgr.vbs /ipk $key
Write-Host "ESU-Lizenz erfolgreich auf $env:COMPUTERNAME installiert."
} catch {
Write-Host "Fehler bei der Installation der ESU-Lizenz auf $env:COMPUTERNAME: $_"
}
Was mir dieser Stelle noch fehlen würde...
- Parameter mit Login Informationen
- Fehlt hier nicht der Befehl zum aktivieren der Lizenz? (slmgr.vbs /ato)
- Wurde der Lizenzkey erfolgreich ausgetauscht? (slmgr.vbs /dil)
- Schreibe Ergebnise in eine Log-Datei
Könnt Ihr mir helfen?
Vielen lieben Dank im Voraus
IMicha
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 670538
Url: https://administrator.de/forum/remote-per-script-lizenzen-austauschen-670538.html
Ausgedruckt am: 08.01.2025 um 12:01 Uhr
9 Kommentare
Neuester Kommentar
Hallo IMicha,
also zum einen ist slmbgr.vbs kein Powershell-Command. Das soll doch Powershell sein oder? Falls ja wäre Invoke-Command eine Interessante Anlaufstelle für dich. Und ggf. cscript.
Gruß
also zum einen ist slmbgr.vbs kein Powershell-Command. Das soll doch Powershell sein oder? Falls ja wäre Invoke-Command eine Interessante Anlaufstelle für dich. Und ggf. cscript.
Gruß
Moin,
ich hab da noch was für:
Liste mit 1 Server pro Zeile als TXT speichern, Skript speichern als z.b. Set-WindowsKey.ps1, ausführen mit z.B.:
ich hab da noch was für:
param (
[Parameter(Mandatory=$true)]
[string[]]$Servers, # Liste der Servernamen
[Parameter(Mandatory=$true)]
[string]$LicenseKey, # Neuer Lizenzschlüssel
[Parameter(Mandatory=$true)]
[PSCredential]$Credential, # Anmeldeinformationen
[Parameter(Mandatory=$false)]
[string]$LogPath = "C:\Logs\LicenseUpdate.log" # Pfad zur Log-Datei
)
function Write-Log {
param (
[string]$Message
)
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
$logMessage = "$timestamp - $Message"
Write-Output $logMessage
Add-Content -Path $LogPath -Value $logMessage
}
$logDir = Split-Path -Path $LogPath
if (!(Test-Path -Path $logDir)) {
New-Item -Path $logDir -ItemType Directory -Force
}
foreach ($server in $Servers) {
Write-Log "Starte Lizenzaktualisierung auf Server: $server"
try {
Invoke-Command -ComputerName $server -Credential $Credential -ScriptBlock {
param ($key)
$cscriptPath = "$env:SystemRoot\System32\cscript.exe"
$slmgrPath = "$env:SystemRoot\System32\slmgr.vbs"
# Installiere den Lizenzschlüssel
$installResult = & $cscriptPath //NoLogo $slmgrPath /ipk $key
Start-Sleep -Seconds 5
# Aktiviere die Lizenz
$activateResult = & $cscriptPath //NoLogo $slmgrPath /ato
Start-Sleep -Seconds 2
# Überprüfe den Lizenzstatus
$status = & $cscriptPath //NoLogo $slmgrPath /dli
return @{
InstallResult = $installResult
ActivateResult = $activateResult
Status = $status
}
} -ArgumentList $LicenseKey -ErrorAction Stop | ForEach-Object {
Write-Log "Server: $server"
Write-Log "Installations-Ergebnis: $($_.InstallResult)"
Write-Log "Aktivierungs-Ergebnis: $($_.ActivateResult)"
Write-Log "Lizenzstatus: $($_.Status)"
Write-Log "--------------------------------------------"
}
} catch {
Write-Log "Fehler bei der Lizenzaktualisierung auf $server : $_"
}
}
Write-Log "Lizenzaktualisierung abgeschlossen."
Liste mit 1 Server pro Zeile als TXT speichern, Skript speichern als z.b. Set-WindowsKey.ps1, ausführen mit z.B.:
.\Set-WindowsKey.ps1 -Servers (Get-Content C:\servers.txt) -LicenseKey "FCKGW-RHQQ2-...." -Credential (Get-Credential)
Zitat von @aqui:
kein Powershell-Command
Der TO hat ja auch gar nicht genannt welches sein bevorzugtes Scripting Tool ist! Auf PowerShell kann man wegen "Write-Host" schließen ;)
Ich rate davon ab, Powershell-Remoting überhaupt für solche trivialen Dinge zu nutzen.
Powershell-Remoting bedingt immer, dass man mit Konten, die auf (ggf. mehreren) Remotesystemen Admins sind, arbeiten muss. Ebenso müssen für das Remoting Ports geöffnet werden, die man nicht ohne Not öffnen sollte.
Besser: setze geplante Tasks per GPO auf die Sache an, die können all das auch und haben Null zusätzliches Risiko.
Ein solcher Task kann zum Beispiel als Systemkonto laufen und hat so alle Rechte und kann dennoch ein Log auf eine Freigabe absondern.
Details in meinem Artikel
https://www.experts-exchange.com/articles/35931/About-the-risks-of-execu ...
Powershell-Remoting bedingt immer, dass man mit Konten, die auf (ggf. mehreren) Remotesystemen Admins sind, arbeiten muss. Ebenso müssen für das Remoting Ports geöffnet werden, die man nicht ohne Not öffnen sollte.
Besser: setze geplante Tasks per GPO auf die Sache an, die können all das auch und haben Null zusätzliches Risiko.
Ein solcher Task kann zum Beispiel als Systemkonto laufen und hat so alle Rechte und kann dennoch ein Log auf eine Freigabe absondern.
Details in meinem Artikel
https://www.experts-exchange.com/articles/35931/About-the-risks-of-execu ...
Moin,
seit wann ersetzen ESU Lizenzen den eigentliche Lizenz Schlüssel? Bis dato war das noch immer ein zusätzlich Key.
Schöne Grüße von Microsoft: https://github.com/dadorner-msft/activationws
Gruß,
Daniel
seit wann ersetzen ESU Lizenzen den eigentliche Lizenz Schlüssel? Bis dato war das noch immer ein zusätzlich Key.
Ich such nun seit einigen Tagen eine gute Möglichkeit bei via Remote in Form eines Scriptes
Lizenzen auf dem Server aus zu tauschen.Schöne Grüße von Microsoft: https://github.com/dadorner-msft/activationws
Gruß,
Daniel
Moin,
Den Instruktionen hier folgen:
https://github.com/dadorner-msft/activationws?tab=readme-ov-file#install ...
Dateien als Zip Downloaden?
Habe jedoch nicht so ganz verstanden wie es weiter gehen soll....
Habe jedoch nicht so ganz verstanden wie es weiter gehen soll....
Den Instruktionen hier folgen:
https://github.com/dadorner-msft/activationws?tab=readme-ov-file#install ...