Thursday, June 16, 2011

Millised Assemblied PowerShell laeb vaikimisi

Kui sa soovid teada millised Assemblied on PowerShell vaikimisi laadinud, siis on sul võimalus kasutada sellist käsku:

[System.AppDomain]::CurrentDomain.GetAssemblies() | ForEach-Object {Split-Path $_.Location -Leaf} | Sort-Object

Vaikimis laetakse neid minu arvutis 29

CompiledComposition.Microsoft.PowerShell.GPowerShell.dll
Microsoft.PowerShell.Commands.Diagnostics.dll
Microsoft.PowerShell.Commands.Management.dll
Microsoft.PowerShell.Commands.Utility.dll
Microsoft.PowerShell.ConsoleHost.dll
Microsoft.PowerShell.Editor.dll
Microsoft.PowerShell.GPowerShell.dll
Microsoft.PowerShell.Security.dll
Microsoft.WSMan.Management.dll
mscorlib.dll
PowerShell_ISE.exe
PresentationCore.dll
PresentationFramework.Aero.dll
PresentationFramework.dll
System.Configuration.dll
System.Configuration.Install.dll
System.Core.dll
System.Data.dll
System.DirectoryServices.dll
System.dll
System.Drawing.dll
System.Management.Automation.dll
System.Management.dll
System.Transactions.dll
System.Windows.Forms.dll
System.Xml.dll
UIAutomationProvider.dll
UIAutomationTypes.dll
WindowsBase.dll

Tuesday, June 14, 2011

Kuidas tuvastada PowerShelliga, et kas operatsioonisüsteem on 32 või 64 bitine

Skriptide kirjutamisel olen kokku puutunud küsimusega, et mis moodi tuvastada operatsioonisüsteemi arhitektuuri ja vaja on läinud seda selleks, et 64 bitise operatsioonisüsteemi puhul on teatud asjad teises kohas mida oleks vaja muuta skriptiga. Selles postituses toon välja mõned näited mis moodi seda võiks saada tuvastada. Alates Windows Vistast on asi lihtsamaks läinud aga kui sul on keskkonnas ka Windows XP ja Server 2003 operatsioonisüsteeme, siis peab asju küsima teisest WMI klassist.

Meetod 1

Mõned PowerShelli skripti kirjutajad kasutavad sellist asja nagu [intPtr]::Size, et tuvastada operatsioonisüsteemi arhitektuuri. Kui vastuseks saate 4, siis on tegemist 32 bitise arhitektuuriga ja kui vastuseks saate 8, siis on tegemist 64 bitise arhitektuuriga. Täpsemalt saate lugeda selle kohta siit: http://msdn.microsoft.com/en-us/library/system.intptr.size.aspx

Näide 1

if([IntPtr]::Size -eq 4){            
Write-Host "32 bitine Operatsioonisüsteem"
}
Else{
Write-Host "64 bitine Operatsioonisüsteem"
}

1


Meetod 2

Kui teie keskkonnas on ainult Windows Vista, 7 ja server 2008 jne, siis on teil võimalus kasutada Win32_OperatingSystem WMI klassi, et küsida operatsioonisüsteemi arhitektuuri. Win32_OperatingSystem WMI klassi kohta saate täpsemalt lugeda siit: http://msdn.microsoft.com/en-us/library/aa394239(v=vs.85).aspx


Get-WmiObject -Class Win32_OperatingSystem | Select-Object OSArchitecture

2

Meetod 3

Seda meetodid ma kasutan Windows XP ja Server 2003 puhul aga muidugi võite seda kasutada ka Windows Vista ja 7-ga. Kuna Windows XP-s ja Server 2003-s ei ole Win32_OperatingSystem WMI klassis sellist propertit nagu OSArchitectur. Sellise juhtumi puhul tuleb kasutada Win32_Processor WMI klassi ja tuleb pärida AddressWidth propertit. Win32_Processor WMI klassi kohta saate täpselt lugeda siit: http://msdn.microsoft.com/en-us/library/aa394373(v=vs.85).aspx

Kui te päringu väärtuseks saate 32, siis on tegemist 32 bitise operatsioonisüsteemiga ja kui vastuseks saate 64, siis on tegemist 64 bitise operatsioonisüsteemiga.


Get-WmiObject -Class Win32_Processor | Select-Object AddressWidth

3

Boonuseks

Kui te soovite teada saada kas sellele konkreetsele riistavarale on võimalik ka 64 bitist operatsioonisüsteemi installeerida, siis tuleb küsida samast Win32_Processor WMI klassist propertit nagu DataWidth. Kui AddressWidth on 32 ja DataWidth on 64, siis on seda operatsioonisüsteemi võimalik uuendada 64 bitise peale.


