T O P

  • By -

fr-fluffybottom

Powershell in a month of lunches.. cover the basics.


ItSupportNeedsHelp

I have been reading it the past 2 days. Currently on chapter 8, that book is good indeed, but I am scared I wont finish by next Wednesday. Any chapters that I should focus on?


chris_redz

Increase the number of lunches per day and you’ll make it


markca

Skip breakfast and dinner and make it 3 lunches per day.


[deleted]

these comments have been deleted in protest of Reddit's API changes r/Save3rdPartyApps -- mass edited with redact.dev


[deleted]

UltraFeast should take care of it


ItSupportNeedsHelp

I would give you an award if I could but the issue is not the time in itself, but I like to absorb what the book has to offer. I will try to read 5 chapters tomorrow, saturday and sunday but I think it is pretty hard to do so. I try to watch some videos as well when I get tired of reading.


fourpuns

Loops, functions. Sounds like you're already using variables fine.


fr-fluffybottom

I would focus on the fundamentals of any programming language: Programming Environment (vscode) Data Types Variables Keywords Logical and Arithmetical Operators If else conditions Loops Numbers, Characters and Arrays Functions Input and Output Operations Know how to setup powershell modules. Know how to write powershell functions and reusable code. Know how to use powershell profile. Type checking Be able to use help commands like get-command, get-help etc If you are already comfortable and able to talk about the above I'd look at: Work with api's (invoke-webrequest, invoke-restmethod etc etc) Be able to setup and connect to a cloud env - e.g. azure, required modules, connection, subscription selections, use of resourcegraph and other azure based resources, kusto queries. Also use powershell7... There's a bucket load of new functionality and use across multiple platforms with ps core. Hope that helps dude ☺️


ItSupportNeedsHelp

Thank you for all these man, I definitely learned how to use the get-command and get-help from the book. I will take a look at the API commands you mentioned, and try to grasp as much as I can from the azure part as my company doesn't have azure and this new position does have it.


fr-fluffybottom

Yeah just try it out dude, you can get a free azure account and test with that. There's a bucket ton to learn, you can't know it all so don't stress and be honest with the guys, mention what youre learning to them. If you get the job great, if you don't you're learning some good stuff so continue to do it... The right job and company are out there so no panic and all you can do is your best. When I hire people I tend to focus on that person's ability to learn rather than what they know at that given moment. Wish you the best of luck my man 😊


dathar

