As a PowerShell person I’m personally not a big fan of creating a GUI for PowerShell scripts. This is however something that is asked a lot when PowerShell scripts are created for by example provisioning new users.
I’ve seen many different approaches to this. Most worked around it either by using Read-Host or creating a GUI inside their function. In some cases these approaches also meant that the function could not handle pipeline input, multiple inputs, etc. So basically they automated one thing, but prevented further automation by implementing the GUI in a stupid way.
Personally I prefer to keep my functions without a GUI. If it is desired or required, the GUI code will be written outside of the function and will result in the calling of the function with the values specified in the GUI. This way the GUI part will not pollute the function and users have more choice and flexibility to achieve their goal. You could compare it to how you normally handle output. You output objects and let users handle the formatting instead of providing them with by example the output in Format-Table.
Now the approach is clear, the GUI still needs to be created. There are multiple ways to go about this. You could by example create the GUI by looking up what exactly you need to code to get the desired result or you could use (paid) 3rd party tools / services. You could by example use the free web-based service POSHGUI to visually create your form and then have it output your needed code. There are however also (paid) editors like Visual Studio or PowerShell Studio. Another very simple method in some cases is using Out-Gridview with -PassThru. For more info, see also my previous blog post Summary of 2nd Dutch PowerShell User Group – DuPSUG meeting with additional resources
In my case I created my initial GUI form with POSHGUI. Even though you can do many more advanced GUI forms, I soon realized that I was always creating the same type of GUI form that consisted of a couple of text boxes and a submit button. Creating these manually become an annoyance very quickly. That’s why I decided to create a function to dynamically create such a GUI based on my input.
The result is this:

The code itself can be found on my GitHub: https://github.com/bjornhouben/PowerShell/blob/master/General/GUI/New-SimpleGUIForm.ps1
I hope you like it and find it useful.
Like this:
Like Loading...
Tags: graphical user interface, gui, Microsoft, POSHGUI, Powershell, Windows Presentation Foundation, WPF
The last couple of months I’ve been playing around a lot with PowerShell and I’ve also been trying to make some nice GUI versions for my script using PowerShell Studio 2012 from Sapien Technologies Inc. While looking for more information how to best use PowerShell Studio 2012 I came across LazyWinAdmin.
LazyWinAdmin is a great tool created by Francois-Xavier C that will save you a lot of time. It provides you with most of the commonly used tools and commands in a very structured and easy to access way. In the picture below you can see what I mean.

