MDT Application, HP SSM i Multisite

Eftersom det har varit en del MDT de sista nu så blir därför inlägg om det. Idag delar jag med mig av min lösning för att köra HP SSM på flera platser/siter. Helt enkelt för att det jag fick göra en sådan lösning idag :)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Run HP SSM in multiple locations..
# By Toft 2013/05/02
 
# Query WMI for client default gateway for w7/w8
$DefaultGateway = $(Get-WmiObject -Class win32_networkAdapterConfiguration -Filter IPEnabled=TRUE).DefaultIPGateway
 
switch ($DefaultGateway) 
    { 
        "192.168.10.1" {$SsmServer = "DEMOSITE1-MDT01"} 
        "192.168.20.1" {$SsmServer = "DENOSITE2-MDT01"} 
        "192.168.30.1" {$SsmServer = "DEMOSITE3-MDT01"}
	    default {Write-Output "Location could not be determined"}
    }
 
# Write $SsmServer Variable for debugging
Write-Host "SSM Server was set to $SsmServer"
Write-Host "Going to run command-line: \\$SsmServer\ssm$\ssm.exe . /NOREBOOT"
 
# Running SSM and wait for proccess to end.
Invoke-Expression "\\$SsmServer\ssm$\ssm.exe . /NOREBOOT"
Start-Sleep -Seconds 5
Wait-Process ssm

Använd samma tillvägagångssätt som inlägget om HP BiosConfiguUtility för att skapa en MDT Application för att köra detta script i din TS. (som exempel). Ett annat tips är att köra powershell.exe -WindowStyle ”Minimized” eller ”Hidded” för att gömma powershell scriptet så att bara ssm statusen syns.

Posted in Deployment, Powershell | Leave a comment

MDT Application, HP BiosConfigUtility baserat på datormodell

Ett litet tips till er som någon gång får för er att ni behöver ha ett MDT Steg/Powershell script som hanterar Bios inställningar för era HP maskiner baserat på modell.

Först behöver man ladda ner HP’s Bios configurationsverktyg
ftp://ftp.hp.com/pub/softpaq/sp57001-57500/sp57256.exe

Kopiera BiosConfigUtility.exe till
”ditt DeploymantShare”\Applications\Install – HP BiosConfigUtility

Skapa sedan en ny Application i MDT enligt nedan.

Spara scriptet enligt nedan som ”BiosConfigUtility.ps1″ i app mappen i ditt MDT DS.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# Bios lösenord, om nuvarande är NULL/inget så kommer nytt sättas.
$CurrentSetupPassword = "demo"
$NewSetupPassword = "demo"
 
# WMI Fråga mot ComputerSystem lagras i variabel.
$ComputerInfo = Get-WmiObject -Class Win32_ComputerSystem
 
If     ($ComputerInfo.Model -eq "HP EliteBook 8570w") {$BiosConfigFile="HP-BIOS-8570w.cfg"}
ElseIf ($ComputerInfo.Model -eq "HP EliteBook 8560w") {$BiosConfigFile="HP-BIOS-8560w.cfg"}
ElseIf ($ComputerInfo.Model -eq "HP EliteBook 8540w") {$BiosConfigFile="HP-BIOS-8540w.cfg"}
ElseIf ($ComputerInfo.Model -eq "HP ProBook 6470b") {$BiosConfigFile="HP-BIOS-6470b.cfg"}
ElseIf ($ComputerInfo.Model -eq "HP ProBook 6460b") {$BiosConfigFile="HP-BIOS-6460b.cfg"}
ElseIf ($ComputerInfo.Model -eq "HP ProBook 6450b") {$BiosConfigFile="HP-BIOS-6450b.cfg"}
Else {
     Write-Host "Could not find matching model for bios config"
     Write-Host "nothing to do... closing script.."
     # Ändra antal sekunder vid felsökning/utv.
     Start-Sleep -Seconds 5
     exit
     }
 
# För utv./felsökning.
Write-Output "Model is $($ComputerInfo.Model)"
 
