Författararkiv: Daniel Persson

Köpa spel till Playstation 4 utomlands

Tänkte sprida lite ljus över spel till playstation 4.
Då jag snart flyger till USA kollade jag med supporten om man kan köpa spel i USA och spela på en konsol köpt i Sverige och det är inga problem så länge man köper spelet på skiva. Köper man spelet med kod till playstation store eller liknande blir det problem.

Uppdatering 2019-07-21: OBS! Om spelet har online-läge kan det vara problem att köpa spel från USA. Vissa spel är nämligen konfigurerade för en viss server-region. Enklast är att gå in på Gamestop eller liknande i USA och fråga på det spel du tänkt köpa.

Så, för er som undrar så finns det ingen region-låsning eller liknande på PS4 utan du kan köpa spel från vilket land du vill så länge du köper det på skiva.

Kan nog bli ett par inköp borta i staterna alltså. 🙂

Powershell: Write-Verbose och Write-Debug

Att byta ut Write-Host mot Write-Verbose eller Write-Debug beroende på vad man vill åstadkomma har sina fördelar.

Jag tillhör dom som alltid kört med Write-Host för att få ut information på skärmen.
Dock kan man inte ”stänga av” Write-Host om man t ex schemalägger ett script och INTE vill ha någon output.

Lösningen är att använda Write-Verbose samt Write-Debug (vid rätt lägen)

Write-Verbose kan med enkelhet användas där du idag använder Write-Host.
Write-Debug stannar vid varje output och underlättar felsökning.

För att aktivera ovanstående i ett script behövs två rader högst upp i scriptet.
Har lagt in exempel också.


[CmdletBinding()]
Param()

Write-Verbose "Detta visas enbart när -Verbose används efter scriptnamn."
# T ex .\script.ps1 -Verbose

Write-Debug "Detta visas enbart när -Debug används efter scriptnamn."
# T ex .\script.ps1 -Debug

Write-Debug "Detta visas först när första Debug-meddelandet hanterats. Alltså pausas scriptet vid varje debug"

För att exekvera scriptet med Verbose output: .\script.ps1 -Verbose
För att exekvera scriptet med Debug output: .\script.ps1 -Debug

Utvärdering: Battlefield Hardline Beta

Då har man fått chansen att testa Battlefield Hardline för Playstation 4.

Fick min betanyckel idag och tänkte utvärdera spelet lite under kvällen.

Kommer köra live streaming från ca 20:30 och framåt. Förhoppningsvis är det inte lika buggigt som Battlefield 4 men det återstår att se.

Installationen gick ganska smärtfritt efter några felmeddelanden. 🙂

Kolla gärna ikväll med start ca 20:30-21:00. Streamar på Twitch: http://twitch.tv/ftiv

Powershell: Avinstallera samtliga patchar på Windows Server

Att avinstallera en patch på en windows server är relativt enkelt via ’Add/Remove Programs’ men att avinstallera samtliga installerade windowspatchar kan vara en plåga.

Ett scenario som jag råkat ut för är att en servern strippats på samtliga oanvända roles and features (av mig ska tilläggas. 😉 ).
När man efter patchning ska lägga på en feature som ligger som ’Removed’ så kan det ibland skita sig.
Lösningen jag hittat är att avinstallera alla patchar, lägga till rollen och sen patcha upp systemet igen. Helt kasst, jag vet. 🙂

Nåja, för att att göra livet lite enklare har jag tagit fram nedanstående script för att avinstallera alla windowspatchar som installerats på en Windows Server. I mitt fall var det en Windows Server 2012.

Vi kommer använda oss av Powershell och WMI-objekt för att få fram en aktuell lista på installerade patchar och avinstallera dessa.

Från början i mitt fall fanns det ca 140 patchar installerade. Efter att ha avinstallerat dessa på en gång ville systemet inte riktigt vara med längre. Så, för att lösa det la jag in en batch på 30 patchar åt gången, sen omstart och så 30 till osv…

Nog snackat, här kommer scriptet. Håll till godo. 🙂

[CmdletBinding()]
Param()

# Script för avinstallation av samtliga windowspatchar på en windows server.
# Batch på 30 patchar åt gången, ändra $limit till önskat antal patchar / körning.
# Jag kör med /log på wusa.exe för att logga händelserna. Loggen lagras i samma mapp som scriptet körs från.
# Du kan därefter öpppna loggen i eventloggen.
# Scriptet är verifierat på Windows Server 2012 men bör fungera på övriga Windows-OS också.
# För att köra utan limit. Sätt $limit = -1

$limit = 30

# Ändra inget nedan.

$reachedLimit = 0

$GetPatches = Get-WmiObject Win32_QuickFixEngineering

