The name comes from a wine-infused discussion around Chocolatey, which was around Nuget, which was around Brooklyn Brewery’s Black Chocolatey Stout, which was bout $9 per bottle. This post however, was sponsored by half a bottle of Pinot Noir, by an unnamed winery somewhere in Wineville. FudgePop itself was contrived from a casual “bet” over a bottle of Dogfish Head 120 IPA that it’s possible to use nothing but free tools and features included with Windows 10 to manage a “group” of such devices from a central location, regardless of where those other devices are located.
Btw, I just uploaded 1.0.16 to the PowerShell gallery
Note: .NET framework 3.5 is recommended for some Chocolatey packages. FudgePop does not install .NET 3.5 by default.
Use the following to confirm/verify the latest version…
Once the module has been installed on each subsequent victim, er, I mean “device”, scaling out is just a matter of replicating the same steps as the previous device. On domain-joined devices, you can use Group Policy to deploy it as well as via PowerShell deployment from Intune for devices joined to Azure AD Premium. Workgroup computers require manual intervention (hands-on, remote connection, etc.)
Creates a new XML control file using the default (sample) provided with the module. Other samples are posted on the project GitHub site. Note that all settings are disabled by default, and filled in with sample/example information only.
New-FudgePopTemplate -OutputFile "c:\devtest\control.xml"
Configures default options such as control file location, enable/disable recurring scheduled execution, and hourly interval between scheduled executions.
Executes the FudgePop agent. If you configured it correctly, magical things happen before your drunken eyes. If you goofed up the configuration, it forces you to watch The View until your eyeballs bleed. That last feature is not yet enabled. Note that this function is what is called by the RunFudgePop.bat script during each scheduled execution (if scheduled execution is enabled).
Invoke-FudgePop -TestMode -Verbose
Disables and uninstalls FudgePop from a client device. It then applies 440 volts of taser current to your genitals until you reinstall it. jk
Displays information about current configuration, last runtime status and rectal thermometer temperature of your cat or dog. That last feature is not yet enabled.
Bonus, low-calorie, gluten-free, and totally vegan function to export basic inventory data from your meth-addicted Windows device. It was a proof-of-concept to export a basic set of juicy and utterly useless data into an Azure SQL database so I could win a bet and enjoy a free sushi lunch. The Azure SQL interface is planned for a future version, but will ultimately depend on user feedback (i.e. does anyone really want that capability?) and how badly I want more sushi.
Get-FudgePopInventory -Computer d001,d002,d003
Get-FudgePopInventory -FilePath "c:\reports\"
Get-FudgePopInventory -StyleSheet "c:\reports\custom.css"
The markdown files were cranked out by a team of recovering caffeine addicts fresh from the Port Authority bus terminal. Actually, they were cranked out with PlatyPs, which is pretty cool, and doesn’t come from the bus terminal. You can find them in the “docs” folder beneath the module path (e.g. “c:\program files\WindowsPowerShell\Modules\fudgepop\1.0.16\docs”).
Use FudgePop in a Sentence
“Hey man. I just took a FudgePop on your mattress.”
You’re drunk. But that’s not unusual with your day job as an airline pilot. You staggered out of an airport terminal, and fell face-first into a random Uber vehicle with the doors open. You wake up the next morning at your apartment, in a bathtub filled with ice, and a clear plastic aquarium tube attached to where your left kidney used to be. You get up carefully, and drag the tube with you to the kitchen and make some fresh ramen with Srirachi sauce and a cup of coffee. The entire time you keep thinking that of all his pranks, your roommate did a fantastic job of making these sutures look and feel authentic.
You grab your roommate’s laptop which has Windows 10 1709 installed, and you logon as a local administrator account and open a PowerShell console using “Run as Administrator”
You set the execution policy to Unrestricted, while staring at the PowerShell book with Don Jones’ picture on it, and say to yourself, “I know, this is very very bad, but I live on the edge baby.”
You then use one finger on each hand to type:
…and press Enter.
(example only. actual results may vary, depending upon your alcohol intake and criminal record)
Then, you can’t help it, but you hurl directly onto your cat, who returns the favor by urinating in your snow boots. You use the cat to wipe your face off, and return back to the keyboard and type:
…and press Enter.
After an IV drip of Death From Above coffee, and a Cat Shampoo enema, you type:
New-FudgePopTemplate -OutputFile wtfisthis.xml
…and make a new control XML file. You edit it to suit your test environment (computer names, collection names, apps, etc.) and copy the XML file to your GitHub Gist. You get the “raw” Gist URL and copy the address to your clipboard.
You make some breakfast from whatever isn’t fuzzy in the fridge and then go back to the keyboard, where you cat fell asleep, causing the letter “zzzzzz” to overflow the buffer and make a machine gun beep sound. You realize that wasn’t Cat Shampoo, but Drano that your poured into the Cat Shampoo bottle because the Drano bottle leaked after you dropped while trying to light your vaporizer with a match. You scoot the kitty off the keyboard, brush off the hair balls and type…
You answer the prompts with one hand, choosing to enable the scheduled run option for 3 hour intervals, while the other hand is manipulating a pair of greasy chopsticks you found in the trashcan because you couldn’t find a fork, spoon, or plastic spork anywhere.
You look around for the mouse, but it’s gone. After scouring the entire house/apartment, you find it buried in the kitty litter box. You recover it, wipe it off on your pants and set it back on the desk and use it to poke around to see what all this FudgePop mess did to your roommate’s computer…
- It created a registry hive under HKLM:Software\FudgePop
- It created a PowerShell module folder under $env:PSModulePath
- It created a Scheduled Task named “FudgePop Agent” under the root folder
- It added $100 to your bank account (not really)
You go back to the PowerShell console, pause, look around for the cat, and think “what in the **** am I doing anyway?” and after 30 seconds of staring into space you remember that you were using your roommate’s laptop for an important experiment, and you continue on.
You type in…
Invoke-FudgePop -TestMode -Verbose
…so you can see everything it would have done if it weren’t using that stupid -TestMode switch. It prompts you to trust some mysterious thing called an “untrusted repository”, but you’ve got 55 gallons of testosterone coursing through your veins, and no stupid sissy warnings are going to scare you off. And besides, you can’t spell “untrusted” without the word “trust” so how could it be bad? Just like your cousin who kept whining about putting that safety “on” when you were shooting at tin cans and you ignored him and shoot him in the foot. Like that’s any excuse to use safety stuff. Yeah. But it’s okay, because FudgePop is only asking you to trust the PowerShell Gallery, so it can install some needed tools.
You toss back another glass of liquor, notice the cat staring at you, making you wonder if she spiked your glass with something special. You ignore that feeling and type…
…just to see what it’s doing to diabolically reconfigure your roommate’s laptop into a tactical nuclear toilet flushing device. Not really, but it’s likely that it’s creating a desktop shortcut for Internet Explorer, installed a bunch of Chocolatey packages like 7-Zip, Visual Studio Code, Office 365 ProPlus, and Putty, added some folders, files and registry keys, reconfigured some services, and installed a custom .MSI or .EXE from an on-premises server share (you know, the “Chris Hansen Kiddy Porn Undercover Arrest Me Kit 2015 Premium Edition.exe” with the important /S switch).
Everything looks great.
But, being that you don’t trust anyone who’s birth certificate says their name is really ‘skatterbrainz’ you decide to look under C:\Windows\Temp and find a “fudgepop.log” file and open it up. Your skull falls in pieces on the floor due to the overload of retinal bombardment of verbosity and quantum-level granularity, and because you’re still hung over AF. But that’s beside the point. You make some tweaks to the control XML file, rub your hands together while nodding and grinning, laughing like a German lab scientist in a WWII movie, not realizing your cat is going to the bathroom on something else you value on the other side of the room. You install FudgePop on another device and repeat the process.
You carefully tie that plastic kidney tube closed using the twisty-tie from the plastic bag you use for the litter box.
Later, your room mate returns, sees what you’ve done and pounds your face into the sofa and leaves.
I hope to return in 2018. Until then: Happy New Year!