# Kör BiosConfigUtility.exe med rätt config-fil
Invoke-Expression $(".\BiosConfigUtility.exe /CurSetupPassword:$CurrentSetupPassword /SetConfig:$BiosConfigFile /NewSetupPassword:$NewSetupPassword")
 
# För utv./felsökning.
#Start-Sleep -Seconds 3600

Resultatet blir enligt följande

Tips: Vill man inte skriva config-filerna för hand så kan man skapa referens biof-cfg filer kan man köra : ”BiosConfigUtility.exe /GetConfig:filename” på utvalda modeller för att hämta ut inställningar man gjort för hand i bios.

 

Posted in Powershell | Leave a comment

Copy-AdGroup, Kopiera gruppmedlemar från en grupp en till annan med PowerShell

Inte hela världen, men ganska praktiskt. Säg att man vill kopiera alla medlemmar i en grupp till en annan grupp. Eller lägga in medlemar från flera grupper i en ny grupp.
I exemplet nedan säger vi att medlemmar från grupp1 skall in i grupp2. Görs med följande PowerShell one-liner:

1
Get-ADGroupMember "Grupp1" | ForEach-Object { Add-ADGroupMember -Members $_ "Grupp2" }
Posted in Uncategorized | Leave a comment

Powershell räknar konton per OU i AD

Dagens erfarenhet kanske inte ser mycket ut för världen.. Men det hjälpa mig mycket idag.
Jag behövde räkna antalet användare och datorer som fanns i samtliga AD’t OU’n. Verktyget för detta blev givetvis PowerShell. Vi börjar med att backa lite och går igenom lite grunder.

Med PS CmdLet Get-ADOrganizationalUnit kan man enkelt lista vilka OU’n man har i ett AD. Kommandot för detta kan se ut enligt följande:

1
Get-ADOrganizationalUnit -Filter *

Och med PS CmdLet Get-ADUser & Get-ADComputer kan vi hämta ut information om användare och datorer

1
2
Get-ADUser -Filter * 
Get-ADComputer -Filter *

Men nu skulle jag räkna hur många datorer och/eller användare som totalt fanns i AD’s alla OU. Först skulle jag bara kolla ett OU. Vilket enkelt löstes med att hämta antalet för just detta OU. T.ex:

1
(Get-ADUser -SearchBase "OU=SWEDEN,OU=COMPANY,DC=COMPANY,DC=COM" -Filter *).count

Sedan blev det till att hämta antalet användare och datorer för samtliga OU
Här är lösningen:

1
2
3
4
5
#Hämta antalet användare i alla OU
Get-ADOrganizationalUnit -Filter * | % {Write-Host OU=$_ UserCount=$((Get-ADUser -SearchBase $_ -Filter *).Count)}
 
#Hämta antalet datorer i alla OU
Get-ADOrganizationalUnit -Filter * | % {Write-Host OU=$_ ComputerCount=$((Get-ADComputer -SearchBase $_ -Filter *).Count)}
Posted in Powershell | Leave a comment

Configure-HyperV – Sätt upp Hyper-V med PowerShell/Server 2012

I veckan har jag satt upp en deploymentlösning för att rulla ut bladservrar (HP BL460c) som är färidkonfigurerade med hyper-v. Tänkte jag skulle dela med mig av en den delen som handlar om hur man sätter upp Hyper-V med PowerShell i Windows Server 2012. I scenariot nedan sätter vi upp Hyper-V endast med PowerShell utan att blanda in andra lösningar som MDT/SCCM/VMM. Detta är lämpligt om man vill sätta upp Hyper-V på Server Core, scripta upp flera servrar på kort tid eller sätta upp en och samma labmiljö om och om igen.

Vi börjar med att installera Hyper-V Rollen på vår server

1
2
3
4
5
6
7
#Installera Hyper-V Rollen på Server Core. 
#Vi passar även på att lägga till PowerShell stöd för Hyper-V på samma gång. Samt att servern får starta om vid behov (vilket den kommer göra)
Install-WindowsFeature Hyper-V, Hyper-V-PowerShell -Restart
 