# Gå igenom listan
foreach ($patch in $GetPatches){
    # Kör enbart upp till $limit
    if ($reachedLimit -ne $limit){
        $reachedLimit++

        # Rensa patchen på text så enbart KB-numret är kvar.
        $KB = $patch.HotfixId.Replace("KB", "")
        $DeletePatchCmd = "wusa.exe /uninstall /kb:$KB /quiet /log /norestart"
        Write-Verbose "Raderar patchen med följande kommando: $($DeletePatchCmd)"
        Invoke-Expression $DeletePatchCmd

        # Kör en loop för att invänta slutförd avinstallation innan nästa patch kan avinstalleras.
        while (@(Get-Process wusa -ErrorAction SilentlyContinue).Count -ne 0)
        {
            Start-Sleep 3
            Write-Verbose "Väntar på att patchen avinstalleras..."
        }
    }
}

DynDns med Binero och curl

Det går sedan en tid tillbaka att få DynDns via Binero.
Tjänsten är https-baserad och är relativt enkel att använda.
Innan du utför nedanstående behöver du aktivera verktyget hos binero. Det gör du i deras kontrollpanel under verktyg.

Har tillsammans med http://sleepdontexist.com snickrat ihop ett väldigt simpelt script för linux som vi placerat i crontab för exekvering var 5:e minut.
Scriptet loggar och bygger på loggen med status efter varje exekvering datumstämplat.

#!/bin/sh

# Ändra värdena nedan
user=[username]
pass=[password]
domain=[domain]

#Ändra inget nedan
logfile=/var/log/dnsupdate.log
`date "+%Y-%m-%d %H:%M" >> $logfile`
/usr/bin/curl -u $user:$pass -d hostname=$domain -G https://dyndns.binero.se/nic/update >> $logfile
echo "" >> $logfile
echo "" >> $logfile

Spara ovanstående i någon fil.sh och kör chmod +x på filen för att göra den exekveringsbar.
Därefter startar du crontab -e och lägger till följande rad.

*/5 * * * * /path-to-script/script.sh

Kontrollera sen status i /var/log/dnsupdate.log.

Installera SCCM-agent via Powershell och Schedule Task (server)

Har letat, letat, letat, letat och letat efter bra metoder att få på SCCM-agenten på servrar.
Det dom flesta hänvisar till är att lägga detta i startupscript eller liknande. Då jag inte tycker om startupscript, framförallt inte på servrar så har jag löst det med Powershell och schedule task. Att bara köra invoke-command och exekvera ccmsetup.exe fungerar inte då BITS då inte vill vara med och lira.

Så, jag har gjort ett script som utför tre delar. Har inte snyggat till allt ännu och använder även .bat (usch och fy på mig!) 😉

1) Kopierar installationsfilerna till servern
2) Schemalägger ett jobb ”run once” för installation av agenten som körs 2 minuter efter jobbet skapats
3) Kontrollerar om agenten installerats och raderar därefter installationsmappen

Så här blev scriptet.

# Installation av SCCM-agenten

# Namnet på servern som agenten ska installeras på.
$servername = "servernamnet"
# Kopiera installationsmedia. Ändra till mappen där installationsfilerna finns. Placeras sedan i c:\autoinstall på servern.
Copy-Item "c:\media\sccm" -Recurse -destination "\\$($servername)\c$\autoinstall\"

Invoke-Command -ComputerName $servername -ScriptBlock {        

    # Formatet kan behöva ändras på vilka regionala inställningar ni har på servern.
    $scheduleDate = get-date -Format "yyyy-MM-dd"
    $scheduleTime = (get-date).AddMinutes(2).ToString("HH:mm")
    # Har skapat autoinstall.bat och innehåller ccmsetup.exe följt av dom växlar som krävs för min miljö.
    schtasks /create /tn "AutoInstallSCCM" /ru "SYSTEM" /tr c:\autoinstall\autoinstall.bat /sc once /sd $scheduleDate /st $scheduleTime
}

# För att invänta färdig installation kör vi en pause på 5 minuter. 2 minuters väntan på att jobbet ska starta och sen ytterligare 3 minuter för att installationen ska slutföras.
Start-Sleep -Seconds 300

# Kontrollerar om SCCM blivit korrekt installerat.
if (Test-Path "\\$($servername)\c$\Windows\CCM"){
    Write-Host "SCCM har blivit installerat."
}
else{
    Write-Host "SCCM har inte blivit installerat."
}
# Raderar media
Remove-Item "\\$($servername)\c$\autoinstall" -Recurse -Force

Håll till godo och skriv gärna frågor på detta som kommentar till inlägg.
När jag får tid/ork ska jag snygga till installationsdelen och ta bort .bat. 😉

Glad påsk!

Vill passa på och önska alla en riktigt Glad Påsk!. Nu tar vi lite vila och så drar vi igång igen nästa vecka. En vecka som bjuder på PKI-utbildning. Kan nog bli en och annan post om just PKI framöver.

Men tills dess, ät mycket godis och var glad! 🙂