elcativoger
Goto Top

Powershell Abfrage der OsVersion im Netzwerk

Moin.

Ich habe eine Aufgabe bekommen und würde den Großteil gern per Powershell abfangen.
Ich weiß, dass ich mit
et-ComputerInfo -Property *OsVersion*
das richitge Ergebnis lokal bekomme.
Nun müsste ich ein mini Script bauen, welches mir alle Rechner abfragt in einem bestimmten IP Segment.

Ich stelle mir das so vor, dass ich im Script eingebe "start IP - end IP" und ihm die Adminkennwort mitgebe (ich denke, dass der Standardnutzer die Abfrage nicht zulässt),
dann auf Netzlaufwerk in meinen Ordner eine TXT erstellt mit IP und Ergebnis von "OsVersion".

Wie müsste sowas aussehen?

Gruß und Dank
Alex

Content-ID: 3986094701

Url: https://administrator.de/contentid/3986094701

Ausgedruckt am: 22.11.2024 um 00:11 Uhr

lorsumalpha
lorsumalpha 19.09.2022 um 13:06:01 Uhr
Goto Top
Moin,
sicher bin ich mir nicht, ob das ganze mit IP-Adressbereichen funktioniert, hier wäre mein Ansatz für ein kleines Script mit Computernamen:
Invoke-Command -ComputerName 'Computer01','Computer02' -ScriptBlock { Get-ComputerInfo -Property "OS*" }    

Müsste man halt die Liste in -ComputerName reinpacken
3803037559
3803037559 19.09.2022 aktualisiert um 13:45:41 Uhr
Goto Top
Ich habe eine Aufgabe bekommen
Azubi?

Startskript und dann
Get-CimInstance Win32_OperatingSystem | select @{n='Computer';e={$env:Computername}},Version | export-csv "\\server\freigabe\liste.csv" -Delimiter ";" -NoType -Encoding UTF8 -Append  
Oder Remote
Import-Module ActiveDirectory
$cred = Get-Credential
Get-ADComputer -Filter * | ?{Test-Connection -Computername $_.DNSHostname -Quiet -Count 1} | %{ 
    Get-WmiObject -ComputerName $_.DNSHostname Win32_OperatingSystem -Credential $cred | select PSComputername,Version
} | export-csv "\\server\freigabe\liste.csv" -Delimiter ";" -NoType -Encoding UTF8  
WMI Firewallausnahme dann aber obligatorisch.

Cheers
certguy.
ElCativoGER
ElCativoGER 19.09.2022 um 13:14:02 Uhr
Goto Top
-ComputerName 
ist dabei ein File als Liste der Ziele?

Bin noch nciht so firm damit. face-smile
Doskias
Doskias 19.09.2022 um 13:36:43 Uhr
Goto Top
Moin,

wir protokollieren (aus Brandschutzgründen), welche Clients nachts nicht ausgeschaltet sind. Das mach ich übers AD:
$Gruppe_Status=Get-ADComputer -filter * -properties Name,IPv4Address,OperatingSystem -SearchBase "OU=Computer,DC=Domain,DC=DE" |Sort-Object Name  

foreach ($PC in $Gruppe_Status)
{
if (Test-Connection $pc.name -count 1 -quiet)
{Protokolldatei schreiben}
}

Das ganze kannst du auch mit einer IP-Liste machen. Entweder du erstellst die Liste selbst und liest die Liste ein, oder du überlegst dir, wie du die IPs per Script hochzählen lässt.

Zitat von @ElCativoGER:
-ComputerName ist dabei ein File als Liste der Ziele?
Bin noch nciht so firm damit. face-smile
Nein es muss eine IP oder ein name sein. Wenn du ein File hast, kannst du das aber mit get-content einlesen und dann weiter verwenden, anstatt wie bei mir das Ad zu fragen.


Zitat von @ElCativoGER:
Ich stelle mir das so vor, dass ich im Script eingebe "start IP - end IP" und ihm die Adminkennwort mitgebe (ich denke, dass der Standardnutzer die Abfrage nicht zulässt)
Nein sowas machen wir nicht. wir geben keine Kennwörtern in Skripten mit. Wir geben sie ein oder führen sie in dem Benutzerkontext aus, welches entsprechende Rechte hat. Kennwörter in Skripten zu hinterlegen ist ein absolutes NoGo und beim Adminkennwort würde ich als Verteidiger auf Todesstrafe plädieren face-wink

Gruß
Doskias
Crusher79
Crusher79 19.09.2022 um 14:06:25 Uhr
Goto Top
Hallo,

lazyadmin

Ein paar Anregungen, bzw. fertige Scripts gibt es auch dort.

mfg Crusher