#Installera Hyper-V Rollen på en Server 2012 With GUI
#Här säger vi stället tll PowerShell att installera hela Hyper-V Rollen inklusive "ManagementTools" vilket inkluderar de grafiska verktyget för Hyper-V
Install-WindowsFeature Hyper-V -IncludeManagementTools -Restart

När server är omstartad och färdig är det dags att lägga upp en Virtuell switch i Hyper-V som gästmaskiner kan använda.
I mitt fall har jag flera nätverkskort i min server. Jag kan enkelt kolla vilka kort som finns genom att köra följande PowerShell kommando

1
2
3
# Kolla vilka nätverkskort som finns i din maskin
Get-NetAdapter
# Kolumen ifIndex (förkortat InterfaceIndex) säger vilket ID respektive kort har.

När vi väl vet vilket nätverkskort vi skall använda för Hyper-V så kör vi följande kommando

1
2
3
4
5
6
7
8
9
# Sätt upp en ny VM-Switch i Hyper-V för LAN
Get-NetAdapter -InterfaceIndex 13 | New-VMSwitch -Name LAN -AllowManagementOS $false -Notes "Hyper-V LAN Switch without management by toft"
# I mitt kör jag InterfaceIndex 13 som nätverkskort för Hyper-V, Detta går även att selektera på andra sätt, men nu kör vi ifIndex.
# Denna rad kommer göra mitt nätverkskort med ID 13 till en ny switch i Hyper-V med namn "LAN". Utan att lägga upp en s.k. managementadapter.
 
# Vill man istället sätta upp en Private adapter så kör man följande kommando
New-VMSwitch -Name Private -SwitchType Private
# Observera att jag här specifiserar "SwitchType". Detta gör jag eftersom typ "External" är standard. 
# Av samma anledning specifiserar jag ej detta i föregående kommando

Då är Hyper-V Rollen installerad, nätverket är konfigurerat. Dags att sätta upp vår första virtuella maskin genom powershell

1
2
# Skapa en ny virtuell gäst i Hyper-V. Samt en ny virtuell hårddisk.
New-VM LAB-VM01 -MemoryStartupBytes 2048MB -SwitchName LAN -NewVHDPath LAB-VM01.vhdx -NewVHDSizeBytes 100GB

Vill man göra ytterligare konfguration på sin nya virtuall maskin så kommer här ytterligare några tips.

1
2
3
4
5
6
7
8
# Ändra så maskinen använder dynamiskt minne. Detta gör att maskinen endast får de minne den behöver för stunden.
Set-VM LAB-VM01 -DynamicMemory
 
# Mounta en ISO till din nya maskin så du kan installera Operativsystem.
Set-VMDvdDrive -vmname LAB-VM01 -path C:\Isos\WindowsServer2012.iso
 
# Starta din nya virtuella maskin.
Start-VM -Name LAB-VM01

Så. Då vet du hur man scriptar upp/installerar Hyper-V i Windows Server 2012 samt skapar virtuella maskiner genom PowerShell!

Posted in Powershell | Leave a comment

Aktivera Remote Desktop i Windows Server 2012 genom PowerShell

Mycket handlar just nu om PowerShell för min del. Vad det egentligen handlar om är automatisering. Att kunna göra saker med minimal egen insats och på snabbast möjliga tid. Här är ett litet tips på 2 kodrader om hur vi kan automatisera aktivering av Remote Desktop med hjälp av WMI/PowerShell. Genom att sedan lägga in detta som ett script i en sekvens i MDT (t.ex.) kan vi helt automatiskt installera upp nya servrar som från start har RDP aktiverat.

1
2
3
4
5
6
7
8
 
# Enable RDP and FW-Rules for RDP by Toft
 
# Enable Remote Desktop on computer
(Get-WmiObject win32_TerminalServiceSetting -Namespace root\cimv2\TerminalServices).SetAllowTSConnections(1)
 
# Enable Firewall Rules to Accept Remote Desktop Connection
Get-NetFirewallRule | ? {$_.name -like "RemoteDesktop*"} | Set-NetFirewallRule -enabled true
Posted in Uncategorized | Leave a comment

