Powershellskript zum abfragen der TeamViewer ID und der Umrechung von Hex in Dec
Hallo zusammen,
ich möchte gerne die TeamViewer ID´s von unseren Domänen-PC´s auslesen lassen.
Habe im Netz schon einige Beträge dazu gelesen, aber so die Lösung für das was ich genau möchte war nicht dabei.
Ich würde ein Skript (cmd oder PS) schreiben, um dann in die Reg von Windows unter folgendem Pfad zuschauen:
reg query HKLM\Software\WOW6432Node\Teamviewer /v ClientID
Das ganze würde ich mir dann auf eine Freigabe in eine TXT umleiten lassen.
Das Problem ist, ich kriege in der PS oder CMD das Ergebnis als Hexazahl angezeigt (in der GUI steht die ID mit dabei)
Gibt es eine Möglichkeit auch die Dez in der Shell anzuzeigen bzw. die HEX in DEZ umrechnen zu lassen?
Eventuell kann mir da jemand helfen oder es hat jemand eine bessere Idee.
Lg und Danke.
ich möchte gerne die TeamViewer ID´s von unseren Domänen-PC´s auslesen lassen.
Habe im Netz schon einige Beträge dazu gelesen, aber so die Lösung für das was ich genau möchte war nicht dabei.
Ich würde ein Skript (cmd oder PS) schreiben, um dann in die Reg von Windows unter folgendem Pfad zuschauen:
reg query HKLM\Software\WOW6432Node\Teamviewer /v ClientID
Das ganze würde ich mir dann auf eine Freigabe in eine TXT umleiten lassen.
Das Problem ist, ich kriege in der PS oder CMD das Ergebnis als Hexazahl angezeigt (in der GUI steht die ID mit dabei)
Gibt es eine Möglichkeit auch die Dez in der Shell anzuzeigen bzw. die HEX in DEZ umrechnen zu lassen?
Eventuell kann mir da jemand helfen oder es hat jemand eine bessere Idee.
Lg und Danke.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 341214
Url: https://administrator.de/contentid/341214
Ausgedruckt am: 26.11.2024 um 12:11 Uhr
8 Kommentare
Neuester Kommentar
Stimmen die Teamviewer Versionen aus dem Key und der laufenden Software überein?
Ich lese gerade, dass Teamviewer gerne mehrere an teilweise anderen Orten erstellt.
Ggf. Neuzuweisung wegen MAC-Adressänderung
Genau kann ich es nicht sagen, evtl. die Registry nach ClientID absuchen und den gültigen Ort finden.
Ich lese gerade, dass Teamviewer gerne mehrere an teilweise anderen Orten erstellt.
Ggf. Neuzuweisung wegen MAC-Adressänderung
Genau kann ich es nicht sagen, evtl. die Registry nach ClientID absuchen und den gültigen Ort finden.
@@Marabunta
Ich habe Teamviewer tatsächlich in zwei Versionen. Der Rückgabewert entspricht der ID der aktuellsten Version, geöffnet ist Version 9.
Die ID aus der Anwendung versteckt sich in einem Unterschlüssen "Version9"
Danke schön!
Ich habe Teamviewer tatsächlich in zwei Versionen. Der Rückgabewert entspricht der ID der aktuellsten Version, geöffnet ist Version 9.
Die ID aus der Anwendung versteckt sich in einem Unterschlüssen "Version9"
Danke schön!
Mich würde das fertige Script interessieren
Fange gerade an mich mit der Powershell zu befassen und einen ersten Fuss reinzubekommen.
1. Du wirst das Script dann ja sicher Remote ausführen, wenn ja wie gehst du das an ?
2. Was für Informationen packst du da noch alles rein um die IDs zuordnen zu können ? (Hostname, IP, MAC)
Jemand einen Tipp für mich wie man am besten mit Powershell (ohne Scripterfahrung) anfängt ?
Danke
Fange gerade an mich mit der Powershell zu befassen und einen ersten Fuss reinzubekommen.
1. Du wirst das Script dann ja sicher Remote ausführen, wenn ja wie gehst du das an ?
2. Was für Informationen packst du da noch alles rein um die IDs zuordnen zu können ? (Hostname, IP, MAC)
Jemand einen Tipp für mich wie man am besten mit Powershell (ohne Scripterfahrung) anfängt ?
Danke
Zitat von @Cachemaster:
Fange gerade an mich mit der Powershell zu befassen und einen ersten Fuss reinzubekommen.
1. Du wirst das Script dann ja sicher Remote ausführen, wenn ja wie gehst du das an ?
Fange gerade an mich mit der Powershell zu befassen und einen ersten Fuss reinzubekommen.
1. Du wirst das Script dann ja sicher Remote ausführen, wenn ja wie gehst du das an ?
Hier mal ein Beispiel zum Thema Remote (letztes Windows-Update auslesen):
$Computer = ''
$User = ''
$pw = ''
$NoResponseList = @()
$Computers = @()
#Computer-Liste aus AD auslesen
$ComList = Get-ADComputer -Filter * -SearchBase "OU=<DeineOU>,DC=<DeinDC>" | Sort-Object -property name
ForEach($Guy in $ComList)
{$Computers += $Guy.Name}
Try
{
$pw = Read-Host PW -asSecureString | ConvertFrom-SecureString -ErrorAction Stop
$Cred = New-Object -Typename System.Management.Automation.PSCredential $User,($PW | ConvertTo-SecureString)
Remove-Variable pw
}
Catch
{
Write-Host -ForeGroundColor red "Error occured: " $PSItem.Exception.GetType().FullName "-->" $PSItem.Exception.Message `n
If(Test-Path variable:pw) {Remove-Variable pw}
Break
}
Write-Host 'Checking Windows latest update ...' -ForegroundColor white
ForEach($Computer in $Computers.Trim())
{
If(Test-Connection -ComputerName $Computer -Count 1 -ErrorAction SilentlyContinue)
{
Try
{
$Session = New-PSSession -Computername $Computer -Credential $Cred -ErrorAction Stop
$Import = Import-PSSession -Session $Session -Commandname Get-ItemProperty, Get-Date -Prefix Remote # "IMPLICIT REMOTING"
Try
{
$ErrorActionPreference = 'Stop'
$Sec = Get-RemoteItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\Results\Install" -Name "LastSuccessTime" | Select -ExpandProperty "LastSuccessTime"
$LastUpdateTime = Get-Date($Sec) -Format G
Write-Host "Last Windows update $Computer $LastUpdateTime"
} #Try
Catch
{
$LastUpdateTime=0
return $LastUpdateTime
} #Catch
} #EndTry
Catch {Write-Host -ForeGroundColor red "Error occured: " $PSItem.Exception.GetType().FullName "-->" $PSItem.Exception.Message `n}
Finally {If(Test-Path variable:pw) {Remove-Variable pw}; If ($Session.State -eq "Opened") {Remove-PSSession $Computer}}
} #EndIf_TestConnection
Else {$NoResponseList += $Computer}
} #End_ForEach
If ($NoResponseList.Length -gt 0)
{Write-Host "No response from $NoResponseList" -ForegroundColor red}
Und ja, ich weiß - das geht viiiiiiel kürzer.
Schon etwas älter das Ganze hier, aber hier ein Beispiel via CMD, welches aber nicht in eine TXT schreibt. Dafür wird die ID als lokale, dauerhafte Systemvariable geschreiben, welche man dann anders inventarisieren könnte. Oder man schreibt das Skript um und lässt es in eine TXT ausgeben.
Läuft aktuell gut bis hoch zur TV Version 14 und den neuen 10 stelligen IDs!
Das Skript via GPO im Computerteil ausführen lassen. Idealerweise vll vorher via GPP nach lokal kopieren lassen und dann den lokalen Pfad in der GPO nutzen.
Viel Spaß damit!
Läuft aktuell gut bis hoch zur TV Version 14 und den neuen 10 stelligen IDs!
echo off
IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" GoTo 64Bit
:32Bit
REM HEX der TV ID ermitteln in 32 Bit Systemen
reg query "HKLM\Software\Teamviewer" /V "ClientID" | find /i "0x" > %windir%\system32\Teamviewer.txt
goto allPC
:64Bit
REM HEX der TV ID ermitteln in 64 Bit Systemen
reg query "HKLM\Software\wow6432node\Teamviewer" /V "ClientID" | find /i "0x" > %windir%\system32\Teamviewer.txt
:allPC
c:
cd\
cd %windir%\system32
REM HEX Wert in der TXT in Variable schreiben.
set /p teamviewer=<Teamviewer.txt
REM HEX Wert in der TXT in Variable schreiben und dabei vorne 29 Zeichen abschneiden.
set "teamviewer=%teamviewer:~29%"
REM HEX Wert in der Variable in Dezimal wandeln.
set /a teamviewer=%teamviewer%
REM Dezimal Wert in feste Systemvariable schreiben.
setx /m TeamViewer %teamviewer%
exit
Das Skript via GPO im Computerteil ausführen lassen. Idealerweise vll vorher via GPP nach lokal kopieren lassen und dann den lokalen Pfad in der GPO nutzen.
Viel Spaß damit!