Compare commits

...

2 Commits

Author SHA1 Message Date
Torsten Brendgen
6986570510 Merge branch 'main' of https://git.local.unique-studios.de/PowerShell-Projekte/DSC-Configuration-Compiler 2026-06-27 23:19:38 +02:00
Torsten Brendgen
846dccf468 clean dev commit 2026-06-27 23:18:34 +02:00
7 changed files with 4195 additions and 264 deletions

3813
Compiler.Core.ps1 Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +1,7 @@
<<<<<<< HEAD
$formsType = 'System.Windows.Forms.Form' -as [type]
if ($null -eq $formsType) {
=======
 using namespace System.Windows.Forms
using namespace System.Drawing
@@ -3504,26 +3508,27 @@
}
#endregion
>>>>>>> 7dd71be14c5216e6f7f99d006643ed1139a69376
Add-Type -AssemblyName System.Windows.Forms
}
$drawingType = 'System.Drawing.Color' -as [type]
if ($null -eq $drawingType) {
Add-Type -AssemblyName System.Drawing
}
$settingsManager = [SettingsManager]::new("DSC Tool")
# Verwendung
$logManager = [LogManager]::new("DSC Tool")
$logManager.Info("Anwendung gestartet")
[BaseComponent]::InitializeShared($settingsManager, $logManager)
foreach($function in $(Get-ChildItem -Path $settingsManager.Get("FunctionsPath") -Recurse -Filter "*.ps1" -File)){
$logManager.Info("Lade Funktion: $($function.FullName)")
try{
. $function.FullName
}catch{
$logManager.Error("Fehler beim Laden: $_")
if ([System.Threading.Thread]::CurrentThread.GetApartmentState() -ne [System.Threading.ApartmentState]::STA) {
$powershell = (Get-Command powershell.exe -ErrorAction SilentlyContinue).Source
if ($powershell) {
& $powershell -NoProfile -ExecutionPolicy Bypass -STA -File $PSCommandPath @args
exit $LASTEXITCODE
}
}
<<<<<<< HEAD
$coreScript = Join-Path -Path $PSScriptRoot -ChildPath 'Compiler.Core.ps1'
& $coreScript @args
=======
$stateManager = [StateManager]::new()
$stateManager.SetStates(@{
hasSelection = $false
@@ -3991,3 +3996,4 @@
$stateManager.UpdateAllButtons()
$form.Show()
>>>>>>> 7dd71be14c5216e6f7f99d006643ed1139a69376

View File

@@ -1,93 +0,0 @@
@{
Resources = @{
NonNodeData = @{
Services = @{
SharePoint = @{
Farm = @{
Passphrase = 'Use-SecureString-Or-KeyVault'
ConfigDatabaseName = 'SharePoint_Farm_Config'
ServiceApplications = @{
AppManagementService = @{
DatabaseName = 'SharePoint_Services_AppManagement'
Provision = 'True'
}
StateService = @{
DatabaseName = 'SharePoint_Services_StateService'
Provision = 'True'
}
SubscriptionSettingsService = @{
DatabaseName = 'SharePoint_Services_SubscriptionSettings'
Provision = 'True'
}
ManagedMetadataService = @{
DatabaseName = 'SharePoint_Services_ManagedMetadata'
Name = 'Managed Metadata Service'
ApplicationPool = 'SharePoint Service Applications'
Provision = 'True'
}
SearchService = @{
DatabaseName = 'SharePoint_Services_Search'
Name = 'Search Service Application'
ApplicationPool = 'SharePoint Service Applications'
Provision = 'True'
}
UsageAndHealthService = @{
DatabaseName = 'SharePoint_Services_UsageAndHealth'
Provision = 'True'
}
SecureStoreService = @{
DatabaseName = 'SharePoint_Services_SecureStore'
Name = 'Secure Store Service'
ApplicationPool = 'SharePoint Service Applications'
Provision = 'True'
}
UserProfileService = @{
SyncDBName = 'SharePoint_Services_UserProfile_SyncDB'
ApplicationPool = 'SharePoint User Profile Services'
Provision = 'True'
Name = 'User Profile Service'
SocialDBName = 'SharePoint_Services_UserProfile_SocialDB'
ProfileDBName = 'SharePoint_Services_UserProfile_ProfileDB'
}
}
CentralAdminAuth = 'NTLM'
CentralAdminPort = '2016'
AdminContentDatabase = 'SharePoint_Farm_AdminContent'
ServiceApplicationPools = @{
Default = @{
Account = 'CONTOSO\sp_services'
Name = 'SharePoint Service Applications'
}
UserProfile = @{
Account = 'CONTOSO\sp_ups'
Name = 'SharePoint User Profile Services'
}
}
}
Database = @{
SQLAlias = @{
SQLServer = @{
InstanceName = ''
ServerName = ''
TcpPort = '0'
}
}
}
General = @{
ProductKey = '0000-0000-0000-0000-0000'
}
Windows = @{
Registry = @{
DisableLoopbackCheck = @{
Path = 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa'
Name = 'DisableLoopbackCheck'
Value = '1'
Type = 'DWord'
}
}
}
}
}
}
}
}

View File

@@ -1,14 +0,0 @@
@{
Resources = @{
NonNodeData = @{
Services = @{
ActiveDirectory = @{
Domain = @{
FQDN = "contoso.local"
NetBIOS = "Contoso"
}
}
}
}
}
}

View File

@@ -0,0 +1,161 @@
@{
Parameters = @{
DomainLabel = @{
Type = 'string'
DefaultValue = ''
Required = $false
MinLength = 2
MaxLength = 32
Pattern = '^[A-Za-z][A-Za-z0-9_-]*$'
Metadata = @{
Description = @{
'de-DE' = 'Kurzer logischer Bezeichner der Umgebung oder Domaene.'
'en-US' = 'Short logical identifier for the environment or domain.'
}
}
}
DomainFQDN = @{
Type = 'string'
DefaultValue = ''
Required = $true
Pattern = '^[A-Za-z0-9.-]+$'
Metadata = @{
Description = @{
'de-DE' = 'Vollqualifizierter DNS-Name der Active-Directory-Domaene.'
'en-US' = 'Fully qualified DNS name of the Active Directory domain.'
}
}
}
DomainNetBIOS = @{
Type = 'string'
DefaultValue = ''
Required = $true
MinLength = 1
MaxLength = 15
Pattern = '^[A-Za-z0-9_-]+$'
Metadata = @{
Description = @{
'de-DE' = 'NetBIOS-Name der Active-Directory-Domaene.'
'en-US' = 'NetBIOS name of the Active Directory domain.'
}
}
}
}
Resources = @{
NonNodeData = @{
RequiredModules = @(
@{
Name = 'ActiveDirectoryDsc'
Version = '6.7.1'
}
)
Services = @{
ActiveDirectory = @{
Domain = @{
Ensure = 'Present'
FQDN = "[parameters('DomainFQDN')]"
NetBIOS = "[parameters('DomainNetBIOS')]"
ForestMode = "[parameters('ForestMode')]"
DomainMode = "[parameters('DomainMode')]"
DnsDelegation = $false
Credentials = @{
DomainAdministrator = @{
CredentialName = "[parameters('DomainAdministratorCredentialName')]"
}
SafeModeAdministrator = @{
SecretName = "[parameters('SafeModeAdministratorPasswordSecretName')]"
}
}
}
DomainControllers = @(
@{
NodeName = '*'
Ensure = 'Present'
InstallDns = $true
IsGlobalCatalog = $true
SiteName = "[parameters('DefaultSiteName')]"
}
)
Sites = @(
@{
Name = "[parameters('DefaultSiteName')]"
Ensure = 'Present'
}
)
Subnets = @(
@{
Name = "[parameters('DefaultSubnet')]"
SiteName = "[parameters('DefaultSiteName')]"
Ensure = 'Present'
}
)
OrganizationalUnits = @(
@{
Name = 'Servers'
Path = "[concat('DC=', replace(parameters('DomainFQDN'), '.', ',DC='))]"
Ensure = 'Present'
ProtectedFromAccidentalDeletion = $true
}
@{
Name = 'Service Accounts'
Path = "[concat('DC=', replace(parameters('DomainFQDN'), '.', ',DC='))]"
Ensure = 'Present'
ProtectedFromAccidentalDeletion = $true
}
@{
Name = 'Groups'
Path = "[concat('DC=', replace(parameters('DomainFQDN'), '.', ',DC='))]"
Ensure = 'Present'
ProtectedFromAccidentalDeletion = $true
}
)
Groups = @(
@{
GroupName = 'GG-SharePoint-Admins'
Path = "[concat('OU=Groups,DC=', replace(parameters('DomainFQDN'), '.', ',DC='))]"
Scope = 'Global'
Category = 'Security'
Ensure = 'Present'
Members = @()
}
)
Users = @(
@{
UserName = 'SVC_SHP_Setup'
Path = "[concat('OU=Service Accounts,DC=', replace(parameters('DomainFQDN'), '.', ',DC='))]"
Ensure = 'Present'
Enabled = $true
Password = @{
SecretName = 'SVC_SHP_Setup'
}
}
)
Trusts = @()
Dns = @{
Forwarders = @()
ReverseLookupZones = @()
}
}
}
}
}
}

View File

@@ -0,0 +1,200 @@
@{
Parameters = @{
DatabasePrefix = @{
Type = 'string'
Value = 'SharePoint'
DefaultValue = 'SharePoint'
Metadata = @{
Description = @{
'de-DE' = 'Praefix fuer alle von der SharePoint-Farm angelegten Datenbanken.'
'en-US' = 'Prefix for all databases created by the SharePoint farm.'
}
}
}
ServiceDatabaseSegment = @{
Type = 'string'
DefaultValue = 'Services'
Metadata = @{
Description = @{
'de-DE' = 'Namenssegment fuer SharePoint-Service-Datenbanken innerhalb des Datenbanknamens.'
'en-US' = 'Name segment used for SharePoint service databases within the database name.'
}
}
}
ContentDatabaseSegment = @{
Type = 'string'
DefaultValue = 'Content'
Metadata = @{
Description = @{
'de-DE' = 'Namenssegment fuer SharePoint-Content-Datenbanken innerhalb des Datenbanknamens.'
'en-US' = 'Name segment used for SharePoint content databases within the database name.'
}
}
}
ServiceApplicationPoolDefault = @{
Type = 'string'
DefaultValue = 'SharePoint Service Applications'
Metadata = @{
Description = @{
'de-DE' = 'Anzeigename des Standard-Application-Pools fuer SharePoint-Serviceanwendungen.'
'en-US' = 'Display name of the default application pool for SharePoint service applications.'
}
}
}
ServiceApplicationPoolUserProfileService = @{
Type = 'string'
DefaultValue = 'SharePoint User Profile Services'
Metadata = @{
Description = @{
'de-DE' = 'Anzeigename des Application-Pools fuer den SharePoint User Profile Service.'
'en-US' = 'Display name of the application pool for the SharePoint User Profile Service.'
}
}
}
ServiceApplicationPoolDefaultAccount = @{
Type = 'string'
DefaultValue = 'SVC_SHP_SAP'
Metadata = @{
Description = @{
'de-DE' = 'Kontoname fuer den Standard-Application-Pool der SharePoint-Serviceanwendungen.'
'en-US' = 'Account name used by the default application pool for SharePoint service applications.'
}
}
}
WebApplicationPoolDefault = @{
Type = 'string'
DefaultValue = 'SharePoint Web Applications'
Metadata = @{
Description = @{
'de-DE' = 'Anzeigename des Standard-Application-Pools fuer SharePoint-Webanwendungen.'
'en-US' = 'Display name of the default application pool for SharePoint web applications.'
}
}
}
WebApplicationPoolDefaultAccount = @{
Type = 'string'
DefaultValue = 'SVC_SHP_WAP'
Metadata = @{
Description = @{
'de-DE' = 'Kontoname fuer den Standard-Application-Pool der SharePoint-Webanwendungen.'
'en-US' = 'Account name used by the default application pool for SharePoint web applications.'
}
}
}
DatabaseInstanceName = @{
Type = 'string'
DefaultValue = 'SQL_Server'
Metadata = @{
Description = @{
'de-DE' = 'Standard-SQL-Instanzname fuer SharePoint-Datenbankverbindungen und Aliase.'
'en-US' = 'Default SQL instance name used for SharePoint database connections and aliases.'
}
}
}
}
Variables = @{
ServiceDbPrefix = "[concat(parameters('DatabasePrefix'),'_',parameters('ServiceDatabaseSegment'),'_')]"
ContentDbPrefix = "[concat(parameters('DatabasePrefix'),'_',parameters('ContentDatabaseSegment'),'_')]"
ConfigDbName = "[concat(parameters('DatabasePrefix'),'_','Farm_Config')]"
AdminDbName = "[concat(parameters('DatabasePrefix'),'_','Farm_AdminContent')]"
}
Resources = @{
NonNodeData = @{
Services = @{
SharePoint = @{
General = @{
ProductKey = '0000-0000-0000-0000-0000'
}
Windows = @{
Registry = @{
DisableLoopbackCheck = @{
Path = 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa'
Name = 'DisableLoopbackCheck'
Type = 'DWord'
Value = 1
}
}
}
Database = @{
SQLAlias = @{
SQLServer = @{
ServerName = ''
InstanceName = "[parameters('DatabaseInstanceName')]"
TcpPort = 0
}
}
}
Farm = @{
Passphrase = 'Use-SecureString-Or-KeyVault'
ConfigDatabaseName = "[variables('ConfigDbName')]"
AdminContentDatabase = "[variables('AdminDbName')]"
CentralAdminPort = 2016
CentralAdminAuth = 'NTLM' # oder Kerberos
ServiceApplicationPools = @{
Default = @{
Name = "[parameters('ServiceApplicationPoolDefault')]"
Account = 'CONTOSO\sp_services'
}
UserProfile = @{
Name = "[parameters('ServiceApplicationPoolUserProfileService')]"
Account = 'CONTOSO\sp_ups'
}
}
ServiceApplications = @{
ManagedMetadataService = @{
Provision = $true
Name = 'Managed Metadata Service'
ApplicationPool = 'SharePoint Service Applications'
DatabaseName = "[concat(variables('ServiceDbPrefix'), 'ManagedMetadata')]"
}
UserProfileService = @{
Provision = $true
Name = 'User Profile Service'
ApplicationPool = 'SharePoint User Profile Services'
ProfileDBName = "[concat(variables('ServiceDbPrefix'), 'UserProfile_ProfileDB')]"
SocialDBName = "[concat(variables('ServiceDbPrefix'), 'UserProfile_SocialDB')]"
SyncDBName = "[concat(variables('ServiceDbPrefix'), 'UserProfile_SyncDB')]"
}
SearchService = @{
Provision = $true
Name = 'Search Service Application'
ApplicationPool = 'SharePoint Service Applications'
DatabaseName = "[concat(variables('ServiceDbPrefix'),'Search')]"
}
StateService = @{
Provision = $true
DatabaseName = "[concat(variables('ServiceDbPrefix'),'StateService')]"
}
UsageAndHealthService = @{
Provision = $true
DatabaseName = "[concat(variables('ServiceDbPrefix'),'UsageAndHealth')]"
}
AppManagementService = @{
Provision = $true
DatabaseName = "[concat(variables('ServiceDbPrefix'),'AppManagement')]"
}
SubscriptionSettingsService = @{
Provision = $true
DatabaseName = "[concat(variables('ServiceDbPrefix'),'SubscriptionSettings')]"
}
SecureStoreService = @{
Provision = $true
Name = 'Secure Store Service'
ApplicationPool = 'SharePoint Service Applications'
DatabaseName = "[concat(variables('ServiceDbPrefix'),'SecureStore')]"
}
}
}
}
}
}
}
}

View File

@@ -1,142 +0,0 @@
@{
Parameters = @{
DatabasePrefix = @{
Type = 'string'
Value = 'SharePoint'
DefaultValue = 'SP'
Metadata = @{
Description = 'Prefix für alle Datenbanknamen'
}
}
ServiceDatabasePrefix = @{
Type = 'string'
DefaultValue = 'Services'
}
ContentDatabasePrefix = @{
Type = 'string'
DefaultValue = 'Content'
}
ServiceApplicationPoolDefault = @{
Type = 'string'
DefaultValue = 'SharePoint Service Applications'
}
ServiceApplicationPoolUserProfileService = @{
Type = 'string'
DefaultValue = 'SharePoint User Profile Services'
}
DatbaseInstanceName = @{
Type = 'string'
DefaultValue = 'mssqlserver'
Metadata = @{
Description = 'Instanz Name für die Standart Instanz'
}
}
}
Variables = @{
ServiceDbPrefix = "[Concat(Parameter('DatabasePrefix'),'_',Parameter('ServiceDatabasePrefix'),'_')]"
ContentDbPrefix = "[Concat(Parameter('DatabasePrefix'),'_',Parameter('ServiceDatabasePrefix'),'_')]"
ConfigDbName = "[Concat(Parameter('DatabasePrefix'),'_','Farm_Config')]"
AdminDbName = "[Concat(Parameter('DatabasePrefix'),'_','Farm_AdminContent')]"
HZDTest = "[Substring(Parameter('DatbaseInstanceName'),0,5)]"
Test = "[ToUpper(Parameter('DatbaseInstanceName'),0,5)]"
}
Resources = @{
NonNodeData = @{
Services = @{
SharePoint = @{
General = @{
ProductKey = '0000-0000-0000-0000-0000'
}
Windows = @{
Registry = @{
DisableLoopbackCheck = @{
Path = 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa'
Name = 'DisableLoopbackCheck'
Type = 'DWord'
Value = 1
}
}
}
Database = @{
SQLAlias = @{
SQLServer = @{
ServerName = ''
InstanceName = ''
TcpPort = 0
}
}
}
Farm = @{
Passphrase = 'Use-SecureString-Or-KeyVault'
ConfigDatabaseName = "[Variable('ConfigDbName')]"
AdminContentDatabase = "[Variable('AdminDbName')]"
CentralAdminPort = 2016
CentralAdminAuth = 'NTLM' # oder Kerberos
ServiceApplicationPools = @{
Default = @{
Name = "[Parameter('ServiceApplicationPoolDefault')]"
Account = 'CONTOSO\sp_services'
}
UserProfile = @{
Name = "[Parameter('ServiceApplicationPoolUserProfileService')]"
Account = 'CONTOSO\sp_ups'
}
}
ServiceApplications = @{
ManagedMetadataService = @{
Provision = $true
Name = 'Managed Metadata Service'
ApplicationPool = 'SharePoint Service Applications'
DatabaseName = "[Concat(Variable('ServiceDbPrefix'), 'ManagedMetadata')]"
}
UserProfileService = @{
Provision = $true
Name = 'User Profile Service'
ApplicationPool = 'SharePoint User Profile Services'
ProfileDBName = "[Concat(Variable('ServiceDbPrefix'), 'UserProfile_ProfileDB')]"
SocialDBName = "[Concat(Variable('ServiceDbPrefix'), 'UserProfile_SocialDB')]"
SyncDBName = "[Concat(Variable('ServiceDbPrefix'), 'UserProfile_SyncDB')]"
}
SearchService = @{
Provision = $true
Name = 'Search Service Application'
ApplicationPool = 'SharePoint Service Applications'
DatabaseName = "[Concat(Variable('ServiceDbPrefix'),'Search')]"
}
StateService = @{
Provision = $true
DatabaseName = "[Concat(Variable('ServiceDbPrefix'),'StateService')]"
}
UsageAndHealthService = @{
Provision = $true
DatabaseName = "[Concat(Variable('ServiceDbPrefix'),'UsageAndHealth')]"
}
AppManagementService = @{
Provision = $true
DatabaseName = "[Concat(Variable('ServiceDbPrefix'),'AppManagement')]"
}
SubscriptionSettingsService = @{
Provision = $true
DatabaseName = "[Concat(Variable('ServiceDbPrefix'),'SubscriptionSettings')]"
}
SecureStoreService = @{
Provision = $true
Name = 'Secure Store Service'
ApplicationPool = 'SharePoint Service Applications'
DatabaseName = "[Concat(Variable('ServiceDbPrefix'),'SecureStore')]"
}
}
}
}
}
}
}
}