Exam 70-410: Installing and Configuring Windows Server 2012

Sådärja.. Då va Microsoft Examt 70-410 avklarat och godkänt. För er som inte vet exakt vad ”70-410″ är så är det del 1/3 i Microsoft Certifieringstitel MSCA (Microsoft Certified Solutions Associate). Inte mycket att skryta med, men ett test är allt ett test. Nerverna spelar en ett spratt. I stora lag tycker jag faktiskt detta test håller ganska hög nivå, trodde faktiskt att det skulle vara en barnlek att gå göra detta ”basic” test. Men icke, jag fick allt tänka till på flera frågor.

Ok, man känner sig inte som någon Einstein direkt. Men det känns endå ganska bra att avklara del 1/3.

Har precis bokat nästa del som heter:
Exam 70-411: Administering Windows Server 2012
Därefter är det bara 70-412 kvar till MSCA titel, därefter kan man påbörja de riktiga certet som heter MSCE (Microsoft Certified Solutions Expert) vilket är mitt mål just nu. För er som bryr er så kommer jag välja att köra Private Cloud spåret. Återkommer med resultat fler. Trevlig helg!

Posted in Vardag | Leave a comment

Windows 8 och Server 2012 i Kungsbacka

Välkommen att som deltagare på seminarium med tema Windows 8 och Windows Server 2012. Under en eftermiddag kommer jag hålla två sessioner på Facklan i Kungsbacka.

Posted in IT Nyheter | Leave a comment

Server 2012 Sätt upp en LAB DC med PowerShell Del 2: DHCP

Tjenare!

Idag skall vi titta på hur man konfigurerar en komplett DHCP server med PowerShell i Server 2012. Anledningen till att göra detta med PowerShell är så klart att vi kan automatisera installationen, Samt att det sparar tid. Vill man sedan köra Core Server så är det även lämpligt att kunna sätta upp t.ex. en DHCP server via PowerShell. Vi kör igång direkt. Starta en eleverad PS Prompt och börja köra in följande rader, skriver även med en liten förklaring per kommando-rad.

# Installera DHCP Rollen på servern och inkludera RSAT DHCP
Install-WindowsFeature DHCP -IncludeManagementTools

# Skapa säkerhetsgrupper för DHCP Servern. Eftersom det är ett cmd cmdlet så kör jag det gärna med invoke-expression eller invoke-command.
$DoNetShDhcpAddSecGroups = ”netsh dhcp add securitygroups”
invoke-expression ”$DoNetShDhcpAddSecGroups”

# Starta om DHCP server tjänsten för att läsa in ändringar.
Restart-service ”DHCPServer”

# Autentisera DHCP servern i ditt AD
Add-DHCPServerInDC -DnsName lab-dc01.lab.local 192.168.100.1

# Om du har flera nätverksadaptrar kan det vara en ide att binda DHCP servern till en specifik adapter.
#Set-DhcpServerv4Binding -BindingState $true -InterfaceAlias “Local Area Connection”

# Skapa ditt DHCP Scope
Add-DhcpServerv4Scope -Name ”192.168.100.0″ -StartRange 192.168.100.50 -EndRange 192.168.100.200 -SubnetMask 255.255.255.0

# Vid behov ändrar vi utlåningstid på adresserna i DHCP servern.
Set-DhcpServerV4scope -ScopeId 192.168.100.0 -LeaseDuration (New-TimeSpan -Day 3)

# Konfigurera default GW/Router Option för din DHCP server.
Set-DhcpServerv4OptionValue -OptionId 3 -value 192.168.100.254

# Konfigurera DNS server Option för din DHCP server. Force för att inte verifiera DNS funktionalitet (t.ex. om dns servern ej är upplagt än)
Set-DhcpServerv4OptionValue -OptionId 6 -value 192.168.100.1 -force

# Konfigurera DNS Server prefix
Set-DhcpServerv4OptionValue -OptionId 15 -value lab.local