For more info on the tool, take a look at the website and be sure to download and test it yourself.
If you want to take a look at other useful tools I’ve found in the past, take a look at my applications list.
Like this:
Like Loading...
Tags: application, Applications, automation, graphical user interface, gui, Powershell, PowerShell Studio 2012, Sapien, Sapien Technologies, Sapien Technologies Inc., Script, tool, tools
Future events
Before starting with my summary of 2nd DuPSUG meeting, I want to inform you about some future events first:
- Dutch PowerShell User Group Meetings
- To keep track of news, use the links to LinkedIn, Facebook, Twitter and the RSS feed on the DUPSUG website.
- In the future, the plan is to meet every June and November.
- The next meeting will probably be at November 7th at VX Company.
- The idea is that community members will also present their own experiences, use cases, scripts, tools, methods. If you want to do so, please contact the DUPSUG group.
- Remko Weijnen | Blog | Twitter | LinkedIn might be one of the people presenting at a future DUPSUG meeting.
- Jeff Wouters might be able to arrange one or more copies of the PowerShell Deep Dives book from Manning since he’s contributing to it. The book isn’t complete and released yet, but Manning has an Early Access Program which means that you will get access to the completed chapters now and will get the full version when it’s done. Until June 13 there’s even a promotion to get a 40%-50% discount and it also applies to other great PowerShell books.
- Inter Access Microsoft Summer Summit (Hilversum, July 2nd 2013 17:30-22:00 CET)
This event
Last Thursday I attended the second Dutch Powershell User Group meeting in Hilversum hosted at Inter Access and sponsored by Sapien Technologies Inc.
Just like I mentioned in the summary of the first meeting there were manu interesting sessions that provided me with more insight and inspired me for practical uses. It was also great to discuss current developments with other knowledgeable and passionate people. The main differences with the previous meeting was that:
- This meeting was completely in Dutch, while the previous one was completely in English. As such, the workshop descriptions were also in Dutch and you needed to bring your own laptop.
- The format of this meeting was more of a workshop, while the previous one was mainly presentations.
Thanks go out to all attendees, especially those presenting, organizing and sponsoring the event. Special thanks to Daniel Bot for helping me fix a (stupid mistake in a) script I was working on 🙂
Goodies and giveaways
Workshops / presentations
And now on with the really interesting stuff, the sessions/workshops. Below are the sessions with some info about the speakers and their sessions. I also added notes I took and other information I looked up afterwards. If you come across any errors or have comments, please leave a reply so I can fix it.
Read the rest of this entry »
Like this:
Like Loading...
Tags: $PSBoundParameters, -asjob, -passthru, Azure, background jobs, Cloud, Compliance Settings, DCM, Desired Configuration Management, Desired State Configuration, devops, DHCP, DHCP failover, DNS, DSC, DuPSUG, Dutch PowerShell User Group, error handling, Event, Exe, Filters, flickr, forms, Functions, graphical user interface, gui, GUI applications, high availability, Hilversum, HTA, HTML Application, Integrated Scripting Environment, Inter Access Microsoft Summer Summit, InterAccess, InterAccess Microsoft Summer Summit, Interface Video Training, IPv4, ISE, Jaap Brasser, Jeff Wouters, job, jobs, Manning, module, msi, nslookup, Out-Gridview, parallel, parallelization, passthrough, Ping, PowerGUI, Powershell, PowerShell 3, Powershell 3.0, PowerShell 4.0, PowerShell Deep Dives, PowerShell GUI, PowerShell GUI applications, PowerShell Runspace, PowerShell RunSpaces, Powershell v3, PowerShell Workflow, presentation, PS2Exe, Resolve-DNSName, Richard Siddaway, runspace, runspaces, SCCM, script block, script blocks, scriptblock, scriptblocks, ShowUI, splat, splatting, System Center Configruation Manager, Test-Connection, The MSI Wizard, VisualStudio, VX Company, Windows, Windows 2012, Windows 2012 Server, Windows 8.1, Windows Forms, Windows Presentation Foundation, Windows Server 2012, Windows Server 2012 R2, WinForms, workflow, workshop, WPF
As I already wrote in yesterday’s post Apple – Notes / summary for the “Mac Integration Basics 10.8 Exam”, I’ve mainly been working with Microsoft products all my life. Since recently however, I’m also trying to get more familiar with Apple, Mac products and OS X and am trying to become certified.
One of the reasons, I’d never used Apple products before was because I never really deemed it necessary. Nowadays the number of Mac users seem to be growing and there is more demand for people with Mac / OS X knowledge.
As such my quest for knowledge and certification began. For me personally this meant:
- Using Apple online resources
- Reading books (mainly the great book Apple Pro Training Series: OS X Support Essentials. Before purchasing, you might also want to look for coupon codes as it might save you 30% off or more.)
- Watching computer based training (CBT) videos
- Working with OS X (thanks go out to my employer Open Line for providing me with a MacBook Pro, books and most importantly … TIME)
- Personally I didn’t think it was necessary to take a course at a training center, but some people might prefer this.
- Asking colleagues for help (thanks guys !!!)
- Making sure that I understood everything and if it wasn’t the case, look it up.
- Taking notes / creating this summary blog post that can be used as a reference if needed
- Testing my knowledge using test questions from Revise IT
I’ve taken the exam last friday and passed with 92.5%. Even though I think it was a pretty good score, I still had to make some educated guesses. This made me realize that there’s still a lot to learn and that getting more experience is important as well.
I also want to mention that I took the exam at LAI the training institute for IT professionals in Schiedam (The Netherlands). They were really kind, helpful and service oriented. The waiting area and test room were great and they even provided a pastry and all kind of drinks at no charge. This has been my best test taking experience to date, so keep up the good work guys.
I’m looking forward to attending the OS X Server 10.8 course at LAI the training institute for IT professionals at the end of March. I’ll try to create another blog post about this as well.
But now back to the important stuff, here are my notes/summary. I hope it is useful. If you find any errors or have any suggestions, please leave a comment.
Notes / summary for the “OS X Support Essentials 10.8 Exam”
Read the rest of this entry »
Like this:
Like Loading...
Tags: .mobileconfig, .Spotlight-v100, .spx, 32-bit, 64-bit, 802.1X, About this Mac, Access Control Entries, Access Control Lists, accessibility, ACE, ACL, ACSP, ACTC, Active Directory, Activity Monitor, AD, ad-hoc, ad-hoc network, Address Book, Address Resolution Protocol, address space layout randomization, Administrative user, advanced search, Advanced Technology Attachment, AES, AFP, AFP 2, AFP 3.1, Agents, AirDrop, Alias, alternative data stream, AoL, APIPA, APM, App Store, appfirewall.log, Apple, Apple Certified Associate, Apple Certified Associate - Mac Integration 10.8, Apple Certified Support Professional, Apple Certified Support Professional (ACSP) 10.8, Apple Certified Technical Coordinator (ACTC), Apple Certified Technical Coordinator (ACTC) 10.8, Apple Filing Protocol, Apple Hardware Test, Apple ID, Apple Mac OS X, Apple menu, Apple online mail Setup Assistant, Apple Partition Map, Apple Remote Desktop, Apple Rmeote Desktop, AppleFileServer, AppleScript, AppleVNCServer, application, Application Resource Troubleshooting, Application Sandboxing, Application Support, Application Troubleshooting, Applications, ARD, ARDagent, ARP, assistive technologies, Associate certification for Mac Integration, audio conferencing, authentication, authorize, auto discover, Auto Resume, Auto Save, Automatic Resume, automatic updates, Automator, backlight, backup, Backups.backupdb, backwards compatible, bidirectional, binary encoded, Bluetooth, Bluetooth PAN, BlueTooth Preferences, Bluetooth shairng, Bonjour, Boot Camp, boot rom version, boot.efi, bootd, booter, bootpd, browser, BSSID, Build, bundles, cable, cabling, CalDAV, Calendars, Calendears, camera, Carbon, CardDAV, central software update server, certificate, Certificate assistant, certificates, certification, certify, chmod, chown, CIDR, CIFS, Cisco IPSec, Classic Compatibility environment, Classless Inter Domain Routing, Classless InterDomain Routing, CLI, client-server architecture, Cocoa, code signed, collaboration services, command, Command Line Interface, Commands, Common Unix Printing System, configuration, Configuration Profile, Connect To Server, Connection Doctor, Console, Contacts, Core Audio framework, corrupt, corruption, CPU, Cross Platform, CrytpoCard, CUPS, customization, Daemons, daisy-chained, dark-wake, dark-wakes, dark-waking, darkwake, darkwakes, Dashboard, data management, deactivate, delete, desktop, Device driver, DFS, DHCP, DHCP services, diagnose, diagnostic, digital camera, digital display, Directory, Directory utility, disconnect, Discoverable mode, disk images, Disk Utility, display, DisplayPort, Distributed File Service, DNS, DNS services, Dock, Document management, Document Versions, documents, Domain Naming System, downloads, drag-and-drop installation, Driver, Drop Box, dscacheutil -flushcache, Dual-Link DVI, duplex, Duplicate, DVD or CD sharing, DVI, dynamic disk repartition, dynamic disk repartitioning, Dynamic Host Configuration Protocol, Dynamic memory, Dynamic service discovery, e-mail, effective permissions, EFI, eject, Encrypted IMAP, Encrypted POP, Encrypted SMTP, encryption, Ethernet, Everyone, EWS, Exam, Exchange, Exchange Web Services, Execute, execute disable, ExFAT, expansion buses, export, ExpressCard 34, Extended File Allocation Table, eXtensible Messaging and Presence Protocol, Extensions, Facebook, FAT, FAT32, Fibre Channel, File Allocation Table, file archives, File Quarantine, file server, File shairng, File share, File Sharing, file sharing protocols, File Sharing services, file system, File System shortcuts, file systems, fileserver, FileVault, FileVault 2, FileVault2, Find My iPhone, Find My Mac, Finder, Finger, Firewall, Firewire, firmware, Firmware Password Utility, flash disk, flash drive, Flash Storage, flickr, font, Fonts, force quit, forked file system, forward lookup, Framework plug-in, Framworks, Free Berkely Software Distribution, FreeBSD, fsck, FTP, FTPS, full disk encryption, full restore, Gatekeeper, Gbit, Get Info, Gigabit, Gmail, Go, Gopher, GPRS/3G, GPT, group, guest, guest user, gui, GUID, hard link, hardware, HDMI, hex, HID, hidden files, hidden folders, hidden items, home folder, Host Sharing Services, HP Jetdirect, HTTP, HTTPS, hub, Human Input Device, iChat, iCloud, iCloud iMessage, iClpid integration, IEEE-1394, IM, iMac, Image Capture App, Image Capture Framework, IMAP, iMessage, import, incorrect, index rebuild, Info, Inspector, installation method, installation package, InstallESD.dmg, Instant Messaging, internet, Internet Printing Protocol, Internet protocol, iOS, IP, IP address, iPad, iPhone, iPod, IPP, IPsec, IPv4, IPv6, iTunes, Jabber, Java applications, Java preferences, Java SE 6, Java SE 7, Journaled, Kerberos, kernel, Kernel Extension, kernel_task, KEXT, Keyboard, keychain, Keychains, Keynote, killall -HUP mDNSResponder, L2TP, L2TP over IPsec, LaunchAgents, launchd, LaunchDaemons, Launchpad, LDAP, Legacy AFP, Legacy Applications, Legacy FileVault, library, Library Randomization, Line Printer Daemon, link-local, listening key, local snapshot, location services, lock, lock screen, Login Keychain, login message, loginwindow, logout, Logs, Lookup, LPD, mac, MAC address, Mac App Store, Mac App Store and identified developers, Mac Integration Basics 10.8, Mac Integration Basics 10.8 Exam, Mac mini, Mac OS Extended, Mac OS X, Mac OS X 10.8 Mountain Lion, Mac Pro, MacBook, MacBook Air, MacBook Pro, machine authentication, mail, malware, managed user, manual restore, MAPI, Master Boot Record, Master Password, MAx OS Extended (Journaled), Maximum Transmission Unit, MBR, MCS, MDM, memory, Messages, Messages Screen Sharing, Messaging services, metadata, Microsoft Exchange, Migration Assistant, mobile device management, modifier keys, Modulation and Coding Scheme, mount, Mountain Lion, Mouse, mouse keys, Movies, MS DOS, MTU, Music, named, NAT, natd, Native OS X applications, Netbios, NetBoot, Netstat, network, Network Address Translation, network configuration, Network Diagnostics, Network File System, Network folder, network servcies, Network Service, network service account settings, Network Utility, NFS, NIS, No Access, notes, notifications, Numbers, NVRAM, octet, Open Directory, Open in Low Resolution, Open Systems Interconnection Reference model, OpenType, Oracle, Organizationally unique identifier, OS X, OS X 10.8, OS X 10.8 Mountain Lion, OS X internet recovery, OS X Launch Services, OS X Mountain Lion, OS X Recovery, OS X Server, OSI, OSI model, OUI, Outline fonts, Owner, packages, Pages, pair, parental controls, paring, partitioning, Password, password hint, passwords, PCI Express, PCIe, PDF, PDF tools, peer-to-peer, per-user authentication, peripheral buses, peripherals, Permissions, Personal Firewall, Photo Stream, PHY, Pictures, PID, Ping, plist, Point-to-Point Protocol over Ethernet, Point-to-Point Tunneling Protocol, policy banner, POP, port, Port Scan, Portable Document Format, ports, POSIX, POST, PostScript, PostScript Printer Description, Power Nap, Power On Self Test, PowerNap, PowerPC, PPD, PPoE, PPTP, preference file, PreferencePanes, Preferences, Preview, print, Print & Scan, print job, printer queue, Printer Sharing, printer spool, Printing, privacy, Process Features, Process ID, Process Security, Process Types, profile, Profile Manager, profiles, property list, Protected memory, protocols, Proxy, public, Quick Look, QuickTime, raid, Read, Read & Write, Read Only, Real Mem, Received Signal Strength Indication, reconnect, recovery, Recovery Disk Assistant, Recovery Key, referral, Remote Apple Events, Remote Disc, Remote Login, Remote Management, Reset permissions, resetpassword, restore, restore DVD, Retina, Retina display, Reverse lookup, Root, Root user, Rosetta, RSA SecurID, RSSI, RTSP, S-Video, Safari, safe boot, safe downloads list, Safe Sleep, sandbox, Sandboxing, SATA, Scanner sharing, Screen Sharing, SCSI, Secure Empty Trash, secure erase, Secure FTP, secure memory, security, Security & Privacy, self-assigned, Serial ATA, Serial Attached SCSI, Serial Number, Server Message Block, Services For Macintosh, Setup Assistant, SFM, SFTP, Shared, shared secret, sharing only user, shortcuts, Shutdown, side-by-side, Sidebar, Single Sign On, single user mode, Sites, sleep mode, Small Computer System Interface, SMB, smbd, SMTP, Socks, speakable items, speed, spoken commands, spool, Spotlight, Spotlight index, spotlight plug-ins, spotlight search, srm, SSD, SSH, SSH daemon, SSH File Transfer Protocol, sshd, SSO, standard user, Startup Items, startup keyboard shortcut, startup keyboard shortcuts, startup shortcuts, StartupItems, StdExclusions.plist, Stealth, Stealth mode, sticky keys, storage, storage buses, sudo, summary, Symbolic link, Symmetric multiprocessing, system, System Administrator, System information, system kernel, system launchd, System Memory, System Preferences, System Profiler, System resources, System Screen Sharing, System Security, System Security Settings, system sleep, system startup, SystemStarter, target disk mode, TCP, TCP/IP, Terminal, TextEdit, Thunderbolt, Time Capsule wireless base station, Time Machine, Time Machine local snapshot, TOSLINK, Traceroute, trackpad, Trash, troubleshooting, Troubleshooting Utility, TrueType, Twitter, UDP, UEFI, UFS, Universal Serial Bus, Universally Unique ID, UNIX, UNIX BSD, UNIX commands, Unix File System, UNIX permissions, unmount, update, updating applications, USB, USB cellular, user, user account, user account information, User authentication, User Datagram Protocol, user launchd, users, Users & Groups, UUID, vector fonts, verbose logging, Verbose mode, verification, VGA, video conferencing, vimeo, virtual interface, Virtual Private Network, VMware Fusion, VNC, VoiceOver, VPN, VPN on demand, web site, WebDAB, website, WEP, What's Keeping Me, Whois, wi-fi, Wi-Fi Diagnostics, Wide-Area Bonjour, Widget, Widgets, Windows, Windows Server, Windows Server 2008, WINS, WKM, workflow, WPA, WPA Enterprise, WPA2, WPA2 Enterprise, Write, Write Only, XML, XMPP, XProtect.plist, Xserve, Yahoo, Zero Configuration Networking, Zeroconf, zip, zoom
I’ve been using Windows 8 for quite some time now (10 months or so), but at first I also had trouble getting used to the new GUI. When I talk to people about Windows 8, there seem to be a lot of people that are having these troubles as well.
For those people, please read this great article before deciding to move back to an older version of Windows:
http://www.hanselman.com/blog/Windows8ProductivityWhoMovedMyCheeseOhThereItIs.aspx
Like this:
Like Loading...
Tags: graphical user interface, gui, ICT, Interface, Metro, Metro Interface, Microsoft, Modern, Windows, Windows 8
For those people unwilling to read the entire post, here’s a direct link to my own list of operations and a description of how to perform them using specific input methods.
Context
In the past the Windows user interface has been changed. In hindsight I would classify these changes as evolutionary (Windows 95, 98, XP, Vista, Windows 7). I did however notice that a lot of people still had and many still have trouble working with it. Most people however are currently able to perform those things they want to be able to do. With Windows 8 however, a lot has changed and people need to re-learn how they can do what they want to do. I think this will be intimidating for many people and will probably also prevent people from upgrading for some time. This video should give new users an idea of what the new interface looks like. You can also check other links on this page. Also check this video to get an even better feeling of how to use the new user interface. If you are willing to spend some more time on getting used to Windows 8, you can also check the videos from Lynda.com Windows 8 Consumer Preview First Look. With this blog post I hope I can:
- Help people understand what has changed without going in too much detail.
- Provide insight in what options there are to fully leverage potential/productivity.
- Provide practical tips and tricks to help people enjoy using Windows 8.
Read the rest of this entry »
Like this:
Like Loading...
Tags: gestures, graphical user interface, gui, ICT, Metro UI, Metro Windows 8 UI, Microsoft, Modern UI, UI, User Interface, Windows, Windows 8, Windows RT