-
Posts
9206 -
Joined
-
Last visited
-
Days Won
367
Everything posted by anyweb
-
‘Tis the season to be caring – for your loved ones, for each other, and yes, even for your data and mailboxes. If you’re a Microsoft 365 administrator, celebrate with us. All you have to do is sign up for free to 365 Threat Monitor and set up your account! How does it work? - Sign up to 365 Threat Monitor - Receive a guaranteed $10 Amazon voucher and a chance to win one of the Grand Prizes! - For every valid entry, we’ll make a $10 donation to One Laptop per Child What are you waiting for? Sign up now!
-
this shouldn't cause the devices to 'not' get task sequence policy, which is essentially what is happening, i don't know enough about how your environment is setup to give conclusive proof, you could for example have some pre-start command that is running to add the computer into the collection(s) needed for UI++,. that would require further investigation from you, and maybe that pre-start (if there is one) is getting confused on these Dell computers.
-
Introduction Note: In a previous blog post I showed you how you can deploy an Operating System from a Cloud Management Gateway (CMG) using bootable media. That blog post assumed you had a working network connection (wired) and also required the use of bootable media. Please review that blog post and associated video before starting this one. This new ability to deploy OS via the CMG was added to Configuration Manager version 2010, screenshots in this blog post come from Configuration Manager version 2111. In this blog post, I'll show you how to allow your users to self-service deploy an operating system from Software Center. That task sequence will run some steps to ensure that they are connected to a LAN cable or USB-C docking station prior to starting. But why is this important ? Well, if the user is connected to Wi-Fi, then as soon as the task sequence reboots, the boot image will load and unless it knows exactly what Wi-Fi hotspot the user was connected to and unless it has Wi-Fi support and necessary certificates built in (unlikely) it will fail to pull down any content as there will be no network. Their are 3rd party custom solutions that can allow you to connect to Wi-Fi via the boot image, I haven't tested them yet due to complexities with our own Enterprise Wi-Fi, but here's a comprehensive example. So assuming that you don't want to use Wi-Fi, read on. In this blog post I'll show you how to automatically check the type of network connection, and to popup a message to the end user if no wired connection (802.3) is detected. this is done using the PhysicalMediaType and Status properties from Get-NetAdapter. In the sample below I check for all network adapters on a computer. It lists both wired and wireless (as well as virtual (non-physical)) network adapters. The red box shows the output from a laptop that is docked, as you can see multiple network cards/types are listed. Get-NetAdapter The green output shows the same command but filters on 802.3 physicalmedia type. Get-NetAdapter | Where-Object PhysicalMediaType -EQ 802.3 Taking it one step further, you can add the -physical attribute to only show physical network adapters. Get-NetAdapter -physical | Where-Object PhysicalMediaType -EQ 802.3 and from the two network adapters listed here, we can see that only one of them has a status of Up, meaning that is it connected. We could even filter for that as shown here. Get-NetAdapter -physical | Where-Object {$_.PhysicalMediaType -EQ 802.3 -and $_.Status -EQ "Up"} Using this logic we can build a script to detect the desired type of network and to popup a message to the end user if it's not connected. Step 1. Get the script The following script does the checking, save it to a folder called CheckNetworkCable. <# .SYNOPSIS This script checks if a network cable is connected or not, if not, pops up message to connect .DESCRIPTION For more info see https://www.windows-noob.com/forums/topic/22678-checking-for-network-cable-connections-before-deploying-an-os-from-the-cmg-via-software-center/ .PARAMETER [none] This script does not take any parameters. .EXAMPLE .NOTES Version: 0.1 2021/12/5 Version: 0.2 2021/12/6 lan cable re-check Version: 0.3 2021/12/7 hide tsprogressui Version: 0.4 2021/12/8 loop through multiple 802.3 NIC types if present and check status, added Cancel ability to the popup message Version: 0.5 2021/12/9 check for VM and exit if so, added ExitValue .LINK .Author Niall Brady 2021/12/5 #> Function LogWrite { Param ([string]$logstring) $a = Get-Date $logstring = $a,$logstring Try { Add-content $Logfile -value $logstring -ErrorAction silentlycontinue } Catch { $logstring="Invalid data encountered" Add-content $Logfile -value $logstring } write-host $logstring } function CheckCable{ # checks 802.3 LAN connections for a status of Up, loops through all 802.3 nics found before popping up message if none are connected $global:connected = $null $networkcards = Get-NetAdapter -Physical | select Name, PhysicalMediaType, InterfaceDescription, Status LogWrite "Checking the following 802.3 NIC(s): " $networkcards foreach ($networkcard in $networkcards) { # only interested in 802.3 nics... if ($networkcard.PhysicalMediaType -eq '802.3'){ $description = $networkcard.InterfaceDescription LogWrite "examining the following NIC: $description" if ($networkcard.status -eq 'Up') { LogWrite "Network Cable: CONNECTED" $global:connected = $true $ExitValue = 0 ExitScript ($ExitValue) } else { LogWrite "Network Cable: DISCONNECTED" $global:connected = $false } } } LogWrite "Showing end user the 'Please connect to a network cable' popup message" Add-Type -AssemblyName PresentationCore,PresentationFramework $msgBody = "Please connect to a wired network or USB-C docking station to continue. Once connected, wait a few seconds then click <OK>, or click <Cancel> to abort this operation." $msgTitle = "You must connect to suitable network." $msgButton = 'OKCANCEL' $msgImage = 'info' $Result = [System.Windows.MessageBox]::Show($msgBody,$msgTitle,$msgButton,$msgImage) LogWrite "The user chose: '$result'" $global:connected = $false if ($Result -eq 'Cancel') { LogWrite "The user chose cancel to insert network cable popup message" $ExitValue = 1 ExitScript ($ExitValue) } } Function ExitScript ($ExitValue) { LogWrite "Exiting from the '$scriptname' version '$version' script with exit code $ExitValue." Exit $ExitValue } ########################################################################################### # script body starts here... $scriptname = "Check if LAN cable is Connected" $version = "0.5" $logfile = "$env:temp\CheckNetworkCableConnected.log" LogWrite "Starting the '$scriptname' version '$version' script..." #Hide the progress dialog try { LogWrite "hiding the task sequence progress user interface" $TSProgressUI = new-object -comobject Microsoft.SMS.TSProgressUI $TSProgressUI.CloseProgressDialog()} catch {LogWrite "failed to hide the Task Sequence UI, are we really in a task sequence ?"} # check is this a vm, exit if so... $IsVirtual=((Get-WmiObject win32_computersystem).model -eq 'VMware Virtual Platform' -or ((Get-WmiObject win32_computersystem).model -eq 'Virtual Machine')) if ($IsVirtual) {LogWrite "virtual machine detected, will exit now." $ExitValue = 0 ExitScript ($ExitValue) } else {LogWrite "Virtual machine not detected, continuing..."} do{ LogWrite "Looping until connected..." CheckCable } until($connected -eq $true) $ExitValue = 0 ExitScript ($ExitValue) Step 2. Get ServiceUI.exe from MDT You'll need the ServiceUI.exe executable file to display user interfaces (UI) to end users when operating in SYSTEM context. To get the file, download and install MDT somewhere and navigate to C:\Program Files\Microsoft Deployment Toolkit\Templates\Distribution\Tools\x64. To download MDT click here. Copy the ServiceUI.exe file to your extracted CheckNetworkCable folder so it looks like this. Next, copy this folder to your package source on your Configuration Manager server. Step 3. Create a package (with no program) In ConfigMgr create a new package *with no program* using the files in the CheckNetworkCable folder you created above. Step 4. Distribute the package After creating the package, right click it and choose Distribute Content. Distribute the content to all of your CMG's and any other on-premise distribution points. Step 5. Edit the task sequence and point to the package In your task sequence, add the following lines at the start of the task sequence. cmd.exe /c mkdir C:\Windows\Temp\OSDScripts\ Then copy files to the C:\Windows\Temp\OSDScripts folder.. xcopy ".\ServiceUI.exe" "C:\Windows\Temp\OSDScripts\" /D /E /C /I /Q /H /R /Y /S copy another file... xcopy ".\CheckNetwork.ps1" "C:\Windows\Temp\OSDScripts\" /D /E /C /I /Q /H /R /Y /S Run the script, note: do NOT select the timeout value in this step otherwise it will fail. C:\Windows\Temp\OSDScripts\ServiceUI.exe -process:TSProgressUI.exe %windir%\system32\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden -NoProfile -ExecutionPolicy bypass -File C:\Windows\Temp\OSDScripts\CheckNetwork.ps1 Apply the changes. Don't forget to distribute the content contained in your task sequence to your CMG. Step 6. deploy the Task sequence Deploy your task sequence as Available to a collection containing client computers that you intend to test with, make sure that the following option is selected. Step 7. Test the solution On a client computer with real network cards (or with a connection to a USB-C hub or Thunderbolt 3 dock that is in turn connected to a wired LAN), verify that the Configuration Manager client detects that it is connected to the Internet and that you can see the task sequence in Software Center. For the purposes of the test, unplug the dock and/or network cable and use Wi-Fi to test. Note: The script detects virtual machines and assumes they have network connectivity and therefore skips the popup. This particular task sequence also informs the user about the type of network they need to use, but we'll still run our detection script. If the user is not connected to a wired LAN cable or USB-C docking station, they'll get this popup. After connecting to the required network type and clicking OK the task sequence will continue. Job done. Troubleshooting The script logs to C:\Windows\Temp\CheckForNetworkCable.log. Below we can see that at first the cable was disconnected, and then the user connected the cable and it allowed the script to continue. Related reading https://docs.microsoft.com/en-us/mem/configmgr/osd/deploy-use/deploy-task-sequence-over-internet
-
if you look at your task sequence and click on the deployments tab, check what collections is it deployed to, if your computer isn't in one of those collections then it won't see the task sequence, if your computer is in a collection targeted by the task sequence them and has been imaged before it won't re run the task sequence unless it's re-deployed to that device or the device deleted regarding the front end you are using, it's probably trying to run a deployment using direct membership (adding a device record to a collection that the task sequence is deployed to), can you confirm that ? if so, verify if your computers record is in that collection (or not...)
-
Problem upgrade W10 via SCCM
anyweb replied to adelgehier's topic in System Center Configuration Manager (Current Branch)
are there any differences on the clients that work, versus those that fail, for example are their language packs installed ? -
Problem upgrade W10 via SCCM
anyweb replied to adelgehier's topic in System Center Configuration Manager (Current Branch)
ok have you also deployed a Servicing Stack Update to those devices ? Download the SSU from: https://www.catalog.update.microsoft.com/Search.aspx?q=KB5005260 -
Problem upgrade W10 via SCCM
anyweb replied to adelgehier's topic in System Center Configuration Manager (Current Branch)
are you pushing a task sequence or some other method, more details would be useful -
whether you start again or not is up to you, are you doing this in a lab ? did you take snapshots/checkpoints ? did you see my comment about what the actual error referred to...
-
did you try contacting the author of that guide ? clearly it cannot download something, have you tried downloading/verifying the url it's referencing ? I'd also recommend you follow my guides instead, they work every time ? Setting up PKI Part 1 - Introduction and server setup Part 2 - Install and do initial configuration on the Standalone Offline Root CA Part 3 - Prepare the HTTP Web server for CDP and AIA Publication Part 4 - Post configuration on the Standalone Offline Root CA Part 5 - Installing the Enterprise Issuing CA Part 6 - Perform post installation tasks on the Issuing CA Part 7 - Install and configure the OCSP Responder role service Part 8 - Configure AutoEnroll and Verify PKI health
-
Attempting to deploy League of Legends via SCCM (.exe)
anyweb replied to coolsport00's question in Deploy software, applications and drivers
the thing is when you deploy apps during OSD they should be installing in SYSTEM context and that is something that the user cannot see or interact with, so.... once you know this, you have to look at the options in the app itself to get it to install without any user interaction, or... deploy it to USERS after OSD -
Attempting to deploy League of Legends via SCCM (.exe)
anyweb replied to coolsport00's question in Deploy software, applications and drivers
they must run silently, so figure out a way to do that and you'll be golden, OR bite the bullet and install the app AFTER the osd part is done, on the users first login, where they CAN click on stuff -
attach your cmupdate.log and we can take a look
-
If you have experience with the Windows Admin Center, you might already have deduced it is a powerhouse of functionality making light of important server management tasks. If you’re just adding it to your system administrator toolbox, welcome to the wonder of Windows Admin Center! With so much functionality, figuring out where to focus is key. Whether you’re just setting out with Windows Admin Center or wanting to realize its full potential, start with Altaro’s free 160+ page second edition eBook, How To Get The Most Of The Windows Admin Center. Written by Microsoft Cloud & Datacenter Management MVP Eric Siron, it covers the latest developments like the Control Azure Stack HCI, use of WinRM over HTTPs and integration with Azure Monitor, amongst others. It’s a comprehensive guide on everything from installation methods and security considerations to integrating Windows Admin Center into an existing environment. There is even a brief history lesson along with a comparison to alternatives so you should get a solid overview of Windows Admin Center, why chose it and how to work with it. An all-new server management experience when it was introduced, Windows Admin Center modernized administrative activities with a centralized HTML 5 web application. Just add servers, clusters, desktops, and Azure virtual machines into a personalized, persistent interface, and manage their roles, features, software, registry, PKI certificates, and more. And with Microsoft’s latest investment into the Windows Admin Center and new functionality, there is now even more server management power to work with. Learn to simplify and optimize your server management tasks - Download your free eBook now!
-
Introduction I previously posted a blog post showing you how your users can decommission their old domain joined PC using the Retire My PC app. I showed you how to create the app and deploy it via Software Center to your users' old computer. The reason why this app exists is to allow users to decommission their old PC when it suits them and not have to rely on onsite support staff or a third party service to secure company data stored on the old PC before it gets returned to the vendor or seller. This is achieved by ensuring the device is protected by Bitlocker and then deleting the Bitlocker protector from the TPM prior to shutting down the device. There is much more going on in the app, please see the list of original features below. stops the ConfigMgr client agent service (if one is running) stops the MBAM agent service (if one is running) rotates the BitLocker key (optional) WIPEs the BCD registry entries (optional) joins a workgroup clears the Bitlocker TPM protector adds a record of all this to Azure Tables emails the log to a support inbox In this blog post I'll show you how to deploy a newer, more secure version of the app via the Company Portal in Microsoft Endpoint Manager (Microsoft Intune) which can be used on Intune managed, Azure AD joined computers. This version of the app has some new abilities which are highlighted below. Available in Company Portal Allows the user to select the type of decommission (Recoverable or Secured) If the Recoverable option is selected, the Bitlocker protector is removed from the TPM. If a support technician or the end user has access to the recovery password info, they can enter it at the boot screen and therefore can boot back into Windows. If the Secured option is selected, not only is the Bitlocker protector removed from the TPM but the Bitlocker key is rotated and the new key is not uploaded to Azure AD, or ConfigMgr or MBAM. Therefore the admin and the end user will not have the recovery info needed to boot the computer. In addition, the BDE registry keys are completely wiped out, so even if they manage to get the rotated key (from the email sent to the configured support inbox, read the NOTE below) this would only allow file access, Windows will not boot. Regardless of which option the user chooses, the device will NOT boot into Windows after it's retired as it cannot due to the missing Bitlocker protector in the TPM, and this secures the PC from unwanted access. However, if the user selects cancel in the main UI, the detection method file is removed so they can reinstall the app on-demand via Company Portal. NOTE: You can also modify the script to not include the rotated recovery key information in the email making the device very secure indeed. If you do this, the device (and the data on it) can never be recovered as the rotated Bitlocker key is not stored anywhere. As this is so drastic, I've left this recovery info in the email. This email will never be seen by the end user and is sent to a shared help desk inbox. Once you are happy with the way things are going, you can optionally remove this info from the log to ensure company data is 100% secured on decommissioned devices. Before starting, please read the original Retire My PC blog post to get an understanding of how to set this all up. You can skip the creation of the app in ConfiMgr if you are using this in cloud only environments. Step 1. Get the scripts Note: You can only download these files when logged on to https://www.windows-noob.com Retire My PC.zip Download, unzip and extract the files. Step 2. Get ServiceUI.exe from MDT You'll need the ServiceUI.exe executable file to display user interfaces (UI) to end users when operating in SYSTEM context. To get the file, download and install MDT somewhere and navigate to C:\Program Files\Microsoft Deployment Toolkit\Templates\Distribution\Tools\x64. To download MDT click here. Copy the 64 bit version of ServiceUI.exe file to your extracted win32app_source folder so it looks like this. Step 3. Get the Win32 content prep tool Download the Win32 content prep tool from here. Copy the IntuneWinAppUtil.exe file to your Retire My PC source folder, it should look like this. Step 4. Modify the script Open the securewipe.ps1 script. Configure the $ToAddress and $FromAddress variables. Using your Sendgrid API key, paste your API key value (line 615 below). Add your httptrigger1 URL add your httptrigger2 url here If you want to completely remove the rotated key from the email, rem out the following lines marked in yellow Save the changes to the script. save your changes. Step 5. Create the Intunewin package Open a command prompt and browse to the reset-windows folder structure. Launch the IntuneWinAppUtil.exe file and answer the following. Please specify the source folder: win32app_source Please specify the setup file: securewipe.ps1 Please specify the output folder: win32app_target Do you want to specify catalog folder (Y/N)? n as shown here. After doing that you'll have the securewipe.intunewin file in the win32app_target folder. Step 6. Create the Win32 app in Endpoint Manager Log into https://endpoint.microsoft.com and add a new Win32 App. Below are some screenshots showing how I've configured the app. For Select app type, select Windows app (Win32) from the drop down menu Click on Select app package file and point it to the securewipe.intunewin file in the win32app_target folder. fill in some info about the app for the logo, click on Select image and point it here... fill in the install commands fill in the requirements and the detection rules.. finally deploy it to your users that should be retiring old pc's... and save the app. This is what the end user will see after launching the app from the Company Portal once they make their selections and clicking OK clicking OK to this warning will start the process and some seconds later the device will no longer be able to boot. The recovery key data stored in Microsoft Endpoint Manager will not contain the latest rotated key from the device if the user selected the <Secured> option. The only place you'll find the recovery key data, is in the email sent to the shared help desk inbox if you optionally decided to include that info. The app logs to C:\Users\<USERNAME>\AppData\Local\Temp\win.ap.securewipe.log and this log file is emailed to your shared help desk email inbox. Job done !