Featured post

General Availability (GA) AzureStack partners: Integrated Systems

General Availability (GA) Microsoft partners are HP Enterprise, Dell, Lenovo and Cisco.

They will al come with a so called Integrated System. The systems include hardware, software, services, and enterprise-grade customer support. The GA-version will be available from Mid-CY17.

Azure Stack will initially be available in 46 countries:

  • EMEA: Austria, Belgium, Denmark, Finland, France, Germany, Ireland, Israel, Italy, Luxembourg, Monaco, Morocco, Netherlands, Norway, Portugal, Russia, Saudi Arabia, South Africa, Spain, Sweden, Switzerland, Turkey, United Arab Emirates, United Kingdom
  • Americas: Argentina, Brazil, Canada, Chile, Colombia, Mexico, Peru, United States, Uruguay
  • APAC: Australia, Hong Kong, India, Indonesia, Japan, Korea, Malaysia, New Zealand, Philippines, Singapore, Taiwan, Thailand

The technologies provided in the GA release

include the following:

  • PaaS: Web Apps, Mobile Apps, and API Apps created using .NET, Java, PHP, or other technologies and Service Fabric1.
  • Security: Key Vault.
  • Compute: Windows and Linux Virtual Machines and VM Extensions for customization.
  • Storage: Blobs storage for unstructured data, Tables, and Queues.
  • Networking: Virtual Networks for isolated networks in the cloud, Load Balancers, and VPN Gateways.
  • Automated deployment: Azure Resource Manager for creating templates to automate deployment.

    Overview of enterprise azurestack portal

    enterprise azurestack portal

  • Management: Azure Stack Portal and support via Azure Resource Manager for clients like Visual Studio, PowerShell, and a command-line interface for Linux, Macintosh, and Windows).
Advertisements

ConfigMgr 2012 R2, Query HKLM with Hardware inventory

introduction:

When you like to use a registry keys query in a ConfigMgr collection, you first have to Extend SCCM client Hardware Inventory with a Custom Attribute value.

You can do this with this description of Jyri Lehtonen.

After this you have changed the Configuration.mof en the MyInventoryExtension.mof

ConfigMgr-inventory-configurationmof

configuration.mof

MyInventoryExtension.mof

MyInventoryExtension.mof

Now create a Collection with a query

create collection query

create collection query

Select the value of the registry key

query value

query value

 

the query looks like this:

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_Custom_UMCGDeployID_1_0 on SMS_G_System_Custom_UMCGDeployID_1_0.ResourceId = SMS_R_System.ResourceId where SMS_G_System_Custom_UMCGDeployID_1_0.TSVersion = “BUILD017_00”

Windows XP CSA Updates in System Center Configuration Manager 2012 R2

This guide describes how to use System Center Configuration Manager 2012 R2 to import the Windows XP CSA updates.

 Logon to the System Center configuration Manager Management point and start the Windows Explorer goto C:\CSA  
 Remove the ‘old’ files from the Payload directory. Put them in the _Archive folder  
 Remove the ‘old’ cab file from the ScanCab directory. Put them in the _Archive folder  
 Download the ‘new’ Microsoft CSA Update Payload Packages to: C:\CSA\Payload And the CAB file to: C:\CSA\ScanCab. Use a Microsoft Account to get access to the Microsoft connect site.  
 Open a CMD (as an administrator) and change directory to C:\CSA  
 Excecute the command line: Wsusimporttool.exe c:\CSA\ScanCab\CSA-WindowsXPSP3.CAB c:\CSA\Payload\ c:\CSA\WorkingDir  
Reminder: if the wsusimporttool is giving an Error “No instance of WSUS found on this server. WSUSImportTool can only be run locally on a WSUS server” use the WsusUtil from C:\Program Files\Update Services\Tools\ WsusUtil.exe csaimport c:\CSA\ScanCab\CSA-WindowsXPSP3.CAB c:\CSA\Payload
Check if the updates are presented in the database. Start WSUS admin tool and check if the Custom Support updates are added.
Start the SCCM console and goto Administration | Site Configuration | Sites en selecteer de Site kies voor Configure site components | Software Update Point.
Change the settings to do not synchronize from Microsoft Update or upstream data source. Reminder: change these settings back at the end of this procedure
Go to the tab Sync Schedule and choose a date and time which will take place in a couple of minutes.
A new product group, with the name “Windows XP SP3 custom support” will appear. Check this product group. And sync again from the tab sync schedule
Open the wsyncmgr.log to see if the sync is started and when it will be finished.
Wait till it’s finished.
Change the settings back in the Sync Settings Synchronize from Microsoft update
Start the SCCM console and goto Software Library | Software Updates | All Software Updates Click on synchronize Software Updates. Watch the wsyncmgr.log
See if the updates are visible in the SCCM console
Deploy the updates to the XP collection
Click Run Now

