Køre powershell scripts ved dobbelt klik

Jeg havde en opgave for en kunde, hvor det krævede at brugere kunne køre et powershell script ved at dobbelt klikke på det. Domænet havde en GPO der ændrede alle typer script filer til at blive eksekveret via notepad. Det måtte der ikke ændres på.

En quick and dirty løsning havde været at ændre i Computer\HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\Open\Command fra “C:\Windows\System32\notepad.exe” “%1” til “C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe” -noLogo -ExecutionPolicy unrestricted -file “%1”

Det er bare så langt fra best practice at det kun kan anbefales til en test pc.

En lidt pænere, om end ikke super løsning var at lave en batchfil der kaldte scriptet.

Filerne blev lagt ud via en GPO settings sat i Computer Configuration\Preferences\windows Settings\Files

ps1 og cmd fil i en mappe, og en genvej til cmd filen til alle brugernes skrivebord – “c:\users\public\desktop\navn på link.lnk”

Indholdet i Batchfilen er:

“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File c:\!Scripts\scriptfile.ps1

Genvejen på skrivebordet fik i samme omgang et ikon der passede til hvad det gjorde, bare for at gøre det mere brugervenligt.

VN:F [1.9.22_1171]
Rating: 0.0/6 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Powershell – Find ip og start browser

I forbindelse med et projekt skulle en ikke domain joined pc kunne flyttes til forskellige butikker, men altid kunne tilgå en specifik url i hver butik. Det kunne løses ved at lave genveje til alle de butikker der besøges og bare ligge dem i favorites. Udover at det senere ville kunne ændres og at alle butikker kan nås over netværket. Så kunne det gøre at brugeren åbnede for en forkert butik.

Den nemme og vedligeholdelses fri løsning blev at lave et Powershell script der launchede Edge med en url baseret på netkortets ip konfiguration. Pc’erne får altid en adresse hvor den sidste oktet altid er 3 cifre lang. Så der blev snydt lidt og lavet en Length-3. og de + 100 var fordi det er ip’en som skal nåes i hver butik. Til sidst eksekveres Edge med url’en.

$ip=get-WmiObject Win32_NetworkAdapterConfiguration|Where {$_.Ipaddress.length -gt 1}
$theUrl = ‘http://’+$ip.ipaddress[0].substring(0,$ip.ipaddress[0].Length-3) + 100

start shell:AppsFolder\Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge $theUrl

Nu her et halvt år efter, så skulle jeg igen bruge noget lignende, dog kunne jeg ikke være sikker på den sidste oktet, og det var Chrome der skulle benyttes.

Endnu en gang ikke voldsom pæn løsning, men det virker. Den splitter ip’en på punktum, og de 3 første segmenter benyttes og der tilføjes ip og underbibliotek. Den launcher så chrome.

$ip=get-WmiObject Win32_NetworkAdapterConfiguration|Where {$_.Ipaddress.length -gt 1}
$IPByte = $ip.ipaddress[0].Split(“.”)
$theUrl = “http://”+($IPByte[0]+”.”+$IPByte[1]+”.”+$IPByte[2]) + “.231/urlstreng”
Start-Process “chrome.exe” $theUrl

Bemærk at den første linje i begge scripts søger gennem alle netværks adapters på pc’en, og tager den hvor længden af ip strengen er længere end 0. Hvis der er 2 netkort med tilknyttet ip, så får du også 2 resultater ud af den linje.

VN:F [1.9.22_1171]
Rating: 0.0/6 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Json til mere læsbart format via Powershell

Jeg har et GDPR projekt for en kunde hvor der skulle laves samtykke til kunderne. Det er i en stor verdensomspændende organisation, med mange forskellige systemer i EU der skal bindes op gennem samme system. Jeg hjælper til i 5 lande der skal binde 6 systemer sammen.

Der er lidt forsinkelse på leverancer, så for at kunne komme videre med en række tests downstream, så havde vi brug for at få fat i data så vi kunne teste. Jeg kan ikke gå for meget i detaljer, men App’en kører i AWS, som gemmer i .json format i en AWS S3 Bucket.

Disse Json filer er i flere niveauer, og da .json ikke er specielt læsbart, så lavede jeg et hurtigt script til at udlæse det så hver tester kunne få en liste. Jeg ville gerne have tilføjet det en smule smartere og sat Powershell op til at hente direkte fra en S3 Bucket, men pga. bureaukrati i forbindelse med at få adgang til at oprette nøgler så kunne det ikke lykkedes inden deadline.

Løsningen var at hente de gældende json filer ned i et lokal bibliotek og køre nedenstående powershell script. Output kan ses på billedet. Men for hver fil i biblioteket udlæser den de linjer som testerne skal bruge. Det vil være nemt at tilrette scriptet så output kunne komme i et excel ark i stedet.

