zondag 1 januari 2023

Dripsudden think of something quick, cups

 

Waarom ik fan ben van laserprinters (en hoe ik mijn oude Samsung SCX-4200 weer nieuw leven inblies)

Ik ben dol op laserprinters. Thuis heb ik een oude Samsung SCX-4200 staan, uit 2006. Met opgroeiende kinderen was het printen van kleurplaten aan de orde van de dag. ‘Papa’ zat dus regelmatig op zolder kleurplaten te printen—tijdens coronatijd vaak zelfs tussen de Zoom-meetings door. Ook wilde ik documenten die ik op mijn mobiel ontvang eenvoudig kunnen printen, zonder telkens alles eerst naar een pc te sturen.

De oplossing bleek verrassend eenvoudig: een Raspberry Pi met het standaard besturingssysteem.

Stap 1: Printer aansluiten op de Raspberry Pi

Eerst installeerde ik de benodigde printerdrivers op de Pi. Gelukkig is er een Samsung Universal Printer Driver beschikbaar. Omdat het Raspberry Pi OS op Linux gebaseerd is, gebruik je CUPS (Common UNIX Printing System) voor printbeheer. Installeren gaat als volgt:

  • Installeer CUPS via: sudo apt-get install cups

  • Voeg je gebruiker toe aan de CUPS admin groep: sudo usermod -a -G lpadmin <jouw gebruikersnaam>

  • Installeer de Samsung-printerdriver: sudo apt install printer-driver-splix

CUPS maakt gebruik van IPP (Internet Printing Protocol), waardoor je makkelijk kunt printen vanaf je laptop, Android-telefoon of iOS-apparaat. Zolang de Raspberry Pi verbonden is met je thuisnetwerk, kun je de printer vanaf elk apparaat gebruiken. Via de standaard ‘Print’-optie in mobiele apps wordt de printer vaak automatisch gevonden, al duurt het soms een paar seconden.

In de praktijk werkt dit verrassend soepel. Wel is de controle over het eindresultaat iets beperkter dan bij traditioneel printen vanaf een computer, dus het is soms even passen en meten. Maar: het werkt gewoon.

Printen vanaf Windows 10/11? Kan gewoon!

Aanvankelijk kreeg ik de printer niet werkend op Windows 10 of 11. Na wat uitzoekwerk bleek de oorzaak de manier waarop Windows verbinding probeert te maken met CUPS. Gelukkig is dat op te lossen met een simpele aanpassing.

Ga op je Windows-pc naar Instellingen > Apparaten > Printers en Scanners en kies ‘Een printer of scanner toevoegen’. Als je printer niet automatisch verschijnt, klik je op ‘De printer die ik wil gebruiken, staat niet in de lijst’.

Kies vervolgens voor ‘Een gedeelde printer op naam selecteren’ en voer de volledige URL in van je CUPS-printer, bijvoorbeeld:

http://192.168.2.243:631/printers/Samsung_SCX-4200_Series

Selecteer daarna de Samsung Universal Printer Driver. Als deze nog niet geïnstalleerd is, kun je hem eerst downloaden en installeren.

Daarmee is de printer succesvol toegevoegd aan Windows, en kun je er nu ook vanaf Windows 10 of 11 probleemloos mee printen.

zondag 25 december 2022

Do you like the image you see?

 


Windows Spotlight: dagelijkse achtergrondverrassing op je vergrendelscherm

Windows Spotlight is een standaardfunctie in Windows 10 en 11 die automatisch achtergrondafbeeldingen op je vergrendelscherm toont. Deze beelden worden dagelijks opgehaald via Bing en variëren van natuur- en stadsgezichten tot abstracte fotografie. Af en toe kunnen gebruikers aangeven of ze een bepaalde afbeelding mooi vinden, waarna Spotlight soortgelijke foto's toont. Sinds 2017 voegt Microsoft ook locatie-informatie toe aan veel van deze afbeeldingen.

Opvallend: tot nu toe is er slechts één Nederlandse afbeelding opgenomen – een foto van Doesburg.

Waar vind je de Spotlight-afbeeldingen?

  • Huidige afbeelding op het lockscreen:
    C:\ProgramData\Microsoft\Windows\SystemData\<SID>\ReadOnly\LockScreen_O

  • Eerdere afbeeldingen (cache):
    %localappdata%\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets

Je kunt de bestanden in de map Assets kopiëren en voorzien van de extensie .jpg om ze als gewone

zondag 18 december 2022

Runbook, run!

 


Automatisch toegang verlenen tot een Enterprise Application via Azure Automation

Dit blog beschrijft hoe je automatisch toegang kunt verlenen aan gebruikers tot een Enterprise Application, zoals die wordt gebruikt voor awareness-trainingen en phishing-tests.