Domoticz sunscreen LUA script

Configuration

Hardware
Raspberry pi
RFXCOM – RFXtrx433 USB 433.92MHz Transceiver
KAKU ASUN-650
Sunscreen with motor

Software
Domoticz
weather Underground or ForcastIO supscription
winSCP

Script

— Zonnescherm zal uitrollen wanneer de goed condities worden weergegeven
— en rolt weer op wanneer dit nodig is.
— André Kamman
— versie info verplaatst naar beneden

commandArray = {}

— #############################################################################################
— # Compiling Values #
— #############################################################################################
— # datum en tijd bepalen #
tijd = (os.date(“%H:%M”))
opmerking = os.date(“Zonnescherm melding %A %d %B %Y om %H:%M#\n”)
optellen = 0

— # Extract waardes from SValue TempDrukLVWU #
TempDrukLVWU1 = otherdevices_svalues[‘TempDrukLVWU’]
–print(“TempDrukLVWU1: “..TempDrukLVWU1)
TempDrukLVWUTemp = string.sub(TempDrukLVWU1,1,string.find(TempDrukLVWU1,’;’,1,true)-1)
print(“TempDrukLVWUTemp: “..TempDrukLVWUTemp)
TempDrukLVWU2 = string.sub(TempDrukLVWU1,string.find(TempDrukLVWU1,’;’,1,true)+1)
–print(“TempDrukLVWU2: “..TempDrukLVWU2)
TempDrukLVWULV = string.sub(TempDrukLVWU2,1,string.find(TempDrukLVWU2,’;’,1,true)-1)
print(“TempDrukLVWULV: “..TempDrukLVWULV)
TempDrukLVWU3 = string.sub(TempDrukLVWU2,string.find(TempDrukLVWU2,’;’,1,true)+1)
–print(“TempDrukLVWU3: “..TempDrukLVWU3)
TempDrukLVWUwaarde1 = string.sub(TempDrukLVWU3,1,string.find(TempDrukLVWU3,’;’,1,true)-1)
print(“TempDrukLVWUwaarde1: “..TempDrukLVWUwaarde1)
print(“1 is Comfortabel”)
print(“2 is ?”)
print(“3 is NAT”)
print(“4 is ?”)
TempDrukLVWU4 = string.sub(TempDrukLVWU3,string.find(TempDrukLVWU3,’;’,1,true)+1)
–print(“TempDrukLVWU4: “..TempDrukLVWU4)
TempDrukLVWUDruk = string.sub(TempDrukLVWU4,1,string.find(TempDrukLVWU4,’;’,1,true)-1)
print(“TempDrukLVWUDruk: “..TempDrukLVWUDruk)
TempDrukLVWUWaarde2 = string.sub(TempDrukLVWU4,string.find(TempDrukLVWU4,’;’,1,true)+1)
print(“TempDrukLVWUWaarde2: “..TempDrukLVWUWaarde2)
print(“1 is ?”)
print(“2 is Deels bewolkt”)
print(“3 is Bewolkt”)
print(“4 is Regen”)
— # Extract waardes from SValue Wind #
wind = otherdevices_svalues[‘Wind’]
–wind = ‘326.00;NW;13;0;9.9;9.9’
–wind = ‘182.00;S;66;0;18.2;18.2′
–print(“Wind: “..wind)
windgetal = string.sub(wind,1,string.find(wind,’;’,1,true)-1)
–print(“windgetal: “..windgetal)
b = string.sub(wind,string.find(wind,’;’,1,true)+1)
–print(“b: “..b)
windrichting = string.sub(b,1,string.find(b,’;’,1,true)-1)
–print(“windrichting: “..windrichting)
d = string.sub(b,string.find(b,’;’,1,true)+1)
–print(“d: “..d)
windsnelheid = string.sub(d,1,string.find(d,’;’,1,true)-1)
–print(“windsnelheid: “..windsnelheid)
— # i.v.m. getallen onder de 10 is deze workaround opgenomen, bijv. 6 is hoger dan 50
if (windsnelheid == ‘1’ ) then
windsnelheid = “NOK”
end
if (windsnelheid == ‘2’ ) then
windsnelheid = “NOK”
end
if (windsnelheid == ‘3’ ) then
windsnelheid = “NOK”
end
if (windsnelheid == ‘4’ ) then
windsnelheid = “NOK”
end
if (windsnelheid == ‘5’ ) then
windsnelheid = “NOK”
end
if (windsnelheid == ‘6’ ) then
windsnelheid = “NOK”
end
if (windsnelheid == ‘7’ ) then
windsnelheid = “NOK”
end
if (windsnelheid == ‘8’ ) then
windsnelheid = “NOK”
end
if (windsnelheid == ‘9’ ) then
windsnelheid = “NOK”
end
–print(“windsnelheid: “..windsnelheid)
f = string.sub(d,string.find(d,’;’,1,true)+1)
–print(“f: “..f)
windjacht = string.sub(f,1,string.find(f,’;’,1,true)-1)
–print(“Windjacht: “..windjacht)
g = string.sub(f,string.find(f,’;’,1,true)+1)
–print(“g: “..g)
— # Extract Temperatuur from SValue Wind #
temperatuurWU = string.sub(g,1,string.find(g,’;’,1,true)-1)
–print(“Temperatuur WU: “..temperatuurWU)
— # Extract BuitenTemperatuur from SValue BuitenTemperatuurThuis #
BuitenTemperatuurThuis = otherdevices_svalues[‘BuitenTemperatuurThuis’]
–print(“BuitenTemperatuur Thuis: “..BuitenTemperatuurThuis)
— # Extract Zicht from SValue FIO – Zicht #
FIOZicht = otherdevices_svalues[‘FIO – Zicht’]
–print(“Zicht FIO: “..FIOZicht)
— # Extract UV Straling from SValue Wind #
zonkracht = otherdevices_svalues[‘UV Straling’]
–print(“Zonkracht: “..zonkracht)
–Filter the first digit from SValue
uv_straling = string.sub(zonkracht,1,string.find(zonkracht,’;’,1,true)-1)
–print(“UV_straling: “..uv_straling)
— heel vaak zijn deze gegevens niet up-to-date
— # Extract actual rainfall from Rain_SValue Weather Underground #
regen1 = otherdevices_svalues[‘RegenWU’]
–print(“Weather Underground regen totaal: “..regen1)
–Filter the first digit from SValue
rain1 = string.sub(regen1,1,string.find(regen1,’;’,1,true)-1)
print(“Weather Underground regen: “..rain1)
–Filter the last digit from SValue
actualrain1 = string.sub(regen1,string.find(regen1,’;’,1,true)+1)
–print(“Weather Underground actualregen: “..actualrain1)
— # Extract actual rainfall from Rain_SValue Forcast IO #
regen2 = otherdevices_svalues[‘RegenFIO’]
–print(“Forcast IO regen totaal: “..regen2)
–Filter the first digit from SValue
rain2 = string.sub(regen2,1,string.find(regen2,’;’,1,true)-1)
print(“Forcast IO regen: “..rain2)
–Filter the last digit from SValue
actualrain2 = string.sub(regen2,string.find(regen2,’;’,1,true)+1)
–print(“Forcast IO actualrain: “..actualrain2)

— #############################################################################################
— # Waardes bepalen #
— # beginwaarde is 100 #
— # +220 is het hoogste #
— # -210 is het laagste #
— #############################################################################################

if (timeofday[‘Daytime’]) then
optellen = optellen + 80
— # Alleen overdag en pas na 7:30 uur ‘s ochtends
opmerking = (opmerking ..”\nDe zon is op! ” ..” – ” ..optellen)
if (tijd >= ‘7:30’) then
optellen = optellen + 10
elseif (tijd >= ‘8:30′) then
optellen = optellen + 20
elseif (tijd >= ’20:00′) then
optellen = optellen – 10
elseif (tijd >= ’21:00′) then
optellen = optellen – 30
elseif (tijd >= ’22:00’) then
optellen = optellen – 40
end
opmerking = (opmerking ..”\n1. Het is nu: “..tijd ..” – ” ..optellen)
–print(optellen)

if (TempDrukLVWUWaarde2 == ‘1’) then
optellen = optellen + 10
elseif (TempDrukLVWUWaarde2 == ‘2’) then
optellen = optellen + 0
elseif (TempDrukLVWUWaarde2 == ‘3’) then
optellen = optellen – 10
elseif (TempDrukLVWUWaarde2 == ‘4’) then
optellen = optellen – 50
end
opmerking = (opmerking ..”\n2. Weather Underground is: “..TempDrukLVWUWaarde2 ..” – ” ..optellen)
–print(optellen)

if (actualrain1 == ‘0.0’) then
optellen = optellen + 10
elseif (actualrain1 == ‘0.1’) then
optellen = optellen + 0
elseif (actualrain1 >= ‘0.2’) then
optellen = optellen – 50
end
opmerking = (opmerking ..”\n3. WU actualregen is: “..actualrain1 ..” – ” ..optellen)
–print(optellen)

if (actualrain2 == ‘0.0’) then
optellen = optellen + 10
elseif (actualrain2 == ‘0.1’) then
optellen = optellen + 0
elseif (actualrain2 >= ‘0.2’ ) then
optellen = optellen – 50
end
opmerking = (opmerking ..”\n4. FIO actualrain is: “..actualrain2 ..” – ” ..optellen)
–print(optellen)

if (windsnelheid == ‘NOK’ or windsnelheid = ’30’ and windsnelheid = ’50’ and windsnelheid = ’70’) then
optellen = optellen – 50
end
opmerking = (opmerking ..”\n5. Windsnelheid is: “..windsnelheid ..” – ” ..optellen)
–print(optellen)

if (BuitenTemperatuurThuis >= ‘26.0’) then
optellen = optellen + 10
elseif (BuitenTemperatuurThuis > ‘18.0’ and BuitenTemperatuurThuis < '26.0') then
optellen = optellen + 0
elseif (BuitenTemperatuurThuis = ‘26.0’) then
optellen = optellen + 10
elseif (temperatuurWU > ‘18.0’ and temperatuurWU < '26.0') then
optellen = optellen + 0
elseif (temperatuurWU ‘10.0’) then
optellen = optellen + 50
elseif (uv_straling >= ‘6.0’ and uv_straling = ‘3.0’ and uv_straling = ‘1.0’ and uv_straling < '3.0') then
optellen = optellen + 0
elseif (uv_straling = ‘7.0’ and FIOZicht = ‘0.0’ and FIOZicht < '7.0') then
optellen = optellen – 20
end
opmerking = (opmerking .."\n9. FIO Zicht is: "..FIOZicht .." – " ..optellen)
–print(optellen)
else
— # 's nachts gebeurd er niks
optellen = optellen + 0
opmerking = (opmerking .."\nWe wachten op de volgende mooie dag! " .." – " ..optellen)
end

— #############################################################################################
— # Acties #
— #############################################################################################

–optellen = optellen + 100

if (otherdevices['Zonnescherm'] == 'Closed' ) then
opmerking = (opmerking .."\nHet scherm is uitgerold. " .." – " ..optellen)
if (optellen = 100) then
opmerking = (opmerking ..”\n2. Handmatig of automatisch uitgerold, geen actie. ” ..” – ” ..optellen)
–commandArray[‘Zonnescherm’]=’Off’
–commandArray[‘SendNotification’] = (opmerking)
end
elseif (otherdevices[‘Zonnescherm’] == ‘Open’ ) then
opmerking = (opmerking ..”\n3. Het scherm is opgerold. ” ..” – ” ..optellen)
if (optellen >= 160) then
commandArray[‘Zonnescherm’]=’On’
commandArray[‘SendNotification’] = (opmerking)
end
end

print(opmerking)
–print(optellen)

— #############################################################################################
— # Versie informatie #
— #############################################################################################

— 2014-07-04, tijd ook opgenomen als puntentelling
— 2014-06-15, optel systeem toegevoegd
— 2014-06-13, Het is avond, zonnescherm omhoog! Andere melding bij 7:30h
— 1 betekend comfortabel
— 2014-06-08, datum en tijd toegevoegd
— nu nog de volgorde / prioriteit bepalen, wat eerst wat tweede etc.
— 2014-06-06, Waardes iets aangepast en zicht toegevoegd bij UV=NOK
— 2014-05-31, ‘s ochtends spring hij aan?? zonnescherm is Open en de voorwaarde is dan goed, Opgelost: vaste waarde in Zonnestraling!
— UVI is niet altijd up-to-date, NOK invoeren en zicht toevoegen.
— 2014-05-18, bij een windsnelheid onder de 10 gaat het scherm niet uit of toch weer in. Opgelost!?
— 2014-04-21, initiële versie

ConfigMgr Task Sequence with OSD Options Chooser and computer OU move

The OSD Options Chooser will display an option chooser box during OSD when a computername starts with MININT or MINWINPC (unknown computers). The user can type a computername and choose in which Active Directory OU the computer will be placed during the installation. It will set a Task Sequence variable OSDDepartment which will be used in the Task Sequence to move a computer to another OU.
When the computername doesn’t start with MININT or MINWINPC the Options Chooser won’t pup-up.

In this example the OSD Option Chooser will ask for a computer name and gives 4 computer type choices. The installation will be un-anttended and will close when the computername does NOT start with MININT or MIN-WINPC.

1. Create a source directory and place the two file with the name:
• OSDOptionsChooserv3.hta
• OpenDesktop.vbs

You can find the source at the end of this page.

2. Check the code in the: OSDOptionsChooserv3.hta

3. Check the code in the: OpenDesktop.vbs
Change the values in the .vbs

4. Create a Configuration Manager Package and deploy it to the distribution points.
BLS0122 OSD Options Chooser

5. Open the boot image and add the Optional Component:
HTML (WinPE-HTA)
deploy this boot image to the distribu-tion points.

6. Open a Task Sequence and add the OSD Option Chooser package right after Partitioning the disks.
This first part will show the Option Chooser for unknown computers (MININT or MINWINPC).

7. The second part will move the computer to the OU which was specified in part one.

8. Open the Options tab and ad a Task Sequence Variable OSDDepartment.

__________________________________________________________
I included one zip file with the OSDOptionChooser and OpenDesktop.vbs script we used within our company.

We added extra lines to the original script:
window.close
and
SysVarReg.RegWrite “HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Hostname”, sTSMachineName

And added parts for setting the Task Sequence variable OSDDepartment (OU options).
We deleted some parts we didn’t need.
####################################################################

####################################################################

you can find the original OSD Options Chooser script Created by Nick Moseley at http://t3chn1ck.wordpress.com

RES Workspace manager integration in System Center Configuration Manager

you can combine the two products Microsoft System Center Configuration Manager and RES Workspace Manager with eachother.

In this example i will distribute an ConfigMgr Application (*.msi) to an Windows client and refresh the workspace when the installation is done. Users will see the icon after the refresh.

RES Workspace Manager

In RES you need to have imported an Application with a location to it’s executable and to the icon.

When you go to the settings tab check the box “hide application if executable was not found”.

System Center Configuration Manager
In our case the Application Adobe Reader X is imported using the information from the AcroRead.msi. Afterwards I change the installation to a <install>.cmd files.

Within Configuration Manager you need to create a *.cmd file for the application with the following content.
=============================================================================
@echo off
msiexec /i “%~dp0AcroRead.msi” TRANSFORMS=”%~dp0AdobeAcrobat_Reader_10.1.3.01.mst” /qb REBOOT=REALLYSUPPRESS
msiexec /p “%~dp0AdbeRdrUpd1013.msp” /qb /lv %temp%\AdbeRdrUpd1013.msp.log

%RESPFDIR%\pwrgate.exe -2
=============================================================================

With the pwrgate.exe -2 command line, RES Workspace Manager will refresh the workspace.

In the Deployment Type, as mentioned, I changed the properties of the installation program to the *.cmd.

Deploy the application as an Available or Required application.
Available means the user can install it from the Application Catalog. Required means the application will be installed without user intervention.

End User
The End User can start the Application Catalog and start the installation of the application.

RES Workspace Manager will refresh the workspace automatically and the icon will be shown in the Start Menu.

#Microsoft #Surface RT and Surface Pro registry tweaks to change the start screen Tiles to 3, 4 or 5 rows.

Microsoft Surface registry tweaks you can use to change the Surface RT and Surface Pro start screen Tiles to 3, 4 or 5 rows.

Three Rows of Start Screen Tiles for Surface RT and Surface Pro
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ExplorerScaling
“MonitorSize”=”10.6″

Four Rows of Start Screen Tiles for Surface RT and Surface Pro
Surface RT
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ExplorerScaling
“MonitorSize”=”12.1″

Surface Pro
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Scaling
“MonitorSize”=”13.1″

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ImmersiveShell\Grid “Layout_MaximumRowCount”=dword:00000004

Five Rows of Start Screen Tiles for Surface RT and Surface Pro
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ExplorerScaling
“MonitorSize”=”13.1″

Reminder:
HKLM keys will need a system reboot/restart.
HKCU keys needs to be set for every users account.