function writeJson {
Param ($inFile)
” ”
#Basically just write lots of the parameters out to the screen, starting with the filename
“Filename: ” + $inFile
$json = get-content $inFile | ConvertFrom-Json
#Write everything in the json file:
#ConvertTo-Json $json -Depth 10
“customer_Number: ” + $json[0].consent.customer_number
“source_System: ” + $json[0].consent.source_system
“user: ” + $json[0].consent.permissions[0].user
“Parent-Guardian consent role: ” +$json[0].consent.permissions[0].appropriate_person.role
“Parent-Guardian consent title: ” +$json[0].consent.permissions[0].appropriate_person.title
“Parent-Guardian consent first name: ” +$json[0].consent.permissions[0].appropriate_person.first_name
“Parent-Guardian consent last name: ” +$json[0].consent.permissions[0].appropriate_person.last_name#$($json[0].consent.permissions.type) + $($json[0].consent.permissions.value)
foreach ($permission in $json[0].consent.permissions)
{($permission.value +” – ” + $permission.type)  | write-output}
}

Get-ChildItem “C:\json\” -Filter *.json

foreach($file in Get-ChildItem $fileDirectory)
{
writeJson($file.name)
}

VN:F [1.9.22_1171]
Rating: 6.0/6 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Konvertering af VMDK til VHDX – VMware til Hyper-V konvertering

Jeg stod overfor at skulle lave en ny pc klar hvor jeg skulle bruge et par virtuelle maskiner. Jeg havde allerede et par VmWare maskiner, og en hurtig omgang VMware Workstation så ville det være kørende. Jeg havde dog aldrig benyttet Hyper-V på en Windows 10 Pro, så ville lige prøve det af.

Installationen foregår nemt via Powershell -> Enable-WindowsOptionalFeature -Online -FeatureName:Microsoft-Hyper-V -All Læs mere Konvertering af VMDK til VHDX – VMware til Hyper-V konvertering

VN:F [1.9.22_1171]
Rating: 0.0/6 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Office 2016 Click-to-run – Hvordan du vælger programmer

Microsoft har lavet deres installers utroligt smarte, så det var brugeren der valgte hvilke programmer der skulle installeres, så klares det hele af installeren i dag. Det fungerer ved at du klikker på setup.exe filen, venter lidt og så er alt installeret. Du har ikke mulighed for at vælge om du f.eks. vil have InfoPath eller Access på eller ej. Du får heller ikke muligheden for at vælge hvilket drev du vil installere på. Ikke det store problem hvis du har massere af plads, jeg skulle dog installere Office 2016 Pro på en PC med 128GB SSD. Det betød at den iso jeg havde fra Partner programmet installerede hele pro pakken. Læs mere Office 2016 Click-to-run – Hvordan du vælger programmer

VN:F [1.9.22_1171]
Rating: 0.0/6 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Gratis bøger fra Toke Kruse

Hvis du ikke kender Toke Kruse, så er han personen bag Billys Billing. Han har skrevet en lang række bøger, hvor jeg tidligere blandt andet har læst “Den geniale iværksætter”. Toke besluttede på et tidspunkt at give alle hans bøger væk gratis mod at du afleverer en e-mail adresse til ham. Jeg nåede lige at melde mig til i slutningen af december hvor bogen “Greatest Blog Hits” var gratis. Læs mere Gratis bøger fra Toke Kruse

VN:F [1.9.22_1171]
Rating: 6.0/6 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Power BI – Gateway og fejlsøgning

Power BI er en af Microsofts store satsninger, og det giver nogle eminente resultater med relativ lille indsats. Dog som med alt teknologi, så kan den relativ lille indsats godt variere en del. Har du data der er direkte brugbare dvs.  godt struktureret og med sigende tabelnavne osv. Så er det nemt. Ellers er der lige lidt datavask inden du får rigtig gode resultater. Læs mere Power BI – Gateway og fejlsøgning

VN:F [1.9.22_1171]
Rating: 0.0/6 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

IT automatisering og hvorfor du skal gøre det

Automatisering er en måde at optimere en proces ved at fjerne det menneskelig element. Det leder til mange fordele, ikke mindst er processen ens hver gang. Hastigheden og præcisionen er velkendt, og kompleksiteten er gemt af vejen. Det betyder at der ikke er behov for en med de specifikke kvalifikationer som der normalt er behov for. Læs mere IT automatisering og hvorfor du skal gøre det

VN:F [1.9.22_1171]
Rating: 6.0/6 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +2 (from 2 votes)