Windows Server

Windows Servers Tips

SCCM – Change Site Code on multiple computers

If you had to change the sccm client site code on multiple computers (after sccm migration or new/upgraded server installation) nowadays you might have discovered that it’s not as easy as it should be. You could push the new site client to all computers generating a lot of heat to the network or try deprecated wmic (miserably fails). I wanted to avoid mass client push and found that the following quick and dirty script works well: First create a list of all computers using your favorite method, I already have a text file with them so I’ll just use it, it’s named mycomps.txt and it is in my current folder.

PSWriteHTML is awesome

Recently I was playing with the excellent PSWriteHTML powershell module and ended up creating a dashboard from events. Since I had a hard time going through all of the dashboard option, I’ve decided to share what I did, may be it will help someone. The example script requires PSWriteHTML module installed. Event properties I got from here, don’t know is this the original author, anyway, I wish all good to the author, whoever he is! I do not pretend this is the best code ever, however, IMHO it is doing the job right, It works out of the box, just adjust server names ($srv), taking the reboots for the last 30 days with max events… Read More »PSWriteHTML is awesome

PowerShell HTML System Report

I’ve been playing with HTML in PowerShell and ended creating not so bad script including function that creates HTML report with system info for a remote computer/server. In includes Operating System, CPU, Memory and Hard Disk, CD-Rom Info which are exported to a html file. It’s not a piece of art, have some basic error suppression, but if someone needs some info quickly it will do the job. Enjoy and leave me a comment if you need help using the script. Special thanks to Ansgar Wiechers and StackOverflow How to use: From the script folder (start powershell as admin) The entire package can be downloaded from the link below: Get-SystemReport

WSUS on secondary SCCM site

WSUS on Secondary Site   Generally speaking if everything is OK you install WSUS role with the same setup as your primary site, launch the console once, close it, install SUP from the SCCM  and configure it and that’s it. However, sometimes the WSUS breaks and when that happens it is usually a pain to get it back. These are just my two cents. Good post on SUP installation could be read here. Setting up WSUS + SUP on a Secondary Site (SCCM2012) Uninstallation TIPS: I would uninstall the WSUS and WID roles, and DELETE any resource used by WSUS. This includes: The %ProgramFiles%\Update Services folder The ~\WSUS folder tree The HKLM\Software\Microsoft\Update Services registry key. –… Read More »WSUS on secondary SCCM site

Microsoft Windows Security Audit Event Accesses IDs

I’m working on a powershell script extracting the file server audit log and creating a human readable html out of it when I got stumbled by the beautiful codes below (which are really hard to find) and decided that they deserve a re-post. Thanks to this guy for translating them. The list below is from WinXP, there are more codes in the newer windows versions, however, these are still valid. Here is the link to the TechNet post. BTW the Resource Hacker  still works and you can use it to extract the codes from %windir%\system32\msobjs.dll . Please note that you’ll have to translate them from HEX to decimal to receive the values you got from the… Read More »Microsoft Windows Security Audit Event Accesses IDs

No Internet Access Icon Windows 7/2008

Today I had to do this for an isolated network, it was a great reminder 🙂 I had some missing GPO templates (2008 R2 server) which are easily obtained from Microsoft Installation is straight forward and explained under Install Instructions. And yes, you need both policies enabled.

Install Primary and Additional Domain Controller With PowerShell Cheat Sheet

# # Windows PowerShell script for AD DS Deployment #Do no forget to rename the computer, set static IP, enable remote desktop if needed and so on # Install-WindowsFeature AD-Domain-Services Install-ADDSForest ` -CreateDnsDelegation:$false ` -DatabasePath “C:\Windows\NTDS” ` -DomainMode “Win2012” ` -DomainName “” ` -DomainNetbiosName “DOMAIN” ` -ForestMode “Win2012” ` -InstallDns:$true ` -LogPath “C:\Windows\NTDS” ` -NoRebootOnCompletion:$false ` -SysvolPath “C:\Windows\SYSVOL” ` -Force:$true #Add Secondary DC # # Do not forget to rename the computer first Rename-Computer -NewName whatever #Set Static IP and DNS #Could be done with interface index as well #get-wmiobject win32_networkadapter | select netconnectionid, name, InterfaceIndex, netconnectionstatus #netconnection status 2 gives us only connected adapters 🙂 New-NetIPAddress -InterfaceAlias Ethernet -IPAddress YOURSERVERIP  -DefaultGateway GATEWAYIP -AddressFamily IPv4… Read More »Install Primary and Additional Domain Controller With PowerShell Cheat Sheet

PowerShell TimeZone, Date and So On

If someone ever wondered how to change time, timezone or date in a powershell session or in a core server here is how. If today is 27 May 2017 and we want to set the clock to 16:12: Set-Date -Date “5/27/2017 16:12” More on this here. If only the timezone needs to be changed lets say to Central European: Set-TimeZone -Id “Central European Standard Time” List of all time zones could be obtained in powershell with the following command (Thank you scriptingguy you are priceless): [System.TimeZoneInfo]::GetSystemTimeZones()    

Query Workstations SCCM

Fox x64 bit workstations: Or use the one from this Technet post select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_OPERATING_SYSTEM on SMS_G_System_OPERATING_SYSTEM.ResourceID = SMS_R_System.ResourceId inner join SMS_G_System_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceID = SMS_R_System.ResourceId where SMS_G_System_OPERATING_SYSTEM.Caption like “%7%” and SMS_R_System.Client = 1 and SMS_R_System.Obsolete = 0 and SMS_G_System_COMPUTER_SYSTEM.SystemType = “x64-based PC” If you dont want to filter obsolete and client installed machines remove ” SMS_R_System.Client = 1 and SMS_R_System.Obsolete = 0 and” For x86 workstations:   select *  from  SMS_R_System inner join SMS_G_System_COMPUTER_SYSTEM on SMS_G_System_COMPUTER_SYSTEM.ResourceId = SMS_R_System.ResourceId where SMS_G_System_COMPUTER_SYSTEM.SystemType = “X86-based PC”