Desktophintergrund exportieren (mit PowerShell)

  • #1
T

Timo112

Neues Mitglied
Themenersteller
Dabei seit
13.07.2016
Beiträge
1
Reaktionspunkte
0
Hallo Leute,
ich soll ein PowerShell-Skript erstellen, das mir den Desktophintergrund bei dem PC auf dem es ausgeführt wird kopiert und in einen bestimmten Ordner speichert.

Dies ist teil einer etwas Größeren Aufgabe aber leider hänge ich hier fest.

Für die die es interessiert hier der Code der bis jetzt steht.


$speicherort = Read-Host "Speicherort wählen: [1] Desktop / [2] Skriptverzeichnis" #Fragt den Speicherort vom Benutzer ab

$datumzeit = get-date -Format "dd.MM.yyyy, HH:mm:ss"
$dateiname = get-date -Format "yyyy-MM-dd_hh-mm" #Gibt Datum/Uhrzeit aus

$pcname = $(Get-WmiObject Win32_Computersystem).name #Gibt den PC-Namen aus

$OSversion = [System.Environment]::OSVersion.Version #Gibt die OS-Version aus

$benutzer = $Env:USERNAME #Gibt den aktuell angemeldeten Benutzernamen aus

$domäne = $env:USERDNSDOMAIN #Gibt die aktuelle Domäne aus



$Laufwerk = Get-WmiObject -class win32_logicalDisk
ForEach ($Element in $Laufwerk){
if ($Element.DriveType -eq 3){
$Laufwerk2 = $Element.FreeSpace/1GB
$Laufwerk01 = $Element.Size/1GB
$Laufwerk4 = $Laufwerk01|Out-String
$Laufwerk3 = $Laufwerk2|Out-String
$frei = Write-Output ($Laufwerk3.SubString(0,5))
$gesamt = Write-Output ($Laufwerk4.SubString(0,5))
}
}
#Gibt den freien und den gesamten Festplattenspeicher an


$internetverbindung = if (Test-Connection 213.183.81.10 -BufferSize 16 -Count 1 -Quiet) { Write-output aktiv} else {Write-Output inaktiv} #Gibt an, ob eine Internetverbindung besteht


#$internetverbindung = (Resolve-DnsName
#$domäne = [Environment]::UserDomainName
#$benutzer = [Environment]::UserName
#$speicher = Get-WMIObject Win32_LogicalDisk -filter "name='c:'" | select name, freespace
#$speicher = gwmi Win32_LogicalDisk -Computer $pcname | ForEach {$_.name, [math]::truncate($_.freespace / 1GB)}
#$internetverbindung = Test-NetConnection 213.183.81.10 | select Pingsucceeded
#New-item c:\PC-Info\$date.txt -force -value "$Titel `r`n`r`nComputername: $pcname`r`n`r`nWindowsversion: $OSversion`r`n`r`nangemeldeter Benutzer: $benutzer`r`n`r`nDomäne: $domäne`r`n`r`nInternetverbindung: $internetverbindung`r`n`r`n$speicher"

function Get-ScriptDirectory {
$Invocation = (Get-Variable MyInvocation -Scope 1).Value
Split-Path $Invocation.MyCommand.Path
} #Sucht den aktuellen Speicherort des Skriptes



switch ($speicherort){
1 {$pfad = "C:\Users\$benutzer\Desktop"}
2 {$pfad = Get-ScriptDirectory}
} #Wählt den Speicherort zwischen Desktop und aktuellem Verzeichnis


New-item $pfad\Info.$pcname.$dateiname.log -force -type file -value "
_______________________________________________________________
|
Datum, Uhrzeit | $datumzeit
_________________________|_____________________________________
|
Computername: | $pcname
_________________________|_____________________________________
|
Domäne: | $domäne
_________________________|_____________________________________
|
angemeldeter Benutzer: | $benutzer
_________________________|_____________________________________
|
Windowsversion: | $OSversion
_________________________|_____________________________________
|
Internetverbindung: | $internetverbindung
_________________________|_____________________________________
|
Speicher in C:/ | $gesamt GB gesamt, $frei GB frei
_________________________|_____________________________________


"
#erstellt die Log-Datei mit allen Infos



$mail = Read-Host "Soll die Datei per E-Mail versendet werden? (ja/nein)" #Fragt den Nutzer ob die Datei per Mail verschickt werden soll

switch ($mail){
ja {
$absender = Read-Host "Bitte den Absender eingeben"
$empfänger = Read-Host "Bitte den Empfänger eingeben"
$server = Read-Host "Bitte den SMTP-Server eingeben"
$ssl = Read-Host "Möchten Sie eine SSL-Verbindung nutzen? (Standard: nein)"
$betreff = Read-Host "Bitte den Betreff eingeben"
$text = Read-Host "Bitte einen E-Mailtext eingeben"
}
nein {exit}
}
#Fragt die nötigen infos zur Mail vom Benutzer ab

switch ($ssl){
ja {Send-MailMessage -From "$absender" -to "$empfänger" -Subject "$betreff" -Body "$text" -SmtpServer "$server" -UseSSL -Port 587 -Credential "$absender" -Attachments "$pfad\Info.$pcname.$dateiname.log"}
nein {Send-MailMessage -From "$absender" -to "$empfänger" -Subject "$betreff" -Body "$text" -SmtpServer "$server" -Credential "$absender" -Attachments "$pfad\Info.$pcname.$dateiname.log"}
}
#Fragt ab ob eine SSL-Verschlüsselung gewünscht ist und sendet die E-Mail mit allen Infos ab

Read-Host "[Enter] drücken um das Skript zu beenden" #Pausiert das Skript vor dem Schließen solange, bis der Nutzer eine Taste drückt. Dadurch kann er Fahlermeldungen lesen und kopieren.




Gruß Timo
 
Thema:

Desktophintergrund exportieren (mit PowerShell)

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben