Archives

Tag Archive for: ‘windows’
Check whether disk is GPT or not in Windows

When your computer is having a UEFI , it will prefer a GPT (GUID Partition Table) on the harddisk to function. GPT has advantages over MBR (Master Boot Record) such as support for larger disks.

Start the diskpart.exe and run the command:

list disk

When there is a star in the Gpt column the disk is Gpt, else it is an MBR disk.

(Example of a disk without GPT)

More information about the difference between GPT and MBR can be found on the Wiki pages:

GPT = GUID Partition Table (http://en.wikipedia.org/wiki/GUID_Partition_Table)
MBR = Master Boot Record (https://en.wikipedia.org/wiki/Master_boot_record)

Local System and interactive command line

Tools such as SCCM are normally running installations in the LocalSystem privilege set. In some cases that is different from a Administrator account. Normally it is not possible to logon with the LocalSystem account because Microsoft is not supporting that. In this little blogpost you find the techniques to become System on your Windows 7 / Windows 8 box. You can download psexec from http://live.sysinternals.com and run with the following options:

psexec -i -s cmd.exe

You get a command prompt open. In that one type:

whoami

To check if you are the nt authority\system (which is the LocalSystem account). During my jobs I found that the psexec is not always the most reliable option to use. The following option is better in representing a true System account and working as a service (Like SCCM does)

sc create cmd binpath= "cmd /K start" type= own type= interact

When you are running Windows 8, you have to check the following registry key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows\NoInteractiveServices

This must have value 0, else you won’t get the Interactive Services window. After that type this code:

sc start cmd

Click in the screen on View the message to start Interactive Services.

Now you are in and you can do the job or throubleshoot your problem.

UAC with VBscript

You know this? Like to run an VBscript with elevated rights but the User Account Control (UAC) is preventing it. Normally you will open the Command Line as Administrator, and run your script. There is an more easy way to do this.

When you include the following code in your VBscript:

Option Explicit

' Windows UAC Settings for this script
Dim UAC
UAC=True

'this is at the start of your script
CheckStartModeUAC

' msgbox or your own program :)
Msgbox "UAC right now!"

Sub CheckStartModeUAC
	' Force to start with elevated prompt if neccessary on that OS
	If UACTurnedOn = True And UAC=True Then
		' UAC Enabled
	
		' Returns the running executable as upper case from the last \ symbol
		Dim strStartExe, oSh, completearguments, x
		
		' Receive launcher
		strStartExe = UCase( Mid( wscript.fullname, instrRev(wscript.fullname, "\") + 1 ) )
		
		' Collect arguments
		for x = 0 to wscript.arguments.count - 1
			completearguments = completearguments & " """ & wscript.arguments(x) & """"
		next
		
		If Instr(completearguments, "uac") then
			' Already launched with uac
		Else
			' Launch this script in UAC mode
			completearguments = completearguments & " uac"
			'Msgbox strStartExe & " """ & wscript.scriptfullname & """ " & completearguments
			
			set oSh = CreateObject("Shell.Application")
			
			oSh.ShellExecute strStartExe, """" & wscript.scriptfullname & """ " & completearguments, "", "runas", 1
			'oSh.ShellExecute strStartExe, wscript.scriptfullname & " " & completearguments, "runas", 1
			wscript.quit
		End if
	End If	
End Sub

Function UACTurnedOn ()
	' Check for UAC enabled computer
	 On Error Resume Next
	 
	 Dim oShell

	 Set oShell = CreateObject("WScript.Shell")
	 If oShell.RegRead("HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA") = 0 Then
		  UACTurnedOn = false
	 Else
		  UACTurnedOn = true
	 End If
End Function

You will get the popupbox when you double-click on the script. Maybe you have to change your script a little bit, but it is still nice :)

123