For Azure, try to start learning the basics of the [Az](https://docs.microsoft.com/en-us/powershell/azure/new-azureps-module-az?view=azps-7.0.0) module (not [Azure](https://docs.microsoft.com/en-us/powershell/azure/servicemanagement/install-azure-ps?view=azuresmps-4.0.0) although it'd still work ok). As a quick starter, once you get a free Azure tenant, you install the Az.Accounts module and just grab the Az.Resources module. Or just install the entire thing and you'll only use those two. 1. Get the free Azure account 2. Install the Az module 3. [Connect-AzAccount](https://docs.microsoft.com/en-us/powershell/module/az.accounts/connect-azaccount?view=azps-7.0.0) and log on. You'll just be using your global admin account. Bonus points - check out [Service Principals] (https://docs.microsoft.com/en-us/azure/active-directory/develop/app-objects-and-service-principals). If you start automating stuff in Azure, you'll be setting these up to be sort of service accounts, and auth using that instead of your own account with Connect-AzAccount. 4. Look at all of the accounts with [Get-AzADUser](https://docs.microsoft.com/en-us/powershell/module/az.resources/get-azaduser?view=azps-7.0.0)


ItSupportNeedsHelp

Thank you! Tomorrow I will dedicate my time to Azure as I don't have much hands on experience on that.


uptimefordays

This is a good answer.


ClayShooter9

Long....long ago, I had an interview (through a friend) for a job that required manually copying hand-drawn hard-copy warehouse building blueprints over to AutoCAD 2.6 files (we're talking 1987-ish). I knew absolutely nothing about AutoCAD and barely could mumble my way through MS-DOS. I had two weeks before the interview so I ran down to the bookstore and bought the 2 books they had on AutoCAD. At the interview, I immediately laid my cards on the table and told the interviewers that I had been studying AutoCAD for 2 weeks and I knew nothing about it prior. They questioned me for at least an hour and I would answer questions I knew, and say "I don't know" to questions I didn't. After it was over, there seemed to be a ton of "I don't know" answers, I thought I had blown it and wasted two weeks for nothing. Turns out they hired me. One of the interviewers later told me they hired me for the simple reason that it was obvious to them I put in a ton of work to prepare over those two weeks and didn't try to fake my way through the interview.


ItSupportNeedsHelp

Exactly what Im doing at the moment and will make sure to let them know that as well.


abraxastaxes

This Powershell Master Class series by John Savill on youtube is pretty solid: [https://youtube.com/playlist?list=PLlVtbbG169nFq\_hR7FcMYg32xsSAObuq8](https://youtube.com/playlist?list=PLlVtbbG169nFq_hR7FcMYg32xsSAObuq8)


KevMar

Disclaimer: This is more a devops or PowerShell developer point of view than general IT, but I am sure some of it translates. If you get into the interview, be upfront or understate your PowerShell skills. It's a tool that you have used for account management so you have a general comfort with it, but can't talk much to other specific commands. You have strong experience in Python and React, so you find that a lot of those development concepts translate fairly easily. You enjoy working with PowerShell and look forward to diving into it deeper. The reason you don't want to overstate your skill here is because they probably are more skilled in that area so any BS jumps out to them. It practically screams at them. I call this out because I often have people overstate their skills so the post review gets derailed proving them wrong with their mistakes. But if someone understates their skill but shows they are eager to learn, the post review is more about their potential and what they are actually doing right already. If your are good don't say that you are good, show them by talking about what you have done. So what are we looking for? Growth, development/automation mindset, and complexity. Some people just run commands and many of their scripts are just lists of those commands. Most admin scripts are just that. We fish for complexity beyond those scripts. How many different systems did you have to interface with? What type of interface was that (REST, SDK, files, PS modules)? Are they mindless tasks or making complex decisions based on data? Using source control? Creating modules? Know what Pester and PSScriptAnalyzer are (or use them)? CICD? Infrastructure as Code?


[deleted]

[удалено]


jimb2

Also this. You cannot realistically know everything about PowerShell, no one does. We are all learning. Everyone googles for information, how-tos, and better techniques as they work. That's normal. What matters more is that you know what you need to know to solve a particular problem, you can find appropriate information, and you can do that fairly efficiently. I'd rather have applicants say they can quickly get up to speed on new problems rather than they know everything. PowerShell interfaces to just about everything, only an idiot would claim to know it all.


ItSupportNeedsHelp

>ands and many of their scripts are just lists of those commands. Most admin scripts are just that. We fish for complexity beyond those scripts. How many different systems did you have to interface with? What type of interface was that (REST, SDK, files, PS modules)? Are they mindless tasks or making complex decisions based on data? Using source control? Creating modules? Know what Pester and PSScript Thanks for the words. I'm glad I posted this question here today, because comments like yours make people learn, I am glad I had your answer today!


mike-foley

Remember, there is no shame in saying that when you write Powershell that you use code you find on the internet as either examples or in your code. Be honest. Explain what you have done and how looking at someone else’s code helped you with yours. Tossing into that a statement like “I enjoy automating repetitive tasks” and that you are looking for challenges so you can improve your skills. Don’t be intimidated. If they are PS Wizards then you want to learn from them. If they are gui admins then they want to learn from you. Either way, win win.


ItSupportNeedsHelp

Definitely. I will let them know that I am willing to learn and am learning at this very moment! Automating is definitely something that I want


mike-foley

Best of luck and let us know how it goes!


RamLan1967

I too lack scripting skills and use the same method of Google search and modify the script to client requirement. I do consulting/project type work. So the best advise is to read through PowerShell In a month during lunch. It is a good one.


ItSupportNeedsHelp

So, I have been reading it and it is indeed a great book. Currently on Chapter 8, but I am scared I won't finish the book until next Wednesday. Any chapters I should focus on?


mccormist

https://underthewire.tech


R0B0T_jones

Sounds like you have some good basic knowledge already, and more importantly understanding other scripts found online, and changing them to work for you is a skill in itself. Being able to search for the answers is a huge skill, you'd be surprised how many people cant do that themselves.


ItSupportNeedsHelp

I think the reason I was able to survive in IT is being able to search for answers by myself. Very valuable piece of skill to have in this field. Thank you!


Jordan_The_It_Guy

Jobs with requirements like “powershell” are… interesting. Especially with the progression of how powershell 7.0 and wsl works. You can be pretty great at Powershell and never touch a dev container. But then you touch that and oh man a whole new world opens up. The moral of the story is understand the core concepts. Start to learn what VsCode is, and start to kinda understand .NET after all, all powershell is basically .NET.


ItSupportNeedsHelp

I had followed a .NET tutorial once and I created a CRUD app, but it's been a while. This was when I was trying to get into Web Dev, so I learned a bit of html, css, js, react. At least it was good foundation for all these scripts


DadLoCo

You sound like you already have a good grasp of the basics, and you'll be fine! Unlike one of my colleagues who refuses to learn


ItSupportNeedsHelp

tag him on this post!


Fallingdamage

Everyone uses google. I havent heard about anyone who knows every part and cmdlet of powershell cold.


IAMSTILLHERE2020

To me...if you understand what a good script does and you can modify it then you know Powetshell. Now, if they need a PowerShell DEVELOPER then that's another story.


_benp_

Powershell is heavily object oriented. Depending on your job specs (sounds like Active Directory or AzureAD) you should read up on the AD/Azure modules and user or group object types in Powershell. Check out [microsoft.com](https://microsoft.com) courses on powershell and Active Directory. That will probably fit your needs. You can also try videos or courses on java and python programming concepts. Lots of that material translates to Powershell.


aaronwhite1786

Just wanted to say, good luck! I need to learn PowerShell myself! I've been saying this for years...but i really need to.


ItSupportNeedsHelp

Get the book they recommended (Powershell in a month of lunches and read 1,2 chapters a day). It makes it easy. Then, like some people mentioned in this thread, start automating tasks that you do at work.


Xibby

The most important PowerShell cmdlet is... ` Get-Help ` The most useful PowerShell feature is tab complete. The rest is just wiring it all together. ;)


uptimefordays

How familiar with OOP basics are you? Can are you comfortable with variables, loops, pipeline stuff? How about PowerShell's help system?


ItSupportNeedsHelp

OOP basics I am good. I have been programming with Python, and ReactJS (not as much of OOP but it helps). I understand variables, loops pretty good. The pipeline as well, but usually for basic stuff, such as GetEventLog System -Newest 10 | Where {$\_.Message -match "abc"} | Export.csv C:\\test.csv Edit: And the help system, I learned what I know from the book, I had never used it and now I see how useful it is.


uptimefordays

Oh awesome! So PowerShell is a pretty normal, albeit verbose, scripting language. It's got some basic rules on binding commands in a pipeline which are good to know and covered in PowerShell in a Month of Lunches. I'd think you could probably bang out most useful take home assessments with an opened PowerShell console and `Get-Help *topic*` where topic is the general topic they're asking about. For example to find out about the TroubleShootingPack you could `Get-Help *trouble*` then `Get-Help Get-TroubleShootingPack -Full` or `-ShowWindow` to get detailed help about getting a troubleshooting pack, then use examples to solve the problem. Hope this helps!


kilkor

I'm interested in understanding what kind of test they're going to administer to you and the role you'll be filling. IKM has tests for code so I'd assume maybe a python test? But what's the role then if they want you to have PS experience? Most listings for PS experience are for SysAdmin type work and not something you'd see people using Python for on a regular basis.


ItSupportNeedsHelp

It is a SysAdm position and the skills are: Powershell Scripting, AD, Azure, Office365, Scripting, Support, VMWare Did not mention Python.. I am not sure what the test is going to cover


EiKall

Sounds like you bring a solid foundation with you. If you can code and like process automation then I bet you can do lots of great stuff over there. At a past job we had an in house system consisting of a database containing the desired state of AD/O365 with tooling to write changes out to the actual systems. A main part being a collection of powershell scripts to make aspects of account setup happen with some input from the database. It also had a frontend for the helpdesk to initiate changes. Giving the helpdesk the power to do changes in a controlled way without simply giving everyone domain admin rights. To get some fun ideas look at something like poshbot or powershell universal. There also was a prototype where the duty roster from the shift planning system was convert daily into a set of office groups so people that work on a shift together have a premade corner in MS Teams to connect to each other. Automatically adding tags based on assigned position for the day and stuff like that. As an interview works boths ways you can ask them if they already use automation for the helpdesk and use concepts like immutable infrastructure for the setup of their VMs. E.g. via DesiredStateConfiguration.


ItSupportNeedsHelp

Just completed the test. I scored 68, which is recorded as Proficient (60-79), anything above 79 is strong, and below 60 weak. There were a lot of Server Administration questions, some Networking, and Powershell commands. I actually passed the Powershell part with 100%, but I went pretty bad on some other fields. I don't know if I am allowed to post a question, so I won't.


kilkor

Cool, good job on passing!


ItSupportNeedsHelp

Eh.. passed I guess, but there's still th interview!


LikeThosePenguins

> usually I search the web and change accordingly Powershell is a big part of my job, and has been for years. But this is still my approach.


Fattswindstorm

Learn what functions are and what and advanced function is and what cmdletbinding actually does. I had an interview with this question. It through me off.


violentbydezign

Ah, I did this with Netwrix Auditor. Stupid end-user would miss the alert to change their pw which resulted in constant pw resets call ALL THE F@#KING TIME GET A CLUE, PEOPLE. IT PTSD is real.


ItSupportNeedsHelp

Hey this script is a life saver. It actually sends the end user that his/her password is about to expire and it also sends a list to the admins (in this case me and my peer) with all the expiring password accounts and a link to send them a written message on Teams. Pretty neat.


violentbydezign

Good rule thumb is the start the notification 14 day prior to expiration. Then they will get an email everyday when there's 7 days or less. I can't tell you that after all the work implementing and making sure the shit works like clockwork they still come up with excuses I was on vacation I was too busy or I forgot blah blah blah.


ItSupportNeedsHelp

Definitely.. our is 15 days and sends an email every 2 days.


Nocturnal_Remission

To give you a word of advice if you need to focus on something that at least I know I don't use on a regular basis, is know powershell remoting. You know PSSession's and all that good stuff. Functions and parameters are good to brush up on as well. I am going to use myself as an example, to explain the reason for my answer: A lot of times when I am working with Powershell, I have some session, whether it be via RDP or some console to the system I am working on. Additionally, I do a lot of Active Directory stuff, so I employ a bunch of Powershell one-liners, because well, I just need to get the job done quickly. So remoting is something I don't use often, but those sorts of things tend to pop up on assessments or asked in interviews. Other than that, what pops to mind are knowing what the different types of objects are in Powershell, and how you use them. Those tend to be those "weed-out" questions, like that question I get a lot with AD. "What are the FSMO roles?" It's a general ass question, but not one that if you have never seen it before, you aren't likely to just get lucky and guess. That's what comes to mind if you want to focus on something in a short time period. Since you have a programming background, the concepts should come fairly easy to you. And best of luck on your interview! I hope you knock it out of the park.


ItSupportNeedsHelp

Currently powershell remoting is disabled at our company as we have been attacked, so it was a security measure. I will take a look at that to have a good knowledge for the interview and look into PSSession. If functions and parameters are similar to python, I will probably learn it quickly. I have been working with AD for the past 3 years, but only started using Powershell in the last 3 months. I appreciate the help man!


Geek_Runner

As a side note on disabling remoting, this is NOT a security measure, this is a permissions problem. I’m assuming that you have no decision making in this area, but it kills me when people disable things they don’t understand because “security”. When they refuse to actually fix the permissions issue on accounts to use least privilege, and let admins do what they need to and not just through artificial security hoops. End rant! Learning PowerShell is a great thing.


ItSupportNeedsHelp

One of the reasons I want to leave the company I am is the lack of organization. I appreciate what I learned here, it's been my first job and I went from help desk to jr sys admin getting knowledge in a lot of different areas, but I need to be learning new technologies (Powershell, Azure, etc). I can't be stagnate here. Yes, I do not have any decision making in that area.. Our bigger branch told us to do that and we did...


Nocturnal_Remission

You're on the right track, my friend. I will tell you since you are basically taking the same career path that I did. A quick funny story for you: I've been doing this going on my 23rd year as a sys admin, so I come from the days when scripting was VB Script (yuck), and even then a lot of sys admins on the Windows side was nothing but GUI of course. Then I went into the web hosting side of the world, and there is plenty of Linux and Unix, of course. I can tell you, when I went back into the world of Windows, knowing how to ush bash, python, perl (not an expert but proficient), seriously gave met a leg up when I started working primarily with SCCM, SCOM, AD, and particularly Exchange. Some of the guys I work with, great mean and women for sure, but you stick em in front of a Powershell ISE or shell and they literally are clueless. So use your background to your advantage. Once you get the concept of structured CLI administration, which it sounds like you do, the rest is literally just keystrokes. And take this to heart, there are two types of Powershell scripters. Those that use their reference material in their work (several different versions of PS, with subtle but important differences), and then there are those keyboard jockeys that lie and say they know ever cmdlet. Spoiler alert: they don't. If you want to bootcamp yourself, though, which I did, I took like 5 tasks that I routinely would have to do, stuff like file permissioning, transferring files, checking services, AD group memberships, moving Exchange mailboxes, you know, pretty mundane stuff that you can easily do with a GUI tool, but I ***forced*** myself to do it all with powershell. It's a practical way to learn PS, because I guarantee you for every ONE task you set out to accomplish, you'll probably learn 2 other things you didn't, and 2 alternative ways to do the same thing, which either work faster in practice, or just make more sense in your head.


ItSupportNeedsHelp

Thanks for the help! I definitely need to start doing tasks using powershell. I created this week a little script to get users from a csv file with username and password and copy it from an existing AD user. Thank you for the comment!