Server
- FOG Version: 1.4.2
- OS: Ubuntu 14.04
Description
I am replacing a computer lab. I need to give the new desktops the names that the old ones had.
I’ve done a search and an export, but the hosts aren’t listed.
I am replacing a computer lab. I need to give the new desktops the names that the old ones had.
I’ve done a search and an export, but the hosts aren’t listed.
@m144 said in Windows desktop shortcuts... .ico images gone after sysprep!:
@avaryan WOW that was quick… Did you just make this!
Modified from something I previously wrote so that I could apply auto login values in bulk via IP addresses exported from DHCP and saved in a csv file. This was at a time when our DNS records weren’t reliable so the tool that I typical use to set auto login wasn’t working reliably.
The original, in case anyone ever needs it for something:
<#
.Synopsis
Enables Automatic Login with supplied credentials.
.DESCRIPTION
Logs off all users, sets AutoLogon registry keys with entered values, restarts the computer.
.EXAMPLE
./Set-AutoLogon.ps1 -ComputerName PTSD-TestComputer -Username PTSD\TestAccount -Password Password123 -TimesToLogin 3
This will automatically logon to PTSD-TestComputer three times as the TestAccount user. The computer will revert to the normal logon procedure after the third automatic logon.
.NOTES
Supplied credentials are stored in plain text in the registry. They are removed from the registry when the number of
automatic logons is depleted.
#>
Param(
[parameter(Mandatory=$true)]
[String[]]
$ComputerName,
[parameter(Mandatory=$true)]
[String]
$Username,
[parameter(Mandatory=$true)]
[String]
$Password,
[parameter(Mandatory=$false)]
[Int]
$TimesToLogin = 1
)
$credentials = Get-Credential
Invoke-Command -ComputerName $ComputerName -Credential $credentials -ScriptBlock {
Param($Times, $User, $Pass)
$shutdown = $env:SystemRoot + "\System32\shutdown.exe"
Start-Process -FilePath $shutdown -ArgumentList '-l -f' -Wait
Start-Sleep -Seconds 2
$path = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon'
Set-ItemProperty -Path $path -Name AutoAdminLogon -Value 1
Set-ItemProperty -Path $path -Name DefaultUserName -Value $User
if (-Not (Get-ItemProperty -Path $path | Select-Object -ExpandProperty "DefaultPassword" -ErrorAction SilentlyContinue )) {
New-ItemProperty -Path $path -Name DefaultPassword -Value $Pass | Out-Null
}
Set-ItemProperty -Path $path -Name DefaultPassword -Value $Pass | Out-Null
if (-Not (Get-ItemProperty -Path $path | Select-Object -ExpandProperty "AutoLogonCount" -ErrorAction SilentlyContinue )) {
New-ItemProperty -Path $path -Name AutoLogonCount -Value $Times | Out-Null
}
Set-ItemProperty -Path $path -Name AutoLogonCount -Value $Times | Out-Null
Restart-Computer -Force
} -ArgumentList $TimesToLogin,$Username,$Password
Regarding the auto login issue. I have a FOG Snapin called “(9) System Restart”. It’s just a blank text file with the “Reboot after install” option enabled in the snapin settings.
FYI: I have the number there to assign deployment priority. FOG will pull them alphabetically. “(0)” is my SCCM client. “(4)” are my normal applications, etc…
@m144 said in Windows desktop shortcuts... .ico images gone after sysprep!:
- The fact that after Sysprep it auto logs into the pc as administrator twice but we only have it set to do so once in the unattend.xml (Not sure how I am going to fix this one!)
Auto login values and stored in the registry. I would use the SetupComplete.cmd file to launch a PowerShell script that runs something like this:
# This is completely untested.
# If this is the same account specified in the unattend, the user/pass info may already be stored here.
$Username = "Administrator"
$Password = "MySuperSecretPassword"
$LogonAmount = 1
# Editing these while an account is logged in has given me errors before, so just to make sure...
Start-Process -FilePath "$env:windir\System32\shutdown.exe" -ArgumentList '-l -f' -Wait
Start-Sleep -Seconds 2
$path = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon'
if ($LogonAmount -gt 0) {
Set-ItemProperty -Path $path -Name AutoAdminLogon -Value 1
} else {
# If it's set to 0 (or less), turn auto logon off.
Set-ItemProperty -Path $path -Name AutoAdminLogon -Value 0
}
Set-ItemProperty -Path $path -Name DefaultUserName -Value $Username
if (-Not (Get-ItemProperty -Path $path | Select-Object -ExpandProperty "DefaultPassword" -ErrorAction SilentlyContinue )) {
New-ItemProperty -Path $path -Name DefaultPassword -Value $Password | Out-Null
}
Set-ItemProperty -Path $path -Name DefaultPassword -Value $Password | Out-Null
if (-Not (Get-ItemProperty -Path $path | Select-Object -ExpandProperty "AutoLogonCount" -ErrorAction SilentlyContinue )) {
New-ItemProperty -Path $path -Name AutoLogonCount -Value $LogonAmount | Out-Null
}
Set-ItemProperty -Path $path -Name AutoLogonCount -Value $LogonAmount | Out-Null
Restart-Computer -Force```
You could also create a PowerShell/batch script to copy the icons onto the Public desktop. Push it out as a FOG Snapin.
Copy-Item -Path C:\Tools\Shortcut01.lnk -Destination $env:PUBLIC\Desktop\Shortcut01.lnk -Force
Is there any special I need to do on the FOG end with the image itself? I am able to deploy the image to the device, but that’s it. Even after adding the drivers into the image it’s still not booting to the OS.
@x23piracy Test environment is setup for UEFI at the moment.
I was already able to image the device, as stated above. I suspect the issue may just have been that the image didn’t contain HDD drivers for the surface. I’ve now added some of the Surface drivers to the DriverStore and will be capturing that image to test.
I was able to boot to FOG and deploy an image using the Surface Pro 3 dongle.
However, upon restarting the Surface wouldn’t boot to the HDD. Unsure if I have to change some other settings. It wasn’t even trying to boot to Windows.
I booted back into FOG after imaging a choose the Boot from hard disk option, and got this menu.
edit: Maybe I’ll need to add the HDD drivers into the image?
My sites IT director has the dongle from the Surface 3 sitting in his desk from when he demo’d one last year. I’ll try that next week,.
Anyone have a supported Microsoft dongle they want to lend me?
I’ve renamed and replaced the ipxe.efi file with the 7156 file. Didn’t allow me to PXE boot.
I’ve had the option on the DHCP server changed from undionly.kpxe to ipxe.eft.
No luck yet.
edit: Saw this for the USB NIC that I was given to use:
http://support.displaylink.com/knowledgebase/articles/913197-using-displaylink-ethernet-for-network-pxe-boot
edit2: Netbooted another laptop while UEFI settings still in place. Got some message about NBP being too big. Never saw that before.
Apparently this is because the device was configured to legacy boot. Can’t seem to switch it back to UEFI.
edit3: Switched non-Surface laptop back to UEFI. Was able to boot to FOG menu. This at least should confirm that UEFI is setup correctly in my test environment.
@fry_p Wouldn’t the 3rd party dongle still effect this?
@george1421 Do you think this would enable FOG to work with the Surface? And through the 3rd party dongle?
Finally got a Surface Pro 4 to work with.
I’m not even sure where to start with this thing, lol. The USB NIC is from Dell.
I’ve disabled Secure Boot and Trusted Platform Module and left PXE Network as the only boot option. Doesn’t seem to do anything.
Where do I go from here?
Was informed that the Surface devices came in today. May have one next week.
I love how I started this topic and have made 0 contributions, lol.
Apparently the Surface 4 is in “high demand”; which is why it’s taking so long to come in. Eventually I’ll get my hands on one.
I’m still waiting for some. I heard they possibly might not arrive until September… which I really hope isn’t true.
edit: Confirmed ETA. Sometime in mid August.
Does this script unpin the apps for all users or just the currently logged in user?
I unpinned all items on the Start Menu on the Administrator account prior to sysprep. After sysprep, all new users have an empty Start page.
I also deprovisioned many unwanted apps (Enterprise edition required).
As for setting defaults, I set VLC to the default media player. I believe this setting persisted through sysprep. The browser will always default to Edge unless you find some hackery to get around it.
I remember seeing something in PowerShell about exporting/importing file associations. May be able to create a script that will run on first login to set default apps.