Tag Archives: PowerShell

RESX Dummy Dateien generieren

Wird die Lokalisierung bzw. Internationalisierung einer Applikation mit Hilfe von resx Dateien gemacht, kann es nützlich sein, sich von einer bestehenden resx Datei eine neue resx Datei zu erstellen, welche die Grundlage für die Unterstützung einer neuen Sprache darstellt.

Zu Testzwecken wird dann jeder Eintrag in der neuen resx Datei mit zwei Zeichen ISO Code der neuen Sprache prefixt.
So kann rasch getestet werden ob die Lokalisierung funktioniert.

PowerShell eignet sich wunderbar zur erstellen eines solchen Scripts.

$neutralResxFileName = "MyResxFilenNameWithoutExtension";
$lang = "en"

$text = Get-Content $neutralResxFileName + ".resx"
foreach($val in $text.root.data)
{
	$str = ($val.value + " " + $lang)
	$val.value = $str
}

$text.Save(".\" + $neutralResxFileName + "." + $lang + ".resx")

PowerShell Cmdlet erstellen und benutzen

Das CRM mit seiner umfangreichen API bietet sich gerade zu an um automatisiert zu werden. Microsoft liefert bereits einige Cmdlets mit, diese ermöglichen jedoch nur den Zugriff auf Aktionen welche über den Deployment Service verfügbar sind. Andere Aufgaben wie z.B. einen neuen User erstellen und berechtigen, können damit nicht automatisiert werden. Die PowerShell lässt sich jedoch ganz leicht erweitern. Wie das geht, zeige ich in diesem Post.

Continue reading

Deployment Webservice – “ActiveDirectoryRightsCheck raising error”

Wenn du versuchst über den Deployment Webservice oder über PowerShell, mit dem “Create-Organization” Cmdlet, eine neue Organisation zu erstellen erhältst du die Fehlermeldung “ActiveDirectoryRightsCheck raising error : The current user does not have required permissions (read/write) for the following Active Directory group: CN=ReportingGroup GUID,OU=X,DC=Y,DC=Z”.

Die volle PowerShell Fehlermeldung:

Source : mscorlib
Method : HandleReturnMessage
Date : ….
Time : ….
Error : Message: The Deployment Service cannot process the request because one or more validation checks failed.
ErrorCode: –2147167645
Stack Trace :
======================================================================================================================
Inner Exception Level 1 :
==DeploymentServiceFault Info==========================================================================================
Error : The Deployment Service cannot process the request because one or more validation checks failed.
Time : …
ErrorCode : –2147167645
Date : …
Time : …
Error Items:
ActiveDirectoryRightsCheck raising error : The current user does not have required permissions (read/write) for the following Active Directory group:
CN=ReportingGroup GUID,OU=X,DC=Y,DC=Z
======================================================================================================================
+ CategoryInfo : InvalidData: (Microsoft.Crm.P…anizationCmdlet:NewCrmOrganizationCmdlet) [New-CrmOrganization], FaultException`1
+ FullyQualifiedErrorId : CRM Deployment Cmdlet Error,Microsoft.Crm.PowerShell.NewCrmOrganizationCmdlet
+ PSComputerName : ……

Ursache
Der Service Account des Deployment Webservices hat nicht die benötigten Rechte um auf der “ReportingGroup {GUID}” AD-Gruppe Änderungen vorzunehmen.

Lösung
Der Service Account muss im Active Directory auf der OU, in dem die CRM Gruppen liegen, berechtigt werden.

Deployment Service 1

Deployment Service 2

Organization Versionen mit PowerShell auslesen

Das folgende Script liest die Versionen aller Mandanten und gibt das entsprechende UR an.

Add-PSSnapin Microsoft.Crm.PowerShell
$orgs =  Get-CrmOrganization
foreach ($org in $orgs)
{
Write-Host Version: $org.Version

If ($org.Version -eq ‘5.0.9688.53’)
{
Write-Host ‘RC’
}
ElseIf ($org.Version -eq ‘5.0.9688.583’)
{
Write-Host ‘RTM’
}
ElseIf ($org.Version -eq ‘5.0.9688.1045’)
{
Write-Host ‘UR1’
}
ElseIf ($org.Version -eq ‘5.0.9688.1155’)
{
Write-Host ‘UR2’
}
ElseIf ($org.Version -eq ‘5.0.9688.1244’)
{
Write-Host ‘UR3’
}
ElseIf ($org.Version -eq ‘5.0.9688.1450’)
{
Write-Host ‘UR4’
}
ElseIf ($org.Version -eq ‘5.0.9688.1533’)
{
Write-Host ‘UR5’
}
ElseIf ($org.Version -eq ‘5.0.9689.1985’ -or $org.Version -eq ‘5.0.9690.1992’)
{
Write-Host ‘UR6’
}
ElseIf ($org.Version -eq ‘5.0.9690.2165’)
{
Write-Host ‘UR7’
}
ElseIf ($org.Version -eq ‘5.0.9690.2243’)
{
Write-Host ‘UR8’
}
ElseIf ($org.Version -eq ‘5.0.9690.2835’ -or $org.Version -eq ‘5.0.9690.2838’ -or $org.Version -eq ‘5.0.9690.2903’)
{
Write-Host ‘UR11’
}
ElseIf ($org.Version -eq ‘5.0.9690.3218’ -or $org.Version -eq ‘5.0.9690.3233’ -or $org.Version -eq ‘5.0.9690.3236’)
{
Write-Host ‘UR12’
}
ElseIf ($org.Version -eq ‘5.0.9690.3448 ‘)
{
Write-Host ‘UR13’
}
ElseIf ($org.Version -eq ‘5.0.9690.3557’)
{
Write-Host ‘UR14’
}
ElseIf ($org.Version -eq ‘5.0.9690.3731’)
{
Write-Host ‘UR15’
}
Else
{
Write-Host ‘Version not found!’
}
Write-Host
}

Read-Host