I really abhor the new ad in the PowerShell 5.1 console and it seems there’s no hope of Microsoft making it go away.
After a long, involved Twitter conversation with the community and the PowerShell team that confirmed it’s impossible for the advertisement (?!) to be easily removed, it looks like the only solution is to bypass it. Przemysław Kłys has a great suggestion to emulate the old prompt that totally works!
First, update the PowerShell shortcut in your taskbar (you have one right? 😁) to use -nologo.
When performing file migrations, PowerShell’s Copy-Item is not ideal. I’ve since forgotten the original reasons I concluded this with the rest of the Internet, but this quote from reddit covers it pretty well.
The Copy-Item and Move-Item cmdlets are general purpose commands. They have the ability to handle many different types of structure.
Robocopy, on the other hand, is highly optimized for copy/move/delete on the filesystem. Only on the filesystem.
That specialization is why it is called Robust Copy.
There are a number of options available in robocopy, and for SQL Server’s purpose, you can probably get away with just /MIR /COPYALL /DCOPY:DAT, I ended up using a few more, as suggested by serverfault:
Here are the descriptions for each of the parameters, as described by the serverfault post.
/MIR – Mirror source to destination, and delete files and directories on the destination, if they are no longer present on the source
/COPYALL – Copy all file info: data, attributes, and timestamps, NTFS Security ACLs, Owner info, Auditing info (not all included by default)
/DCOPY:DAT – Copy all directory info – data, attributes, timestamps (original creation timestamp is not copied by default; normally this changes to the date that it was copied by Robocopy)
/Z – Use restartable mode
/J – Copy using unbuffered I/O (faster copy of large multi-gig files)
/SL – Copy symbolic links rather than the target
/MT – Use maximum CPU threads (better use of 10 gb Eethernet and many CPU cores)
/R:1 – If file access error, retry 1 time
/W:10 – If file access error, wait 10 seconds before retry
/LOG+ – Log the output to text file, append if log file already exists
/TEE – Print results to screen and to log file
/XD – Exclude directories, and everything within them. Names with spaces in them need be enclosed in quotes: “Recycler” “Recycled” ‘$Recycle.bin’ “System Volume Information”
/XF – Exclude files: virtual memory and hibernation files if they happen to be present on the source: “pagefile.sys” “swapfile.sys” “hiberfil.sys”
I changed a couple things from the original post, like the value for maximum CPU threads, and the quotes around $Recycle.bin because I ran this from PowerShell and I needed the value to be literal. I also removed a couple options (like preserving audit history) that I didn’t have permissions to run.
One huge huge warning about this command: /MIR mirrors directories which can result in deleted files in the destination. In the past, I’ve accidentally destroyed data in a lab, so make super duper sure of your source and destination are right and make sure you want the directories mirrored and not just appended. I am actually unsure of which parameters would just append 🤔
Hope that helped! I’m glad to finally get around to documenting this.
Back in 1996, as I watched a movie about Italy at the Drexel Theatre in Columbus OH, I decided that one day I’d live in Europe.
I didn’t need to move immediately. I just put it on my long-term agenda and figured things would eventually work themselves out with gentle guidance.
Part of that gentle guidance was to casually look for jobs in the UK and Europe 😅 I noticed that a lot of the coolest jobs were offered by the Microsoft-centric recruitment company, Nigel Frank.
I ended up working for another company that had jobs in both America and the EU, but still follow Nigel Frank with the cool jobs to see what skills I need to stay relevant.
Considering this familiarity with Nigel Frank, I was incredibly blown away that they listed me as one of the Top 25 Microsoft MVPs you should be following in 2019. What an honor! I am included with a number of my highly regarded colleagues including Jaap Brasser, Sarah Dutkiewicz, Thomas Poppelgaard, and Paul Andrew.
In 2019, my primary focus will remain on dbatools, though I’m also throwing in a bit of effort into kbupdate and SPReplicator. I’m also continuing to work on dbatools in a month of lunches with Rob Sewell for Manning Publications. Looks like the MEAP will be coming out soon! Stay tuned for more info.
Back in January and February, I wrote coupleposts that highlighted my journey into livestreaming, from understanding the different services/platforms to the lighting I used.
Since then, I got pretty deep into the hardware part but actually returned to a simplified setup. The third iteration was pretty intense. I even purchased a professional grade microphone and a green screen.
Before I go into what I’m currently using, let’s look at what I’ve retired since March.
The Yeti Mic is only semi-retired. It’s really high-quality and easy-to-use but it’s kinda in my way and the Bose wireless headphones work well enough. I use the Yeti when I get tired of wearing my headphones.
The green screen was cool af and allowed me to be superimposed on top of my screen, which you can see here on YouTube.
I no longer use it, though, because the setup is not worth the thrill for me. It was nice, but now I just light up my office with some cool blues and purples and go about my day.
I actually never used the floodlights because they were SO POWERFUL that they almost blinded me and Potato. I gave them away but now kinda wish that I still had them because I’d like to use them to make my office bright blue and purple. Before, I was trying to use them to highlight my green screen but it turned out I didn’t need it.
The Bose SoundLinks are not noise cancelling which is why I like them. Noise cancelling headphones create a pressure in my ear that make them unpleasant to use. But these are so comfortable and sound so good, I bought a pair for my wife as well.
I never had time to get into the Elgato Stream Deck, but what I have programmed is super useful and I rely on it every stream. Their Key Light is also awesome and casts a soft light that looks pleasant on screen.
Livestream blue and purple
Seems like every livestreamer has these cool blues and purples in the background. I knew I’d be going away from the green screen but wanted a fun background so I got a few LED light packs.
The Luminoodles backlight my monitors. I LOVE it! But mostly it’s just me that sees it. In the back, though, are the two string light sets. The purple ones I bought are pretty weak but the ZAECANY blues are so bright!
And here’s what it looks like when I’m coding. This will likely be how my livestream looks from now on.
If you’re wondering about my VS Code theme, that’d be the best theme ever, Cold Snack.
I haven’t changed too much, except that I switched my live captioning from pubnub to Stream Closed Captioner by talk2megooseman. Gooseman’s closed caption streamer is Twitch native and can be turned off and on.
Oh, and I also made my own overlay! Straight-up from scratch using Paint.NET.
This is how I placed the above overlay in OBS. Super easy.
Starting Soon and Pause screens
I also updated my starting soon and pause screens. I’ve replaced the VHS 80’s theme with something that provides more information for people popping by.
Back in January, I wrote an introduction to livestreaming titled My First Twitch Livestream Setup. In it, I created the how-to guide for getting started that I wish I had the day I found Twitch.
It’s now been a couple weeks and I’m becoming more acclimated to Twitch, though I still don’t get emotes and would prefer if Slack-style :emojis: were still in style 😅 Oh, and in addition to PowerShellLive, I’m now a member of Live Coders! Thanks so much to Jeff Fritz for the invite 🌈
In this post, I’ll outline what I’ve figured out since writing the first post. If you’re new to Twitch, I’d suggest first reading My First Twitch Livestream Setup, doing a few streams that way, then returning to this post. All of it at once can be overwhelming, even if you’ve been doing computers your whole life.
Interacting with people
What I still don’t know
Interacting with people
Twitch is awesome because it lets you “interact with the TV”. As a viewer, I’ll sometimes give a follow to see the delight on the streamer’s face or because I want to interact with them.
But as a streamer, if you don’t explicitly set things up, you can’t really see if someone followed you or if someone subscribed to your channel.
I felt bad that people were giving me follows and I couldn’t thank them, that I mentioned it during one of my streams. Microsoft’s Tyler Leonhardt of the PowerShell team was kind enough to let me know in chat when someone followed (I still don’t know how he figured that out.)
I was extra excited when I finally figured out how to create that alert. So pumped, in fact, I did a dance and posted it on Twitter:
It wasn’t hard at all, I just needed to find the time to do it. So how’d I do it? I used a free streaming service and basically just pasted a web address into OBS.
Streaming services provide all sorts of add-ons to your stream, including Alerts like the one above. There are a few competing streaming services, and I’m finding myself using a mix of them. Three popular ones include:
One day during one of my livestreams, I was lamenting about how I couldn’t use Streamlabs because I had a Mac and Microsoft livestreamer Jeff Fritz (csharpfritz) told me that I still could! I just can’t use their beautiful OBS wrapper which currently only works on Windows, but I can use their streaming service.
In the Dashboard, click AlertBox in your sidebar navigation
Copy the URL
Paste the URL into OBS as a Browser Source
Much easier than I expected 👍 By default, there is a running zombie for new followers. It’s cute, but I like Yoshi more so I selected him from gifs included in their gallery. You can also upload your own gifs, but that’s for later.
StreamElements offers a lot of the same things as StreamLabs, like Alerts. It also offers overlays which is the border surrounding people’s stream that gives their social information, etc. Here’s what fellow PowerShell streamer VeronicaGeek’s overlay looks like.
Veronica was the one who told me about StreamElements after I asked how she did her overlay. I still haven’t entirely figured out the overlay thing so that’ll be included in my Third Twitch Livestream Setup.
I have not used muxy so I don’t have anything to report about that yet.
I also stopped borrowing someone else’s Panel pics and made my own at nerdordie.com 👍 It’s ultra easy. Here, I’ll do one right now for the blog.
Tyler took it a step further and paid someone to do his (I think). His profile is so good! Love the posh-git theme.
I’ve changed my position on music, too. Mostly. I’m still not a big fan of pretzel, but I do enjoy streams like Jeff Fritz’s that use coder-centric music services.
These are playlists and sounds designed to be unobtrusive background melodies that get you in the zone. I also love lofi hip hop radio – beats to relax/study to but in my test stream, out of like 20 hours, 6 minutes did get muted.
Anyway, if you don’t care about getting muted in the video playback (live never/rarely gets muted), letting your viewers rock along with you is a lot of fun.
I ended up adding a secondary camera to my stream, too. I had a Nest Cam laying around and added a Cat cam to my stream! It’s super cute.
By far, the best addition to my Twitch stream has been the Elgato Stream Deck. This thing is SO FUN! It’s a macro automation keyboard that’s so well-made. Elgato seems to be like the Mercedes Benz of Streaming equipment. They also sell a gorgeous light called the Key Light and an elegant green screen.
You don’t need a Stream Deck to be a streamer, and you don’t need to stream to have a Stream Deck! After I posted a picture of some of the keys I’d done, my buddy Lee bought one just to make automation easier. My deck setup is still unfinished, but here’s the progress I’ve made.
The button in the middle starts PowerShell on my Mac and imports dbatools 😎 The row at the top helps me go between scenes real quick. And the steps are so easy! Check out my “Starting soon” button configuration:
It even changes my Twitter name and tweets for me! The configuration is drag and drop, too. If you want to extend it, that is also possible. I’m obsessed with this stream deck so I’ll probably write a follow-up intro article at some point.
Good lighting makes a huge difference! I turned on the lamp on the side of my desk and it was awful, like when you accidentally open the front facing camera.
Fortunately, I had a Happy Light laying around and it turned out to be perfect! You can’t even tell I have forehead wrinkles now, as can be seen in this reduced-quality Twitter video where I talk about the first time I met Jeffrey Snover.
Not saying that you gotta get a Happy Light, but if you’ve got one, it works well. There are lights dedicated to this, including the Elegato light, and also, a lot of people use webcams that have this soft light built-in, like the one Jeff Fritz mentions in his post Live Streaming Setup – 2019 Edition, the Razer Kiyo camera.
What I still don’t know
I don’t totally understand subscriptions, loot, cheers and all that. It looks like people give and get real money, but that seems outlandish 😅
I also want to learn more about bots, bot mods and emotes. Some emotes, I just don’t know what they mean. Like, what the hell is a pog champ?
This post is about all the things I use to fill my life with dark mode. I’m mostly writing to tell everyone about a free browser plugin, Dark Reader, that’s incredible, but will include other extras as well.
The browser plugin Dark Reader has changed my life and I’m obsessed with it. As I explained to a friend “I have the best plugin in the world to recommend. It automatically dark themes every website by detecting color schemes and then rewrites a matching dark theme dynamically”
It works on sites with complex code themes too! But I don’t know if you missed it in the first screenshot, you can control the brightness! The contrast! The SEPIA! What?
Dark Reader is free for Chrome, Firefox and indirectly on Opera. For Safari, it costs $4.99. I ended up donating $5 and will probably donate regularly. I’m so shocked at how great this plugin is.
HazeOver is a “distraction dimmer” for Mac. I originally got it to help fix the dumbest issue ever: Mac brightness controls don’t control the secondary monitor(?!) So I got HazeOver to dim my secondary monitor but it turned out to be awesome in general. It dims whatever windows aren’t active and it’s damn smooth about it.
It costs $9.99 but you can do a free trial. I decided to give give them my money after seeing all of the incredibly glowing reviews. Now I’m one of those reviewers being like “best app ever!”
Back in December, I found Twitch and fell in love with livestreaming. It was amazing watching people code in PowerShell with blinged out profiles and cool cut screens. Whaaat, this is a thing? I love it!
This post is aims to address the things that were confusing for me when I was starting out as well as my current setup.
So first, a bit of the human side: I tested in a non-live stream to see what it’d be like to code in front of an audience. Would I make weird faces and say dumb stuff? Turns out, yes, but my friends enjoyed it so I put it on YouTube for the public and got a warm reception 🤗
Next up, it was time to stream for real! I had a blast. A whole bunch of PowerShell friends from Twitter joined and this is what it looked like.
Next video will have the chat box on that right side. Sorry, lesson learned 😖
So now onto the guide for you based on my past month of learning.
The overall idea of streaming is this: you create an account with Twitch, get your streaming key, plug it into your streaming software, do some additional configurations, then hit Start Streaming. From there, you’ll be streaming, and whoever wants to join your channel can see you stream, albeit after a slight delay (which you can control with latency settings).
The two most common streaming platforms appear to be Amazon’s Twitch and Google’s YouTube. Most of the PowerShellers I know are streaming on Twitch, though PowerShell Security expert Carlos Perez just started on YouTube. This guide will only address Twitch because that’s what I use.
In order to livestream, you’ll need some streaming software. OBS is free and the most popular, and even advanced streamers who can afford paid software use it. Twitch and YouTube have minimal guides, but my favorite guide is Top 10 Best Twitch Streaming Software Options written by Bill R in October 2018.
A nice lil profile
You can also bling your channel, and a lot of people do. This is what my channel looks like today.
I am so relieved I just upgraded my desktop because it seems streaming requires decently hefty hardware. This section won’t be super interesting, admittedly. I love software development and like my hardware simplified.
My headset is worth a separate mention. The mic is exceptional for a headset; I was recently told during a meeting that it sounded as though I was sitting next to the person. I’ve had this pair for years, the bass is great and love it.
I tried a cheaper $20 version for a backup, but I much preferred the SA903. So now I have this leet black and red set on the way 🎧 For Windows users, the driver issue is weird. Sander Stad got a pair and said the drivers aren’t on the vendor website. You can download them here.
Also if you get super into streaming, you can get a Stream Deck which is a physical controller with a bunch of macros on it. People even do green screens too, which is covered in Jeff’s post. Maybe I’ll get that for my birthday, but no need for it just yet.
I chose the Open Broadcast Software, otherwise known as OBS, to broadcast my streams. At first, I was so frustrated with it, I decided I’d pay for one that was easier to use, but then it turns out none of them supported mac OS 👎. So back to OBS.
Happy that it turned out that way, tho! Now that I know how to use it, it’s perfectly suitable.
I won’t go over OBS in-depth, I’ll just cover the things I found challenging, mostly because it’s a whole new world and I didn’t know where to find things or what words to use when searching.
Update: I recently received a message from fellow streamer Shawn Melton who said
OH MY GOODNESS….streamlabs is so flippy easy to setup compared to OBS. It even prompts you on some starting widgets to add to your stream and walks you through each section
I heard great things about StreamLabs but could not try it out because it’s not Mac compatible. If you’re interested, give it a go. It’s based off of OBS so the rest of the guide will likely apply a lot.
First, you’ll notice that a lot of people are like “k, gotta cover my screen while i log into my vpn, be back in 5”, then a cool lil cut screen comes up. That’s a Scene. Here’s mine.
Switching back and forth between showing your screen with some sound and showing a silent photo, is as easy as clicking between “Scenes”
Note that this is a pretty straightforward scene. It’s named pause and just has two Sources or elements. The Creative Commonsimage and then the simple text that says be right back.
And another update: turns out that you may need to add an extra Source to ensure your mic is muted while you are away. Most people recommend muting your mic physically. I suggest a backup software mute as well. Add an audio source then turn it off.
As someone pointed out to me on Twitch during a livestream, make sure that you have no hidden audio sources! This bit me, too.
My scene, which shows things like my video, chat and so on, is setup like this in OBS.
Here are the Sources for this Scene.
KapChat – if you see chats in other people’s streams and would like a chat stream in your videos, try KapChat. The sample video above does not have the chat yet :( I realized after publishing that other people couldn’t see what we were all were saying so now it’ll be there for future streams.
PubNub Closed Captioning uses AI to automatically subtitle as you speak.. Cool as hell! Closed captioning enables the deaf and hard of hearing community to enjoy your stream. It also helps with people who’d prefer to watch the code on mute.
Audio input capture – in this case, I set mine to “USB Audio Device” or “Default” which is how my Sades headset shows up.
Video capture device – it automatically detected my built-in webcam and boom, that adds a video of me to the stream.
Specific window – so I’m actually RDPing from a Mac to my Windows lab. This Source is that RDP window, the star of the show.
When I am developing for PowerShell Core, it’s easiest and best to develop on the Mac itself. Because of this, I share my entire primary display, as I need to show VS Code, GitHub Desktop, PowerShell itself and more.
You can see in the above screen, the only thing that changes is that the relevant Source changes from Specific window to Display Capture
I mostly use the settings that are from Best OBS Settings for Twitch. I had an issue with choppy video tho, and found these settings worked best.
I don’t understand the mechanics, but here’s what works for me, based off of a 2560×1440 native resolution:
Native Resolution: 2560 x 1440
Base Canvas Resolution: 1920 x 1080
Output (Scaled) Resolution: 1280 x 720
This is important: even though I have 7MB up and a decent setup, my stream started clipping any time my output resolution went above 1280 x 720. So if you think your internet is just weak, try lowering your output resolution.
But really, dig into Best OBS Settings for Twitch and personal testing for fine tuning. Be sure to give your stream at least 10 minutes to crap out.
Recording locally with OBS is a great way to test how your local configs sounds and see how will look when you’re streaming. Just hit Record instead of Stream. I also saw that you can test your stream with Twitch’s inspector but I haven’t played with that yet.
So now that you’ve got your streaming software ready, let’s spruce up your Twitch channel.
First, to setup your avatar and banner, go to your profile. The banner is what appears at the top when you click someone’s avatar/screenname when visiting their channel. In my profile, it’s a picture of my office.
Note that the banner isn’t immediately visible when you visit a profile. It appears only after you click the user’s avatar.
The lil sections at the bottom of people’s channels are called Panels. You can add your own informational panels by clicking the Edit Panels button.
I found someone’s channel and liked their panels so I saved them and used them on my own channel because I figure panels are reused on twitch. Still not sure if that’s accurate or not but I’m thinking yes 🤔
Edit: Since this screenshot was taken, I’ve added three extensions. So this section can do text or image panels or extensions. Both are easy to config.
Panels are a popular thing to customize and you can even download packs of them. nerdordie.com has a Panel generator. OMG, and they even have a Retro Wave Panel Package!
Chat Rules and Moderation
You may notice when you go to most channels, they have Chat Rules. The Chat Rules can currently be found on the Moderation Settings page under Channel Privileges. My chat rules are don’t be a d:\
From the Moderation Settings, you can also block specific terms and phrases. If you’d like a friend to be a moderator, you can add them as one to the Roles page.
I ban a whole lot of stuff, including non-friend raids because I just wanna PowerShell and chill, yenno?
I’m not a huge fan of sharing music within my stream; it subjects portions of your video to be potentially muted and, even if you’re saying great stuff, people may still leave the stream because the music drives them crazy.
OBS blank/black screen
Using an laptop with Nvidia GPU to livestream and get an OBS black screen? This solution totally worked for Sander Stad who ran into the same issue.
I plan to write a follow up post once I learn more about things like the benefits of subscriptions, affiliations and cool features like streaming to both Twitch and YouTube. Hope to see you soon on Twitch! 👩💻