$Query = Get-WmiObject -query "Select AddressWidth, DataWidth,Architecture from Win32_Processor"            

switch ($Query.Architecture)
{
0 {$Architecture = "x86"}
1 {$Architecture = "MIPS"}
2 {$Architecture = "Alpha"}
3 {$Architecture = "PowerPC"}
6 {$Architecture = "Itanium"}
9 {$Architecture = "x64"}
Default {"Unknown"}
}

If($Query.AddressWidth -eq $Query.DataWidth){
Write-Host "$($Query.AddressWidth) Bit Operatsioonisüsteem"
}
Else{
Write-Host "$($Query.AddressWidth) Bit Operatsioonisüsteem on uuendatav 64 peale"
}

4


Lõpetuseks


Kui teie keskkonnas on ainult Windows Vista, 7 ja uuemad versioonid, siis ma soovitan kasutada Meetod 2-te.

Sunday, June 12, 2011

DevConnections seminari kokkuvõte

Osalesin Saksaamal toimuval seminaril DevConnections koos Eesti ASP.NET MVP Gunnar Peipmanniga. Kui ma sellele seminarile ennast kirja panin, siis lubati ka Windowsi-ga seotud sessioone ja kaks nädalat enne saadeti kiri, et PowerShelli workshop jääb ära ja kohale jõudes oli kõik Windowsiga seotud sessioonid ära jäetud. Õnneks oli kavas ka SQL sessioonid ja otsustasingi valida kõik sessioonid SQList.

WorkShop

Esimesel päeval osalesin „SQL serveri tuunimine A-st Z-ni“ sessioonil. Koolitajateks oli maailma absoluutsed tipud Paul S. Randal ja Kimberly L. Tripp. Paul on Microsoft Certified Masteri koolitaja ja MVP. Kimbery on „SQL Server Internals“ raamatu kaasautor ja palju muud veel.
Selle ühe koolituspäevaga sain ma SQLi-st ikka väga palju teada. Lühidalt öeldes sain ma kinnituse sellele, et suurte lahenduste puhul on vaja väga head ja tasemel andmebaasi administraatorit, vastasel juhul disainitakse ja hallatakse andmebaasi valesti ja sellega tekitatakse ridamisi probleeme.
Näidati ka erinevaid päringuid mida tuleks regulaarselt teostada, et teada saada kui hästi SQLis andmebaasid elavad. Sain ka teada millele tuleks kindalt tähelepanu tööl pöörata. Hämmastav oli näha kuidas tegevused, mis tunduvad väikesed või tühised põhjustavad tegelikult 5-10% jõudluse kadu ja erinevate asjade kokku liitmisel oledki oma SQL serveri ära tapnud.

Kui sul on SQL serveri jõudlusega probleeme, siis tuleb lihtsalt SQLilt küsida õigeid asju ja ta vastab sulle milles on probleem- kas mööda kirjutatud rakendus vms.

Teine ja kolmas päev

Teisel ja kolmandal päeval osalesin sammuti Pauli Ja Klaus Aschenbrenneri SQL sessioonidel, mis olid ka kõik väga head. Teada sain erinevatest SQL müütidest, päringute tegemistest ja plaanidest, päringute optimeerimisest ja SQL taastamisega seotud teemadest.

Kokkvõtteks

Kui küsida, kas see 2500 eurot oli asja väärt, siis vastuseks on JAH. Silmaringi laiendasid need kolm päeva kõvasti ja jääb nüüd tükiks ajaks peas ringlema erinevaid teemasid mille üle mõelda ja mida peaks oma igapäevaste tegevuste juures teisiti tegema.

Monday, June 6, 2011

There is a problem communicating with the Microsoft Dynamics CRM server osa 2

Lõpetasin just Microsofti CRMi spetsialistiga telefoni kõne ja hetkel oleme jõudnud sellisele järeldusele, et mingit moodi on rakendusel kasutaja tuvastamisega mingid vead. Kui ma CRM 2011 paketi tellimuse sain ja minu kasutaja kontole CRMi õigused anti, ei olnud mul mingeid probleeme sisse logimisega. Kuna mingi hetk võeti mu kontol õigused ära, siis ma sattusin selle veateate otsa:

Capture

Naljakas on selle vea puhul see, et kui ma trükin oma LiveID konto, siis võetakse mu konto ja parool vastu ja kuvatakse selline veateade ja enam ei ole võimalik kasutaja nime ja parooli sisestada.

Hetkel on probleemile lahendus teha arvutisse uus kasutaja profiil ja siis on võimalik jälle sama profiili alt kasutajat ja parooli sisestada.