De Enterprise Application is een online applicatie of website. In de instellingen is Single Sign-On geconfigureerd op basis van SAML (Security Assertion Markup Language), gekoppeld aan de Azure-omgeving.


In Azure wordt hiervoor een zogenaamde Enterprise Application ingericht. Je kunt hiervoor een eigen applicatie registreren via App registrations, of een bestaande kiezen uit de lijst met Enterprise Applications. De registratie creëert een application object in Azure AD, en daarnaast een uniek Service Principal Object, waarmee je toegang tot resources configureert.



Toegang beheren: gebruikers en groepen

Aan een Enterprise Application kunnen gebruikers of groepen worden gekoppeld, afhankelijk van je Azure AD-licentieplan. De beschikbare plannen zijn: Free, Office 365 Apps, Premium P1 en Premium P2. Met een Free-plan krijg je een foutmelding bij het toevoegen van groepen; je kunt dan alleen individuele gebruikers toevoegen.



Dat is onpraktisch: groepslidmaatschap maakt het mogelijk om toegang automatisch te regelen. Zonder deze optie moet je telkens handmatig gebruikers toevoegen aan de Enterprise Application — foutgevoelig en bewerkelijk. Gelukkig is er een alternatief: Azure Runbooks. 


Azure Runbooks als oplossing

Een Azure Runbook is een script dat draait in de Azure-cloud via een Azure Automation Account. Het Automation Account heeft toegang tot resources binnen de tenant, via rollen en modules. PowerShell en Python worden beide ondersteund. Na configuratie en planning wordt het script automatisch uitgevoerd op een Hybrid Worker.


Benodigdheden

Voor deze aanpak heb je het volgende nodig:

  • Een actief Azure-abonnement

  • Een Azure Automation Account

  • Een resource group (voor opslag en gebruiksminuten)

  • Een script dat je wilt uitvoeren

De eerste 500 minuten per maand zijn inbegrepen bij je abonnement.


Doe het volgende:

1.      Login op https://portal.azure.com

2.      Zoek “Automation accounts” op.

3.      Maak een Automation Account aan.

a.      Geef een passende naam op.

b.      Kies je abbonement.

c.      Maak een resource group aan.

d.      Wacht even tot hij is aangemaakt.

4.                                                 - Open het Azure Automation Account.
                         - Selecteer “Modules” om de nodige Powershell modules toe te voegen. Klik “Browse gallery”.
                                            - Installeer de “AzureAD” module.

Het Azure Automation Account is nu klaar voor gebruik.


Authenticatie: het Run As-account rechten geven

Azure maakt bij het aanmaken van een Automation Account automatisch een Run As-account aan. Dit is een Service Principal, en moet over de juiste rechten beschikken.

Noteer het Service Principal Object ID van het Run As-account (te vinden onderaan de accountpagina). Je geeft deze service principal de rol User Administrator via PowerShell.



Verbind eerst met Azure AD:
Connect-AzureAD


Sla vervolgens het Object ID van het Run As-account op:
$servicePrincipalObjectId = "f1d4a7b7-1111-4cf6-xxxx-xxxxxxxxxxxx"


Ken vervolgens de juiste rol toe:
Add-AzureADDirectoryRoleMember -ObjectId (Get-AzureADDirectoryRole | Where-Object {$_.DisplayName -eq "User Administrator"}).ObjectId -RefObjectId $servicePrincipalObjectId


Users toekennen aan de Azure AD application met Powershell

We beginnen hier ook met het het ophalen van de Service Principal, maar dan van de Enterprise Application waar we users aan willen toekennen.

# Connect to Azure AD

Connect-AzureAD

# Get the service principal for the app you want to assign the user to

$servicePrincipal = Get-AzureADServicePrincipal -Filter "Displayname eq ' KnowBe4 Security Awareness Training"


Gebruikers automatisch toevoegen via PowerShell

Verbind met Azure AD:
Connect-AzureAD


Haal de service principal op van de applicatie:
$servicePrincipal = Get-AzureADServicePrincipal -Filter "Displayname eq 'KnowBe4 Security Awareness Training'"


Vraag vervolgens op welke gebruikers al zijn gekoppeld aan deze applicatie:
$existingUsers = Get-AzureADServiceAppRoleAssignment -All $true -ObjectId $servicePrincipal.ObjectId | Select -ExpandProperty PrincipalId


Verzamel alle gebruikers met een Office 365-licentie:
$licensedUsers = Get-AzureADUser -All $true | Where-Object {$_.AssignedLicenses} | Select DisplayName, ObjectId


Vergelijk beide lijsten om nieuwe gebruikers te bepalen:
$newUsers = $licensedUsers | Where-Object { $_.ObjectId -notin $existingUsers }