# Konfigurera Bootserver Host option (om du har en TFPT server på ditt nät för boot)
Set-DhcpServerv4OptionValue -OptionId 66 -value lab-mdt

# Konfigurera Bootfile Name Option (för att speca förvägen till filen på TFTP servern)
Set-DhcpServerv4OptionValue -OptionId 67 -value \boot\x64\wdsnbp.com

# Lägg till reservationer i DHCP servern vid behov
Add-DhcpServerv4Reservation -IPAddress 192.168.100.5 -ClientId F0-DE-F1-7A-11-6A -Description ”Rervation för server: lab-mdt”

# Lägg till Deny Filter för specifik MAC adress
Add-DhcpServerv4Filter -List Deny -MacAddress F0-DE-F1-7A-11-6B -Description ”Deny Filter för: Stina på ekonomiavdelningen”

# Hämta statistik från din nya DHCP server
Get-DhcpServerv4Statistics

I nästa del skall vi titta på om vi sätter upp lab/demo användare, datorer i OU’s i AD’t genom powershell

Posted in Powershell | Leave a comment

Server 2012 Sätt upp en LAB DC med PowerShell Del 1: ADDS/DNS

Tiden går och labbandet med Windows Server 2012 Flyter på. Har den senaste tiden hårdkört min nya laptop med WS12, MDT 2012 Update1, Hyper-V och PowerShell. Kommer nu dela med mig av lite tips i flera delar om hur man komplett sätter upp en DC med DHCP/DNS genom PowerShell. Vi mjukstartar lite genom att titta på hur man sätter upp DC’n.

# Börja med att sätta datornamnet till lab-dc01 och starta om datorn (om du nu vill byta)
Rename-Computer lab-dc01
Restart-Computer

# Sätt fast IP nummer på servern i fråga. Men börja med att kontrollera InterfaceIndex på din nätverksadapter (Bör heta 12)
Get-NetAdapter

# Fortsätt sedan med att sätta fast ip på InterfaceIndex 12
New-NetIPAddress -InterfaceIndex 12 -IPAddress 192.168.100.1 -PrefixLength 24 -DefaultGateway 192.168.100.254

# Sätt DNS Adress på InterfaceIndex 12
Set-DnsClientServerAddress -InterfaceIndex 12 -ServerAddresses 127.0.0.1

# Förhoppningsvis har allt går bra så långt och vi kan installera rollerna för ADDS och DNS
Install-WindowsFeature DNS, AD-Domain-Services -IncludeManagementTools

# När det är gjort kan vi konfigurera ADDS med följande rad
Install-ADDSForest -CreateDNSDelegation:$false -DatabasePath “C:\Windows\NTDS” -DomainMode “5″ -DomainName “lab.local” -DomainNetBIOSName “lab” -ForestMode “5″ -InstallDNS:$true -LogPath “C:\Windows\NTDS” -SYSVOLPath “C:\Windows\SYSVOL” -Force -NoRebootOnCompletion -SafeModeAdministratorPassword $(ConvertTo-SecureString -AsPlainText -String ”P@ssw0rd” -Force)

#Lägg till DNS forwarders till din nya NS för att slippa belasta root-maskinerna. I detta exempel använder jag google’s public servrar. Bara att byta till vad man själv vill köra.
Set-DnsServerForwarder 8.8.8.8, 8.8.4.4

# Om allt går bra så återstår det bara att starta om servern för att logga in dom domain administrator instället för local administrator.
Restart-Computer

# Tips: Bunta ihop alla raderna till ett script och kör det för att automatisera hela processen. Alternativt lägg in det i MDT’s scriptroot och kör det genom din TS från %SCRIPTROOT% . Ta då inte med sista rader ”restart-computer” eftersom du vill att MDT själv skall starta om datorn genom TS:en och på så vis vara medveten om det. I MDT senacriot är det även rekommenderat att låta MDT sätta IP nummer på maskinen.

# I nästa del fortsätter vi med DHCP konfiguration i PowerShell

Posted in Powershell | Leave a comment