UW-Forum

Forum von UW-Operator.de
Aktuelle Zeit: Freitag 29. März 2024, 00:38

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 1 Beitrag ] 
Autor Nachricht
Ungelesener BeitragVerfasst: Donnerstag 22. März 2018, 16:39 
Offline
Benutzeravatar

Registriert: Samstag 10. Dezember 2011, 17:19
Beiträge: 282
Zeit das Inventarprogramm abzugleichen oder mit neuen Daten zu füttern?

Hier ein Skript mit einer Funktion, die das notwendige enthält.
Wie immer als Anregung gedacht um das Skript an die eigenen Bedürfnisse anzupassen...
Code:
<#
.Synopsis
   Liest die nötigen Computerinformationen aus Rechner aus um diesen im Inventar korrekt erfassen zu können.
.DESCRIPTION
   Die Computerinformationen werden vom Rechner geholt und zusammengefasst ausgegeben.
   Dies gibt uns die Möglichkeit die Daten für das Inventar zu sammeln oder diese mit den bestehenden Daten aus der Inventardatenbank abzugleichen.
   Sind auf dem Zielsystem oder den Zielsystemen andere Anmeldeinformationen erforderlich, so ist der Parameter Anmeldeinformationen auszuwählen.
.EXAMPLE
   Der Aufruf kann mit oder ohne Anmeldeinformationen erfolgen, im Beispiel wird nur ein Computer ausgewertet.
   Get-Hardwaredaten Computer0815
   Get-Hardwaredaten Computer0815 -Anmeldeinformationen
   Get-Hardwaredaten -ComputerName Computer0815
   Get-Hardwaredaten -ComputerName Computer0815 -Anmeldeinformationen
.EXAMPLE
   Der Aufruf kann mit oder ohne Anmeldeinformationen erfolgen, im Beispiel wird ein ganzes Array von Computern ausgewertet.
   Get-Hardwaredaten (Get-ADComputer -Filter *).Name
   Get-Hardwaredaten (Get-ADComputer -Filter *).Name -Anmeldeinformationen
   Get-Hardwaredaten -ComputerName (Get-ADComputer -Filter *).Name
   Get-Hardwaredaten -ComputerName (Get-ADComputer -Filter *).Name -Anmeldeinformationen
#>
function Get-Hardwaredaten
{
    [CmdletBinding()]
    [Alias()]
    [OutputType([int])]
    Param
    (
        # Computername der geprüft werden soll oder ein Array aus Computernamen.
        [Parameter(Mandatory=$true,
                   ValueFromPipelineByPropertyName=$true,
                   Position=0)]
        [string[]]
        $ComputerName,
        # Werden andere Anmeldeinformationen für den Computer benötigt?
        [switch]
        $Anmeldeinformationen
    )

    Begin
    {
    Clear-Host

    $skript =  {
    $computerinfo = Get-ComputerInfo -Property *
    $computerCPU = Get-CimInstance CIM_Processor
    $computerHDD = Get-CimInstance Win32_LogicalDisk -Filter "DriveType = '3'"
    $computerNET = Get-NetAdapter -Physical | where {$_.Status -eq "Up"}

    Write-Host "Auswertung der Hardwaredaten" -BackgroundColor Blue
    "Computer: " + $computerinfo.CsDNSHostName
    "Benutzer: " + $computerinfo.CsUserName
    "Hersteller: " + $computerinfo.CsManufacturer
    "Modell: " + $computerinfo.CsModel
    "Seriennummer: " + $computerinfo.BiosSeralNumber
    
    " - Software - "
    "Letzter Start: " + $computerinfo.OsLastBootUpTime
    "System: " + $computerinfo.CsSystemType + ", installiert ist: " + $computerinfo.OsArchitecture
    "Sprache: " + $computerinfo.OsLocale + ", Systemsprache: " + $computerinfo.OsLanguage
    "Betriebssystem: " + $computerinfo.WindowsProductName + ", Version: " + $computerinfo.OsHardwareAbstractionLayer + ", installiert am: " + $computerinfo.OsInstallDate.ToString()
    "BIOS Version: " + $computerinfo.BiosSMBIOSBIOSVersion
    "TeamViewer ID: " + (Get-ItemProperty -Path "HKLM:\SOFTWARE\WOW6432Node\TeamViewer" -Name ClientID).ClientID
    
    " - Hardware - "
    "CPU: " + $computerCPU.Name
    "RAM: " + "{0:N2}" -f ($computerinfo.OsFreePhysicalMemory/1MB) + " GB / {0:N2}" -f ($computerinfo.CsPhyicallyInstalledMemory/1MB) + " GB Frei - Prozentual noch {0:P2}" -f ($computerinfo.OsFreePhysicalMemory/$computerinfo.CsPhyicallyInstalledMemory) + " Frei"
    foreach($HDD in $computerHDD) {"HDD " + $HDD.DeviceID + " {0:N2}" -f ($HDD.FreeSpace/1GB) + " GB / {0:N2}" -f ($HDD.Size/1GB) + " GB Frei - Prozentual noch {0:P2}" -f ($HDD.FreeSpace/$HDD.Size) + " Frei"}
    foreach($NET in $computerNet) {
    $IP = $NET | Get-NetIPAddress
    $NET.LinkSpeed + " Netzwerk: " + $NET.InterfaceDescription + ", MAC-Adresse: " + $Net.MacAddress + ", IP-Adresse(n): " + $IP}    
    
    " - Installierte HotFix-Updates - "
    Get-HotFix | Format-Table
    }
    }
    Process
    {
    foreach ($C in $ComputerName){
        if ($Anmeldeinformationen.IsPresent) {icm $C -Credential (Get-ComputerInfo).CsUserName $skript}
        else {icm $C $skript}
    }
    }
    End
    {
    }
}

_________________
In diesem Sinne...

Ulrich Wiedholz
UW-Operator.de


Diesen Beitrag melden
Nach oben
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 1 Beitrag ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst neue Themen in diesem Forum erstellen.
Du darfst Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  

© 2006-2020 Ulrich Wiedholz / UW-Operator.de
Disclaimer | Impressum | Datenschutz

Zusätzlich für das Forum:
Nutzungsbedingungen | Datenschutzerklärung

Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de