Maak een lijst van uit te sluiten accounts (zoals serviceaccounts):
[System.Collections.ArrayList]$ExcludedUsers = @()


Definieer de te negeren Object IDs:
$ExcludedObjectIDs = @( "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "...", "...")


Vul de lijst:
foreach ($obj in $ExcludedObjectIDs) { $val = [pscustomobject]@{'ObjectId'=$obj}; $ExcludedUsers.add($val) | Out-Null; $val=$null }


Filter deze uit de nieuwe gebruikers:
$RestUsers = $newUsers | Where-Object { $_.ObjectId -notin $ExcludedUsers.ObjectId }


Voeg vervolgens de gefilterde gebruikers toe aan de Enterprise Application:

Nu ga ik de users in de variable $newUsers ontdoen van die in de variabele $ExcludedUsers.

# Filter out excludedusers

$RestUsers = $newUsers | Where-Object { $_.ObjectId -notin $ExcludedUsers.ObjectId }


In de variable $RestUsers zitten de nieuwe users die ik wil toevoegen aan de Enterprise Application. Dat doe ik met onderstaande

ForEach ($user in $RestUsers) {
  Try {
    New-AzureADUserAppRoleAssignment -ObjectId $user.ObjectId -PrincipalId $user.ObjectId -ResourceId $servicePrincipal.ObjectId -Id $servicePrincipal.AppRoles[0].Id -ErrorAction Stop
    [PSCustomObject]@{UserPrincipalName = $user.DisplayName; ApplicationAssigned = $true}
  }
  Catch {
    [PSCustomObject]@{UserPrincipalName = $user.DisplayName; ApplicationAssigned = $false}
  }
}


De losse stappen voegen we samen tot 1 script en dit kunnen we in het runbook plaatsen.

Runbook, run!


Het script plaatsen in een Runbook

Ga naar je Automation Account en navigeer naar Runbooks. Volg deze stappen:

  1. Klik op Create Runbook

     

  2. Geef het een duidelijke naam

  3. Kies PowerShell als type

  4. Selecteer versie 5.1 (andere versies zijn experimenteel)

  5. Klik op Create



In de editor kun je nu het volledige script plakken. Onder Cmdlets zie je de beschikbare commando’s. Onder Assets staan herbruikbare elementen zoals credentials en variabelen.


Testen, opslaan en plannen

Klik op Test pane om een testuitvoering te starten. Als het script correct werkt, klik je op Save. Daarna publiceer je het via Publish.

Wil je het script periodiek draaien? Voeg dan een schema toe via Schedules. Kies bijvoorbeeld donderdag om 05:00 uur in de ochtend. Geef het een logische naam, zoals Weekly Schedule.



Tot slot

Je hebt nu een werkend, geautomatiseerd proces om gebruikers toe te voegen aan je Enterprise Application via een Azure Runbook.

Een veilige manier om gebruikers per e-mail te rapporteren (zonder SendGrid) ontbreekt voorlopig nog — daar kom ik in een toekomstige post op terug.

Laat het weten als je dit als document, scriptbestand of markdown-export nodig hebt!

 

zondag 11 december 2022

Six side fumbling hydrocoptic marzelvanes


De Rockwell Automation Retro Encabulator is een legendarische spoof uit 1997 op promotievideo’s voor technische apparatuur, bekend om hun overvloed aan jargon en technobabbel. In slechts twee minuten vuurt een vlot babbelende presentator een stroom aan ogenschijnlijk Engelse termen af — woorden die misschien vertrouwd klinken, maar volkomen onbegrijpelijk zijn. Laat staan te vertalen.

“Now, basically the only new principle involved is that instead of power being generated by the relative motion of conductors and fluxes, it’s produced by the modial interaction of magneto-reluctance and capacitive diractance. [...]”

Wat volgt is een briljante aaneenschakeling van technische nonsens over prefabulated amulite, hydrocoptic marzelvanes, een panametric fan en een non-reversible tremie pipe, met als hoogtepunt de dingle arm — die uiteraard noodzakelijk is bij barescente skor-bewegingen.

Ik verwijs er nog wel eens naar als ik kennismaking maak met een nieuw technologisch snufje. Het filmpje staat namelijk niet op zichzelf: het bouwt voort op een satirisch stuk dat in 1944 door Engelse studenten werd geschreven. Dat stuk werd in 1946 opgepikt door Time Magazine, waarna ingenieurs bij General Electric er zelfs een spoof-datasheet van maakten — alsof het een serieus product betrof.

In 1977 nam Bud Haggart, bekend van industriële trainingsfilms, de eerste “commercial” op voor de originele Turbo Encabulator. Twintig jaar later volgde de Retro Encabulator, vertolkt door Mike Kraft, die het genre tot in perfectie wist te parodiëren.

Onlangs verscheen er een derde video, over de zogenaamde Hyper Encabulator, met een inmiddels grijsharige Mike Kraft. Maar eerlijk is eerlijk: die haalt niet het briljante niveau van zijn voorgangers.

En mocht iemand u na het zien van de video nog steeds vragen: “Wat is een dingle arm?”, dan kunt u voortaan vol overtuiging antwoorden:

“Een uitbreiding op de turbo-encabulator, die ingezet wordt wanneer barescente skor-beweging vereist is.”


zondag 4 december 2022

You wouldn't download an image, would you?

Ik ben oldskool en lees mijn RSS-feeds nog altijd graag via Outlook. Wat me de laatste tijd opvalt, is dat steeds meer feeds grote afbeeldingen in hun berichten opnemen. Daardoor moet ik vaak flink scrollen voordat ik eindelijk bij de daadwerkelijke tekst kom.

Gelukkig heeft Outlook een optie om het automatisch downloaden van afbeeldingen in RSS-feeds uit te schakelen — al zit die instelling wel een beetje verstopt. Zo stel je het in:

Afbeeldingen in RSS-feeds uitschakelen in Outlook:

  1. Open Outlook en klik op Bestand in de menubalk.

  2. Kies in het linker menu voor Opties.

  3. In het venster dat verschijnt, ga je aan de linkerkant naar Vertrouwenscentrum.

     

  4. Klik aan de rechterkant op Instellingen voor het Vertrouwenscentrum.

  5. Ga naar het tabblad Automatisch downloaden.

  6. Schakel het selectievakje Downloads toestaan in RSS-items uit.

Vanaf nu worden afbeeldingen niet meer automatisch geladen in je RSS-berichten, wat het lezen weer een stuk prettiger maakt.

zondag 27 november 2022

The leuitenant and his wife

 

Bordspellen zijn nooit echt mijn ding geweest. Natuurlijk kan ik dammen, heb ik vroeger Monopoly gespeeld en ook wel eens Ganzenbord — zeker. Maar de opkomst van complexe bordspellen en Role Playing Games (RPG’s), compleet met ingewikkelde regels en boeken vol "lore", heb ik altijd met milde verwondering bekeken. Spelers investeren niet alleen veel tijd in het spelen, maar ook in het verzamelen en beschilderen van hun miniaturen. Het is bijna een levensstijl.

Dit genre is trouwens allesbehalve nieuw. Het begon al in de jaren ’70 met Dungeons & Dragons. Later breidde het universum zich uit via Games Workshop, met onder andere de Warhammer 40K-reeks (het jaartal staat voor het jaar 40.000) en Star Wars-achtige spin-offs, allemaal voortbouwend op hetzelfde principe: diepe werelden, uitgebreide regels, en eindeloze fantasie.

In mijn poging om deze fascinatie beter te begrijpen, stuitte ik op een video waarin Owen K.C. Stephens — een bekende game-ontwikkelaar — vertelt over hoe hij samen met zijn vrouw, beiden inmiddels op leeftijd, in slechts 12 minuten door 30 minuten aan speelmateriaal raast. "Als een kettingzaag door boter," zegt hij. Hyper-efficiënt. En ergens… indrukwekkend.

zondag 20 november 2022

I never promised you an office garden

De kantoortuin kan, cynisch bekeken, worden gezien als een eufemisme voor een kantoorruimte die zo efficiënt en goedkoop mogelijk is volgestouwd met werkplekken. Ik heb er zelf gewerkt en vond het overweldigend. De constante stroom aan auditieve en visuele prikkels gaf me een opgejaagd gevoel. Zelfs de indirecte onrust — bewegingen om je heen, verschillende workflows die met minimale scheiding naast elkaar bestaan — werkte uitputtend.

Collega’s investeerden in dure noise cancelling headphones of weken uit naar kleinere vestigingen. Kleinere locaties betekenden minder rumoer, dus meer rust. Zelf heb ik ook naar noise cancelling oordoppen gekeken, maar het voelde alsof ik via de achterdeur een probleem moest oplossen. Ik werd daar immers geacht te werken — waarom zou ik dan zélf moeten investeren in iets dat het überhaupt draaglijk maakt? De prijs van die koptelefoons lag bovendien gelijk aan die van hoogwaardige audiomodellen.

Tijdens mijn zoektocht stuitte ik op de Panasonic Wear Space. Next. Level. Een noise cancelling headphone mét oogkleppen tegen visuele afleiding. Het is ergens tegelijk diep tragisch en ronduit hilarisch dat zo’n product überhaupt bestaat — en verkocht wordt. Kijk voor u zelf!.