ConfigMgr 2012: IE11 auf Client erkennen

SystemCenter Logo

Internet Explorer kann recht einfach über Microsoft Configuration Manager identifiziert werden.

Es gibt dazu einen RegKey der Version: HKLM\Software\Microsoft\Internet Explorer
Hier wird die Version hinterlegt.

Leider wird die Version recht unschön dargestellt, kann aber weiterverwendet werden. Internet Explorer 11 beginnt mit einer Version-Nummer von 9.11.x

Nun kann auf diesen RegKey ein Configuration Item erstellt werden, das dann über eine Configuration Baseline an eine Collection verteilt werden kann.

ConfigMgr2012: Collection Query: Alle Devices mit spezifischer Datei

SystemCenter Logo

Abhängig davon welche Dateien in ConfigMgr2012 inventarisiert sind können diese natürlich auch für automatische befüllte Collections verwendet werden.

Mit folgender WQL Query können diese gesammelt werden:

select 
    SMS_R_SYSTEM.ResourceID,
    SMS_R_SYSTEM.ResourceType,
    SMS_R_SYSTEM.Name,
    SMS_R_SYSTEM.SMSUniqueIdentifier,
    SMS_R_SYSTEM.ResourceDomainORWorkgroup,
    SMS_R_SYSTEM.Client 
from 
    SMS_R_System inner 
join 
    SMS_G_System_SoftwareFile 
    on SMS_G_System_SoftwareFile.ResourceID = SMS_R_System.ResourceId 
inner join 
    SMS_G_System_OPERATING_SYSTEM 
    on SMS_G_System_OPERATING_SYSTEM.ResourceID = SMS_R_System.ResourceId 
where 
    SMS_G_System_SoftwareFile.FileName = "FileName" and SMS_G_System_OPERATING_SYSTEM.Caption not like "%Server%" 
order by 
    SMS_R_System.NetbiosName

Mit der Kondition:

SMS_G_System_OPERATING_SYSTEM.Caption not like “%Server%

können weiteres Devices mit Server-OS ausgeschlossen werden. Dies hilft bei der Isolierung der Client Devices.

Powershell: Installierte Software ausgeben

Über eine schöne WMI Abfrage kann Software, die auf einem Rechner installiert ist ausgegeben werden:

Get-WmiObject -Class Win32_Product | Select-Object -Property Name, Vendor, Version

Diese Basis kann einfach auch noch gefiltert werden um nur anzuzeigen, was wirklich gesucht wird.

Get-WmiObject -Class Win32_Product | 
    Select-Object -Property Name, Vendor, Version | 
    Where-Object Name -Like '*Software Name*'

 

Viel Spass beim herumprobieren!

 

Raspberry Pi: Backup während laufendem Betrieb

raspberry pi logo

Billy Wilson hat sich hier einiges an Arbeit angetan:

https://github.com/billw2/rpi-clone

Mit diesem Script ist es sehr einfach möglich Backups laufender PI-System zu machen und diese zu aktualisieren. Weiteres wird von diesem Script auch ein Backup auf eine kleinere SD-Karte abgefangen.

Nach einem kurzen Test des Scriptes konnte ich meinen PI DHCP Server von der Backup SD-Karte einwandfrei hochstarten.

Vielen Dank an dieser Stelle an Billy.

Powershell: Funktion erstellen

Funktionen sind leicht wiederverwertbar und empfehlen sich sehr für Wiederverwendbarkeit.

Wichtig ist eine saubere Dokumentation, Kommentierung und Verwendung von Parametern.

Function Run-Function
{
<#
.SYNOPSIS
function information
.DESCRIPTION
function description
.PARAMETER $Parameter
parameter description
.EXAMPLE
Run-Function -PARAMETER 'Value'
#>
[CmdletBinding()]
Param
(
    [Parameter(Mandatory=$true)]
    [string]$Parameter1,
    [Parameter(Mandatory=$false)]
    [string]$Parameter2,
)
    
#Function Algorithm 

   
}

ConfigMgr2012: Failed Deployment

SystemCenter Logo

Immer wieder kommt es vor. dass Deployments nicht erfolgreich laufen. Hierfür gibt es mehrere Gründe: Download fehlgeschlagen Zeitüberschreitung bei der Installation Unerwarteteter Neustart während der Installation Hash-Mismatch / Content-Mismatch etc. Zwar sollte das Deployment bei richtiger Konfiguration die fehlerhaften Installationenen noch einmal antriggern, das kann aber einige Zeit in Anspruch nehmen. Ein manuelles Abfangen dieser more

Powershell: Veraltete Computer in Excel exportieren

Mit diesem Script wird ein Export aus dem Active Directory erstellt. Mit den Parametern können die Rahmenbedingungen für den Export festgelegt werden

function Get-OutdatedComputer
{
[CmdletBinding()]
Param
(
    [Parameter(Mandatory=$true)]
    [string]$Path,
    [Parameter(Mandatory=$true)]
    [int]$Age,
    [Parameter(Mandatory=$true)]
    [string]$OU    
)
[int]$ComputerPasswordAgeDays = $Age
IF ((test-path "$Path") -eq $False) { md "$Path" }
$ExportFile = "$Path\$OU-InactiveWorkstations.csv"
$ComputerStaleDate = (Get-Date).AddDays(-$ComputerPasswordAgeDays)
$InactiveWorkstations = Get-ADComputer -filter { (passwordLastSet -le $ComputerStaleDate) -and (OperatingSystem -notlike "*Server*") -and (OperatingSystem -like "*Windows*") } -properties Name, DistinguishedName, OperatingSystem,OperatingSystemServicePack, passwordLastSet,LastLogonDate,Description | Where { $_.DistinguishedName -like "*Computer*" } | where { $_.DistinguishedName -like "*OU=$OU,*" }  #| where { $_.DNSHostName -like "$OU.*" }
$InactiveWorkstations | export-csv $ExportFile -Delimiter ';'  
}

Mein Nutzen daraus ist ist ganz klar der Clean-Up-Gedanke.

Powershell: Uhrzeit konvertieren UTC/Local-time

Lokale Zeit -> UTC

function Get-UTCTime
{
[CmdletBinding()]
Param
(
    [Parameter(Mandatory=$false)]
    [datetime]$DateTime   
)
Write-Output "Local Time: $DateTime"
$utc = $DateTime.ToUniversalTime()
write-output "UTC Time: $utc"
}

 

UTC -> Lokale Zeit

function Get-LocalTimefromUTC
{
[CmdletBinding()]
Param
(
    [Parameter(Mandatory=$false)]
    [datetime]$DateTime   
)
Write-Output "UTC Time: $DateTime"
$Localtime = $DateTime.ToLocalTime()
write-output "Local Time: $LocalTime"
}

Powershell: Liste verfügbarer WLAN SSID’s erstellen

function Get-WLANNet {
 end {
  netsh wlan sh net mode=bssid | % -process {
    if ($_ -match '^SSID (\d+) : (.*)$') {
        $current = @{}
        $networks += $current
        $current.Index = $matches[1].trim()
        $current.SSID = $matches[2].trim()
    } else {
        if ($_ -match '^\s+(.*)\s+:\s+(.*)\s*$') {
            $current[$matches[1].trim()] = $matches[2].trim()
        }
    }
  } -begin { $networks = @() } -end { $networks|% { new-object psobject -property $_ } }
 }
}

Get-WLANNet| select index, ssid, signal, 'radio type' | sort signal -desc | Format-Table -auto
Cookies help us deliver our services. By using our services, you agree to our use of cookies. More Info | Close