Die Sache mit dem Installationsnamen und dem Featurenamen bei DISM bzw. Powershell ServerManager-Modul

28 April 2016

Bereits früher hatte ich auf die Problematik mit den verschiedenen Namen der unterschiedlichen Installationstechniken mit DISM, Install-WindowsFeature usw. hingewiesen: https://newyear2006.wordpress.com/2016/01/25/unterschiede-zwischen-windows-funktionen-bzw-features-bei-der-installation/

Hier nun ein Script welches etwas mehr Licht ins Dunkel bringt und den Featurenamen mit dem Installationsnamen in Verbindung setzt:

Get-WindowsFeature *|% {$n=@()} { $n+= New-Object -TypeName psobject -Property ([ordered]@{Name=$_.Name; InstallName=$_.AdditionalInfo.Item("InstallName")}) }  {$n}

Dadurch erhält man dann schön eine Tabelle, was mit was korrespondiert. Oft ist es so, dass der Name mit dem Installationsnamen zusammenpasst wie bei File-Services. Aber manchmal läuft die Sache komplett auseinander, Beispiel FS-BranchCache dessen Installationsname SMBHashGeneration ist. Da würde man nie drauf kommen, wenn man es nicht wüsste!

In folgender Tabelle sind die Installationsnamen in geschweiften Klammern aufgeführt, weil es mehrere Installationsnamen geben kann, wie z. B. bei WDS-Transport, welcher dann als Installationsnamen Microsoft-Windows-Deployment-Services-Transport-Server und Microsoft-Windows-Deployment-Services umfasst.

Name        : ADLDS
InstallName : {DirectoryServices-ADAM}

Name        : AD-Domain-Services
InstallName : {DirectoryServices-DomainController}

Name        : ADRMS
InstallName : {RightsManagementServices-Role}

Name        : ADRMS-Server
InstallName : {RightsManagementServices, RightsManagementServices-AdminTools}

Name        : ADRMS-Identity
InstallName : {RMS-Federation}

Name        : ADFS-Federation
InstallName : {IdentityServer-SecurityTokenService}

Name        : AD-Certificate
InstallName : {ADCertificateServicesRole}

Name        : ADCS-Cert-Authority
InstallName : {CertificateServices}

Name        : ADCS-Online-Cert
InstallName : {OnlineRevocationServices}

Name        : ADCS-Device-Enrollment
InstallName : {NetworkDeviceEnrollmentServices}

Name        : ADCS-Enroll-Web-Pol
InstallName : {CertificateEnrollmentPolicyServer}

Name        : ADCS-Enroll-Web-Svc
InstallName : {CertificateEnrollmentServer}

Name        : ADCS-Web-Enrollment
InstallName : {WebEnrollmentServices}

Name        : Application-Server
InstallName : {Application-Server}

Name        : AS-NET-Framework
InstallName : {AS-NET-Framework}

Name        : AS-Ent-Services
InstallName : {AS-Ent-Services}

Name        : AS-TCP-Port-Sharing
InstallName : {Application-Server-TCP-Port-Sharing}

Name        : AS-WAS-Support
InstallName : {Application-Server-WAS-Support}

Name        : AS-HTTP-Activation
InstallName : {Application-Server-HTTP-Activation}

Name        : AS-MSMQ-Activation
InstallName : {Application-Server-MSMQ-Activation}

Name        : AS-Named-Pipes
InstallName : {Application-Server-Pipe-Activation}

Name        : AS-TCP-Activation
InstallName : {Application-Server-TCP-Activation}

Name        : AS-Web-Support
InstallName : {Application-Server-WebServer-Support}

Name        : AS-Dist-Transaction
InstallName : {AS-Dist-Transaction}

Name        : AS-WS-Atomic
InstallName : {AS-WS-Atomic}

Name        : AS-Outgoing-Trans
InstallName : {AS-Outgoing-Trans}

Name        : AS-Incoming-Trans
InstallName : {AS-Incoming-Trans}

Name        : FileAndStorage-Services
InstallName : {FileAndStorage-Services}

Name        : File-Services
InstallName : {File-Services}

Name        : FS-FileServer
InstallName : {CoreFileServer}

Name        : FS-SyncShareService
InstallName : {WorkFolders-Server}

Name        : FS-BranchCache
InstallName : {SMBHashGeneration}

Name        : FS-VSS-Agent
InstallName : {FileServerVSSAgent}

Name        : FS-DFS-Namespace
InstallName : {DFSN-Server}

Name        : FS-DFS-Replication
InstallName : {DFSR-Infrastructure-ServerEdition}

Name        : FS-iSCSITarget-Server
InstallName : {iSCSITargetServer}

Name        : iSCSITarget-VSS-VDS
InstallName : {iSCSITargetStorageProviders}

Name        : FS-Resource-Manager
InstallName : {FSRM-Infrastructure}

Name        : FS-NFS-Service
InstallName : {ServicesForNFS-ServerAndClient, ServerForNFS-Infrastructure}

Name        : Storage-Services
InstallName : {Storage-Services}

Name        : DHCP
InstallName : {DHCPServer}

Name        : DNS
InstallName : {DNS-Server-Full-Role}

Name        : Print-Services
InstallName : {Printing-Server-Foundation-Features}

Name        : Print-Server
InstallName : {Printing-Server-Role}

Name        : Print-Internet
InstallName : {Printing-InternetPrinting-Server}

Name        : Print-LPD-Service
InstallName : {Printing-LPDPrintService}

Name        : Print-Scan-Server
InstallName : {BusScan-ScanServer}

Name        : Fax
InstallName : {FaxServiceRole}

Name        : Hyper-V
InstallName : {Microsoft-Hyper-V-Offline, Microsoft-Hyper-V-Online}

Name        : NPAS
InstallName : {NPAS-Role}

Name        : NPAS-Policy-Server
InstallName : {IAS NT Service}

Name        : NPAS-Host-Cred
InstallName : {HCAP-Server}

Name        : NPAS-Health
InstallName : {HCSRuntime}

Name        : Remote-Desktop-Services
InstallName : {Remote-Desktop-Services}

Name        : RDS-Gateway
InstallName : {Gateway}

Name        : RDS-Licensing
InstallName : {Licensing}

Name        : RDS-RD-Server
InstallName : {AppServer}

Name        : RDS-Connection-Broker
InstallName : {SBMgr-UI, SessionDirectory}

Name        : RDS-Web-Access
InstallName : {WebAccess}

Name        : RemoteAccess
InstallName : {RemoteAccess}

Name        : DirectAccess-VPN
InstallName : {RemoteAccessServer}

Name        : Routing
InstallName : {RasRoutingProtocols}

Name        : Web-Application-Proxy
InstallName : {Web-Application-Proxy}

Name        : VolumeActivation
InstallName : {VolumeActivation-Full-Role}

Name        : Web-Server
InstallName : {IIS-WebServerRole}

Name        : Web-WebServer
InstallName : {IIS-WebServer}

Name        : Web-Common-Http
InstallName : {IIS-CommonHttpFeatures}

Name        : Web-Http-Errors
InstallName : {IIS-HttpErrors}

Name        : Web-Default-Doc
InstallName : {IIS-DefaultDocument}

Name        : Web-Static-Content
InstallName : {IIS-StaticContent}

Name        : Web-Dir-Browsing
InstallName : {IIS-DirectoryBrowsing}

Name        : Web-Http-Redirect
InstallName : {IIS-HttpRedirect}

Name        : Web-DAV-Publishing
InstallName : {IIS-WebDAV}

Name        : Web-Performance
InstallName : {IIS-Performance}

Name        : Web-Stat-Compression
InstallName : {IIS-HttpCompressionStatic}

Name        : Web-Dyn-Compression
InstallName : {IIS-HttpCompressionDynamic}

Name        : Web-Security
InstallName : {IIS-Security}

Name        : Web-Filtering
InstallName : {IIS-RequestFiltering}

Name        : Web-Client-Auth
InstallName : {IIS-ClientCertificateMappingAuthentication}

Name        : Web-Cert-Auth
InstallName : {IIS-IISCertificateMappingAuthentication}

Name        : Web-Digest-Auth
InstallName : {IIS-DigestAuthentication}

Name        : Web-IP-Security
InstallName : {IIS-IPSecurity}

Name        : Web-Basic-Auth
InstallName : {IIS-BasicAuthentication}

Name        : Web-CertProvider
InstallName : {IIS-CertProvider}

Name        : Web-Url-Auth
InstallName : {IIS-URLAuthorization}

Name        : Web-Windows-Auth
InstallName : {IIS-WindowsAuthentication}

Name        : Web-Health
InstallName : {IIS-HealthAndDiagnostics}

Name        : Web-Http-Logging
InstallName : {IIS-HttpLogging}

Name        : Web-Http-Tracing
InstallName : {IIS-HttpTracing}

Name        : Web-Request-Monitor
InstallName : {IIS-RequestMonitor}

Name        : Web-Custom-Logging
InstallName : {IIS-CustomLogging}

Name        : Web-ODBC-Logging
InstallName : {IIS-ODBCLogging}

Name        : Web-Log-Libraries
InstallName : {IIS-LoggingLibraries}

Name        : Web-App-Dev
InstallName : {IIS-ApplicationDevelopment}

Name        : Web-Net-Ext
InstallName : {IIS-NetFxExtensibility}

Name        : Web-Net-Ext45
InstallName : {IIS-NetFxExtensibility45}

Name        : Web-AppInit
InstallName : {IIS-ApplicationInit}

Name        : Web-ASP
InstallName : {IIS-ASP}

Name        : Web-Asp-Net
InstallName : {IIS-ASPNET}

Name        : Web-Asp-Net45
InstallName : {IIS-ASPNET45}

Name        : Web-CGI
InstallName : {IIS-CGI}

Name        : Web-ISAPI-Ext
InstallName : {IIS-ISAPIExtensions}

Name        : Web-ISAPI-Filter
InstallName : {IIS-ISAPIFilter}

Name        : Web-Includes
InstallName : {IIS-ServerSideIncludes}

Name        : Web-WebSockets
InstallName : {IIS-WebSockets}

Name        : Web-Ftp-Server
InstallName : {IIS-FTPServer}

Name        : Web-Ftp-Service
InstallName : {IIS-FTPSvc}

Name        : Web-Ftp-Ext
InstallName : {IIS-FTPExtensibility}

Name        : Web-Mgmt-Tools
InstallName : {IIS-WebServerManagementTools}

Name        : Web-Mgmt-Console
InstallName : {IIS-ManagementConsole}

Name        : Web-Scripting-Tools
InstallName : {IIS-ManagementScriptingTools}

Name        : Web-Mgmt-Compat
InstallName : {IIS-IIS6ManagementCompatibility}

Name        : Web-Metabase
InstallName : {IIS-Metabase}

Name        : Web-Lgcy-Scripting
InstallName : {IIS-LegacyScripts}

Name        : Web-Lgcy-Mgmt-Console
InstallName : {IIS-LegacySnapIn}

Name        : Web-WMI
InstallName : {IIS-WMICompatibility}

Name        : Web-Mgmt-Service
InstallName : {IIS-ManagementService}

Name        : ServerEssentialsRole
InstallName : {WSS-Product-Package}

Name        : UpdateServices
InstallName : {UpdateServices}

Name        : UpdateServices-WidDB
InstallName : {UpdateServices-WidDatabase}

Name        : UpdateServices-Services
InstallName : {UpdateServices-Services}

Name        : UpdateServices-DB
InstallName : {UpdateServices-Database}

Name        : WDS
InstallName : {Microsoft-Windows-Deployment-Services}

Name        : WDS-Deployment
InstallName : {Microsoft-Windows-Deployment-Services-Deployment-Server}

Name        : WDS-Transport
InstallName : {Microsoft-Windows-Deployment-Services-Transport-Server, Microsoft-Windows-Deployment-Services}

Name        : NET-Framework-Features
InstallName : {NetFx3ServerFeatures}

Name        : NET-Framework-Core
InstallName : {NetFx3}

Name        : NET-HTTP-Activation
InstallName : {WCF-HTTP-Activation}

Name        : NET-Non-HTTP-Activ
InstallName : {WCF-NonHTTP-Activation}

Name        : NET-Framework-45-Features
InstallName : {NetFx4ServerFeatures}

Name        : NET-Framework-45-Core
InstallName : {NetFx4}

Name        : NET-Framework-45-ASPNET
InstallName : {NetFx4Extended-ASPNET45}

Name        : NET-WCF-Services45
InstallName : {WCF-Services45}

Name        : NET-WCF-Pipe-Activation45
InstallName : {WCF-Pipe-Activation45}

Name        : NET-WCF-HTTP-Activation45
InstallName : {WCF-HTTP-Activation45}

Name        : NET-WCF-MSMQ-Activation45
InstallName : {WCF-MSMQ-Activation45}

Name        : NET-WCF-TCP-Activation45
InstallName : {WCF-TCP-Activation45}

Name        : NET-WCF-TCP-PortSharing45
InstallName : {WCF-TCP-PortSharing45}

Name        : User-Interfaces-Infra
InstallName : {User-Interfaces-Infra}

Name        : Server-Gui-Mgmt-Infra
InstallName : {ServerCore-FullServer, Server-Gui-Mgmt}

Name        : Desktop-Experience
InstallName : {DesktopExperience}

Name        : Server-Gui-Shell
InstallName : {Server-Gui-Shell}

Name        : BitLocker
InstallName : {BitLocker}

Name        : BitLocker-NetworkUnlock
InstallName : {BitLocker-NetworkUnlock}

Name        : BranchCache
InstallName : {PeerDist}

Name        : NFS-Client
InstallName : {ServicesForNFS-ServerAndClient, ClientForNFS-Infrastructure}

Name        : Data-Center-Bridging
InstallName : {DataCenterBridging}

Name        : Direct-Play
InstallName : {DirectPlay}

Name        : Simple-TCPIP
InstallName : {SimpleTCP}

Name        : EnhancedStorage
InstallName : {EnhancedStorage}

Name        : InkAndHandwritingServices
InstallName : {InkAndHandwritingServices}

Name        : GPMC
InstallName : {Microsoft-Windows-GroupPolicy-ServerAdminTools-Update}

Name        : Web-WHC
InstallName : {IIS-HostableWebCore}

Name        : ManagementOdata
InstallName : {ManagementOdata}

Name        : BITS
InstallName : {BITS}

Name        : BITS-IIS-Ext
InstallName : {BITSExtensions-Upload}

Name        : BITS-Compact-Server
InstallName : {LightweightServer}

Name        : Windows-Internal-Database
InstallName : {Windows-Internal-Database}

Name        : Internet-Print-Client
InstallName : {Printing-InternetPrinting-Client}

Name        : IPAM
InstallName : {IPAMServerFeature}

Name        : ISNS
InstallName : {iSNS_Service}

Name        : LPR-Port-Monitor
InstallName : {Printing-LPRPortMonitor}

Name        : Server-Media-Foundation
InstallName : {ServerMediaFoundation}

Name        : MSMQ
InstallName : {MSMQ}

Name        : MSMQ-Services
InstallName : {MSMQ-Services}

Name        : MSMQ-Server
InstallName : {MSMQ-Server}

Name        : MSMQ-HTTP-Support
InstallName : {MSMQ-HTTP}

Name        : MSMQ-Triggers
InstallName : {MSMQ-Triggers}

Name        : MSMQ-Multicasting
InstallName : {MSMQ-Multicast}

Name        : MSMQ-Routing
InstallName : {MSMQ-RoutingServer}

Name        : MSMQ-Directory
InstallName : {MSMQ-ADIntegration}

Name        : MSMQ-DCOM
InstallName : {MSMQ-DCOMProxy}

Name        : Multipath-IO
InstallName : {MultipathIo}

Name        : NLB
InstallName : {NetworkLoadBalancingFullServer}

Name        : PNRP
InstallName : {P2P-PnrpOnly}

Name        : CMAK
InstallName : {RasCMAK}

Name        : RDC
InstallName : {MSRDC-Infrastructure}

Name        : RSAT
InstallName : {ServerManager-Core-RSAT}

Name        : RSAT-Feature-Tools
InstallName : {ServerManager-Core-RSAT-Feature-Tools}

Name        : RSAT-SMTP
InstallName : {Smtpsvc-Admin-Update-Name}

Name        : RSAT-Clustering
InstallName : {FailoverCluster-AdminPak}

Name        : RSAT-Clustering-PowerShell
InstallName : {FailoverCluster-PowerShell}

Name        : RSAT-Clustering-Mgmt
InstallName : {FailoverCluster-Mgmt}

Name        : RSAT-Clustering-CmdInterface
InstallName : {FailoverCluster-CmdInterface}

Name        : RSAT-Clustering-AutomationServer
InstallName : {FailoverCluster-AutomationServer}

Name        : IPAM-Client-Feature
InstallName : {IPAMClientFeature}

Name        : RSAT-SNMP
InstallName : {Server-RSAT-SNMP}

Name        : RSAT-Bits-Server
InstallName : {BITSExtensions-AdminPack}

Name        : RSAT-NLB
InstallName : {NetworkLoadBalancingManagementClient}

Name        : RSAT-Feature-Tools-BitLocker
InstallName : {Bitlocker-Utilities}

Name        : RSAT-Feature-Tools-BitLocker-BdeAducExt
InstallName : {BdeAducExtTool}

Name        : RSAT-Feature-Tools-BitLocker-RemoteAdminTool
InstallName : {BitLocker-RemoteAdminTool}

Name        : RSAT-WINS
InstallName : {WINS-Server-Tools}

Name        : RSAT-Role-Tools
InstallName : {ServerManager-Core-RSAT-Role-Tools}

Name        : RSAT-AD-Tools
InstallName : {RSAT-AD-Tools-Feature}

Name        : RSAT-AD-PowerShell
InstallName : {ActiveDirectory-PowerShell}

Name        : RSAT-ADDS
InstallName : {RSAT-ADDS-Tools-Feature}

Name        : RSAT-AD-AdminCenter
InstallName : {DirectoryServices-AdministrativeCenter}

Name        : RSAT-ADDS-Tools
InstallName : {DirectoryServices-DomainController-Tools}

Name        : RSAT-NIS
InstallName : {RSAT-NIS}

Name        : RSAT-ADLDS
InstallName : {DirectoryServices-ADAM-Tools}

Name        : RSAT-Hyper-V-Tools
InstallName : {RSAT-Hyper-V-Tools-Feature}

Name        : Hyper-V-Tools
InstallName : {Microsoft-Hyper-V-Management-Clients}

Name        : Hyper-V-PowerShell
InstallName : {Microsoft-Hyper-V-Management-PowerShell}

Name        : RSAT-RDS-Tools
InstallName : {RSAT-RDS-Tools-Feature}

Name        : RSAT-RDS-Licensing-Diagnosis-UI
InstallName : {Licensing-Diagnosis-UI}

Name        : RSAT-RDS-Gateway
InstallName : {Gateway-UI}

Name        : RDS-Licensing-UI
InstallName : {Licensing-UI}

Name        : UpdateServices-RSAT
InstallName : {UpdateServices-RSAT}

Name        : UpdateServices-API
InstallName : {UpdateServices-API}

Name        : UpdateServices-UI
InstallName : {UpdateServices-UI}

Name        : RSAT-DHCP
InstallName : {DHCPServer-Tools}

Name        : RSAT-DNS-Server
InstallName : {DNS-Server-Tools}

Name        : RSAT-Fax
InstallName : {FaxServiceConfigRole}

Name        : RSAT-ADRMS
InstallName : {RightsManagementServicesManagementTools}

Name        : RSAT-ADCS
InstallName : {ADCertificateServicesManagementTools}

Name        : RSAT-Online-Responder
InstallName : {OnlineRevocationServicesManagementTools}

Name        : RSAT-ADCS-Mgmt
InstallName : {CertificateServicesManagementTools}

Name        : RSAT-File-Services
InstallName : {Server-Manager-RSAT-File-Services}

Name        : RSAT-DFS-Mgmt-Con
InstallName : {DfsMgmt}

Name        : RSAT-NFS-Admin
InstallName : {NFS-Administration}

Name        : RSAT-FSRM-Mgmt
InstallName : {FSRM-Management}

Name        : RSAT-CoreFile-Mgmt
InstallName : {CoreFileServer-RSAT}

Name        : RSAT-RemoteAccess
InstallName : {RemoteAccessMgmtTools}

Name        : RSAT-RemoteAccess-Mgmt
InstallName : {DamgmtTools}

Name        : RSAT-RemoteAccess-PowerShell
InstallName : {RemoteAccessPowerShell}

Name        : RSAT-Print-Services
InstallName : {Printing-AdminTools-Collection}

Name        : RSAT-NPAS
InstallName : {HCSUI, NPSManagementTools}

Name        : WDS-AdminPack
InstallName : {Microsoft-Windows-Deployment-Services-Admin-Pack}

Name        : RSAT-VA-Tools
InstallName : {Security-SPP-Vmw}

Name        : Remote-Assistance
InstallName : {RemoteAssistance}

Name        : RPC-over-HTTP-Proxy
InstallName : {RPC-HTTP_Proxy}

Name        : FS-SMBBW
InstallName : {SMBBW}

Name        : SMTP-Server
InstallName : {Smtpsvc-Service-Update-Name}

Name        : SNMP-Service
InstallName : {SNMP}

Name        : SNMP-WMI-Provider
InstallName : {WMISnmpProvider}

Name        : WindowsStorageManagementService
InstallName : {WindowsStorageManagementService}

Name        : Telnet-Client
InstallName : {TelnetClient}

Name        : Telnet-Server
InstallName : {TelnetServer}

Name        : TFTP-Client
InstallName : {TFTP}

Name        : FS-SMB1
InstallName : {SMB1Protocol}

Name        : qWave
InstallName : {QWAVE}

Name        : Windows-Identity-Foundation
InstallName : {Windows-Identity-Foundation}

Name        : PowerShellRoot
InstallName : {MicrosoftWindowsPowerShellRoot}

Name        : PowerShell
InstallName : {MicrosoftWindowsPowerShell}

Name        : PowerShell-V2
InstallName : {MicrosoftWindowsPowerShellV2}

Name        : PowerShell-ISE
InstallName : {MicrosoftWindowsPowerShellISE}

Name        : WindowsPowerShellWebAccess
InstallName : {WindowsPowerShellWebAccess}

Name        : DSC-Service
InstallName : {DSC-Service}

Name        : Search-Service
InstallName : {File-Services-Search-Service, SearchEngine-Server-Package}

Name        : Migration
InstallName : {ServerMigration}

Name        : Windows-Server-Backup
InstallName : {WindowsServerBackup}

Name        : Biometric-Framework
InstallName : {BiometricFramework}

Name        : WFF
InstallName : {WindowsFeedbackForwarder}

Name        : WAS
InstallName : {WAS-WindowsActivationService}

Name        : WAS-Process-Model
InstallName : {WAS-ProcessModel}

Name        : WAS-NET-Environment
InstallName : {WAS-NetFxEnvironment}

Name        : WAS-Config-APIs
InstallName : {WAS-ConfigurationAPI}

Name        : Windows-TIFF-IFilter
InstallName : {TIFFIFilter}

Name        : WinRM-IIS-Ext
InstallName : {Microsoft-Windows-Web-Services-for-Management-IIS-Extension}

Name        : WINS
InstallName : {WINSRuntime}

Name        : Wireless-Networking
InstallName : {WirelessNetworking}

Name        : WoW64-Support
InstallName : {ServerCore-WOW64}

Name        : XPS-Viewer
InstallName : {Xps-Foundation-Xps-Viewer}

Wider die Arbeitsmoral

28 April 2016

Wenn man mal keinen Bock hat eine Arbeit zu Ende zu führen, warum dann nicht einfach selbstgestrickte Fehlermeldungen erzeugen?

Da sich hier vieles um Powershell dreht, hier ein Zweizeiler, welcher die Möglichkeiten schön darstellt:

Add-Type -AssemblyName System.Windows.Forms

[System.Windows.Forms.MessageBox]::Show("Das Installationsprogramm hat einen Fehler festgestellt: 0xc80003f3","Eigenständiges Windows Update-Installationsprogramm", [System.Windows.Forms.MessageBoxButtons]::OK,[System.Windows.Forms.MessageBoxIcon]::Error)

Baut man dies in ein Script ein, Profis verschlüsseln die Sache vorab, damit es nicht gar so auffällig ist, dann kann man immer sagen: Geht jetzt nicht, hab ein unlösbares Problem! Muss erst nochmal recherchieren…

Viel Spaß mit der gewonnen Freizeit!

Festplatte bei virtuellem Rechner erweitern bzw. vergrößern

27 März 2016

Hier im Schnelldurchgang, um z. B. einem Rechner 10GB mehr zukommen zu lassen:

-Virtuellen Rechner offline nehmen
-dann auf dem Hyper-V

Resize-VHD –Path  PfadzuVHDXDatei -SizeBytes ((Get-VHD PfadzuVHDXDatei).Size + 10GB)

ausführen

-VM wieder hochfahren und dann die gewünscht Partition um die erweiterte Größe vergrößern. Dazu verwendet man die Datenträgererwaltung oder direkt diskmgmt.msc. Diese Operation könnte man auch per Powershell direkt nach obiger Erweiterung durchführen…

AzureResourceManager und die Hintergründe zu Switch-AzureMode

5 März 2016

Microsofts Azure wird nicht mehr verschwinden. Wer sich effektiv mit Azure beschäftigt, der sollte wie immer per Powershell die Sache angehen. Auf GUIs kann man sich in der Regel nicht verlassen, da diese einer gewissen Mode unterliegen. Aus diesem Grund wird in diesem Blog versucht so gut wie alles per Kommandozeile bzw. Powershell zu regeln.

Blöd nur, wenn sich nun aber die Powershell Cmdlets ebenso ändern und man keinen Plan hat warum, wieso und weshalb. So liest man oft von Switch-AzureMode oder von Azure Resource Manager (ARM). Hier ein Auszug einer Microsoft Dokumentation https://azure.microsoft.com/de-de/documentation/articles/virtual-machines-deploy-rmtemplates-powershell/:

Azure PowerShell ist derzeit in zwei Versionen verfügbar: 1.0 und 0.9.8. Wenn Sie bereits Skripts haben und diese nicht sofort ändern möchten, können Sie weiterhin Version 0.9.8 verwenden. Bei der Verwendung der Version 1.0 sollten Sie Ihre Skripts sorgfältig in Präproduktionsumgebungen testen, bevor Sie sie in der Produktionsumgebung einsetzen, um unerwartete Folgen zu vermeiden.

Cmdlet-Namen der Version 1.0 haben das Muster {Verb}-AzureRm{Nomen}, während Namen der Version 0.9.8 nicht Rm enthalten (z. B. „New-AzureRmResourceGroup“ statt „New-AzureResourceGroup“). Wenn Sie Azure PowerShell 0.9.8 verwenden, müssen Sie zunächst den Ressourcen-Manager-Modus aktivieren, indem Sie den Befehl Switch-AzureMode AzureResourceManager ausführen. Dieser Befehl ist in 1.0 nicht erforderlich.

Das ist alles schön und gut, aber das Web ist voll von alten Beispielen und Code-Snippets und manchmal wäre es ganz gut tiefergehende Infos zum Thema zu erhalten.

Mittlerweile wird auf einen speziellen Artikel verwiesen, der die neuen Möglichkeiten des Ressourcen-Manager-Model anschaulich darlegt: https://azure.microsoft.com/de-de/documentation/articles/resource-manager-deployment-model/

Wenn man zum Thema etwas recherchiert, dann kann man diesen Wiki-Eintrag in Github finden, der geht sehr ausführlich nochmal auf die Hintergrunde ein: https://github.com/Azure/azure-powershell/wiki/Deprecation-of-Switch-AzureMode-in-Azure-PowerShell

Es gibt sogar ein Script, welches automatisch virtuelle Maschinen vom Azure Service Management (ASM) Modell ins Azure Resource Mangement (ARM) Model migriert: https://github.com/fullscale180/asm2arm.

Software für Hardware Token Provider auf Rechner über Remote Desktop zu installieren, ist keine gute Idee

3 März 2016

Wir befinden uns im Jahr 2016. Im Jahr 2006 erblickte Windows Vista die Welt und brachte damals für die Windowswelt nach Windows XP größere Veränderungen mit. Aber selbst heute bekommt man noch Auswirkungen von damals zu spüren, durch unsachgemäße Fehlermeldungen und faule Programmierer!

Aktuelles Beispiel, es sollte der SafeNet Authentication Client Version 9.0 installiert werden, damit ein Zertifikat auf einem USB eToken gespeichert werden kann.

Es wurden mehrere Rechner probiert jeweils mit Windows 7 SP1 und Windows 8.1 mit allen aktuellen Updates, auch 64-Bit und 32-Bit war dabei. Am Ende wurde auch die Installation nur in Englisch durchgeführt, wäre nicht das erste Mal, dass es nur so funktioniert. Aber jedes Mal kam es zu der Fehlermeldung:

There appears to be a problem with the Smart Card Resource Manager configuration on this computer. \nThe installation will be completed, but may not work correctly.\nPlease contact your System Administrator to solve the problem.

Wie die Meldung schreibt funktioniert danach die Sache einfach nicht.

Der Support verwies nur auf dieses Dokument und den Admin: https://kb.safenet-inc.com/kb/index?page=content&id=S438&actp=LIST_POPULAR

Wenn man sich die Log-Dateien anschaut, dann taucht in der eTCoreInst.LOG, welche sich im %TEMP%-Verzeichnis befindet dieser Eintrag auf:

(ThID:2360): Err in RMTable::snapshot, SCardEstablishContext fails, rv=0x8010001d
(ThID:2360): RMTable::snapshot: exit , rv=0x8010001d
(ThID:2360): Err in RMTable::listReaders, snapshot() fails, rv=0x8010001d
(ThID:2360): RMTable::listReaders: exit , rv=0x8010001d
(ThID:2360): Trace in snapshotScardDevice, Cannot list readers

Recherchiert man damit etwas, stolpert man über diesen Artikel: https://blogs.msdn.microsoft.com/alejacma/2011/05/19/scardestablishcontext-fails-with-scard_e_no_service-error/

Da steht dann etwas von:

SCardEstablishContext API is returning that error because it gets an Access Denied error when trying toopen an event called “Global\Microsoft Smart Card Resource Manager Started” with OpenEvent API. The default security for that event on Vista and Windows 7 specifies that only SYSTEM, LOCAL SERVICE and INTERACTIVE users have access to it. NETWORK SERVICE or non-interactive users won’t be able to access the event.

OK, dann ist alles klar. Das ist ein aus XP-Zeiten geerbtes Problem. D. h. man muss physisch angemeldet sein, damit es funktioniert.

Alle obigen Versuche, wo es nicht klappte, wurden per Remote Desktop durchgeführt! Siehe da, einmal physisch am Rechner und schon funktionierte es!!

Gilt für alle, die Zertifikate von DigiSafe, GlobalSign, TrustZone, Entrust und wie sie alle heißen benutzen, welche die Hardware von Safenet einsetzen. Daneben gibt es auch noch Banken…

Noch ein interessanter Blogeintrag, wie man ein normales Zertifikat auf den USB Token bekommt kann: https://blogs.msdn.microsoft.com/ieinternals/2015/01/28/authenticode-in-2015/.

Installationsdatum seines Windows ermitteln und die neuen Probleme mit Windows 10

18 Februar 2016

Man kann in der Eingabeaufforderung sehr einfach ermitteln, wann eine Windowsversion installiert wurde:

systeminfo|findstr /i install

Systeminfo ermittelt jede Menge Infos zum Rechner aber was uns hier interessiert ist nur das Installationsdatum. Die Angabe mit /i und nur install sorgt dafür, dass neben deutschen auch englische Windowsversionen so ihr Datum preisgeben.

Die Variante funktioniert von XP bis Windows 10 und auch bei den Servervarianten von 2003 bis 2012 R2, ebenso Hyper-V Server.

Soweit ist alles gut und schön. Dumm nur, dass durch die neue Microsoft Updatepolitik jährlich bis zu drei größere Updates zu erwarten sind und diese jeweils das Installationsdatum hochprügeln. Das tolle daran ist, man kann darüber nun sehr einfach feststellen, wann z. B. aktuell die Version v1511 eingespielt wurde.

Bei Windows 10 kann man also nicht mehr feststellen, was das ursprüngliche Installationsdatum war. Schade, schade…

Probleme beim Abruf von Internet Seiten durch Meldung: Bad Request–HTTP Error 400

17 Februar 2016

Wenn man Probleme mit der Meldung

Bad Request – Request Too Long

HTTP Error 400. The size of the request headers is too long.

bekommt, kann es daran liegen, dass der Überwachungsapparat einem zu viel Daten unterjubelt. Gemeint sind Cookies, welche von den Webservern an die Browser gesendet werden. Sammeln sich davon zuviele, weil z. B. ein Systemwechsel auf Serverseite stattgefunden hat und dabei das Ablaufdatum der alten Cookies nicht nah genug beschränkt waren, so kann es schon mal zu einem Überlauf kommen. Wie immer findet man dann kryptische Fehlermeldungen, die einen dumm dastehen lassen.

Was ist also zu tun? Browsercookies löschen!

Man kann auch z. B. in Chrome gezielt mit F12 die Entwicklertools aufrufen und dort bei Ressourcen unter Cookies diese nach der Größe sortieren lassen. Dann kommen da schnell so Brocken mit 2KB zum Vorschein, davon abgesehen, dass nicht ein, zwei sondern gleich zig Cookies zugegen sein können.

Raspberry Pi kennt kein nslookup

16 Februar 2016

Wer an seinem Raspberry Pi mit Raspbian Jessie auf Probleme mit einem DNS-Server stößt, der möchte diese als eingefleischter Windowsbenutzer mit nslookup lösen:

mypi:~ $ nslookup
bash: nslookup: command not found

Aber standardmäßig ist kein nslookup installiert. Wobei die Profis unter Linux benutzen sowieso dig:

mypi:~ $ dig mydomain.net SPF
bash: dig: command not found

OK, dahinter muss System stecken. Also muss das betreffende Programm installiert werden:

mypi:~ $ sudo apt-get install nslookup
Reading package lists… Done
Building dependency tree
Reading state information… Done

E: Unable to locate package nslookup

Jetzt muss man wissen, dass nslookup zusammen mit dig und nsupdate in einem Paket mit Namen dnsutils steckt: https://packages.debian.org/de/jessie/dnsutils. Also einfach dieses installiert:

mypi:~ $ sudo apt-get install dnsutils

Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages were automatically installed and are no longer required:
libc-ares2 libv8-3.14.5
Use ‘apt-get autoremove’ to remove them.
Suggested packages:
rblcheck
The following NEW packages will be installed:
dnsutils
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 112 kB of archives.
After this operation, 324 kB of additional disk space will be used.
Err http://mirrordirector.raspbian.org/raspbian/ jessie/main dnsutils armhf 1:9.9.5.dfsg-9+deb8u3 404 Not Found [IP: 5.153.225.207 80]
E: Failed to fetch http://mirrordirector. raspbian.org/raspbian/pool/main/b/bind9/dnsutils_9.9.5.dfsg-9+deb8u3_armhf .deb 404 Not Found [IP: 5.153.225.207 80]
E: Unable to fetch some archives, maybe run apt-get update or try with – -fix-missing?

Na super, da ist man auf der richtigen Spur aber es klappt nicht. Die Lösung ist aber zum Glück einfach, man muss vorher seine Installation mit aktuellen Paketupdates vorsorgen:

mypi:~ $ sudo apt-get update

Danach hat die Installation mittels sudo apt-get install dnsutils geklappt und dig und nslookup stehen zur Verfügung.

Raspberry Pi Raspbian Jessie und der Überlauf von /var/log/messages

13 Februar 2016

Hab ich mich eigentlich schon mal über die Flut an unnötigen Windows Ereignisanzeigeeintragungen beschwert? Nun so etwas gibt es auch bei Debian, hier speziell Debian Jessie auf einem Raspberry Pi.

Wenn man sich mittels

cat /var/log/messages

die LOG-Einträge anzeigen lässt, gibt es eine Vielzahl von LOG-Eintragungen mit dem Hiweis:

rsyslogd-2007: action ‚action 17‚ suspended, next retry is Sat Feb 13 20:28:26 2016 [try http://www.rsyslog.com/e/2007 ]

Auf der Seite www.rsyslog.com/e/2007 gibt es auch welche, die das Problem haben, scheint generell so zu sein. Dabei ist wichtig zu wissen, die Nummer 17 im obigen Beispiel kann auch eine andere Zahl darstellen und stellt letzten Endes den Konfigurationseintrag in der config-Datei dar.

Wenn man sich mittels

cat /etc/rsyslog.conf

die Einstellungen anschaut, dann taucht bei der Standardinstallation unten eine Zeile mit |/dev/xconsole auf. Genau hier liegt das Problem.

Um dies zu ändern, ruft man

sudo nano /etc/rsyslog.conf

auf und kommentiert die Zeilen ab daemon.*;mail.*;\ bis |/dev/xconsole mittels # aus. Anschließend muss man noch den rsyslog-Dienst neu starten:

sudo service rsyslog restart

Nun sollte die Log-Datei in Zukunft die wesentlichen Punkte zeigen.

Eigentlich könnte man das Problem auch lösen, indem man für die /dev/xconsole sorgt aber das darf jemand anderes machen…

Noch ein Hinweis: In der conf-Datei sind Dateinamen für die Log-Dateien angegeben. Dort findet man immer wieder die Angabe von – vor dem Dateinamen. Dies bedeutet, dass ein neuer Logeintrag nicht sofort auf die Festplatte geschrieben wird und somit im Falle eines Stromausfalls Eintragungen verloren gehen können: http://www.rsyslog.com/doc/v8-stable/configuration/actions.html#regular-file. Das Minus bedeutet nicht, dass keine LOG-Datei geführt werden soll.

Unicodezeichen in Powershell benutzen bzw. die Suche nach dem Daumen nach oben

8 Februar 2016

Möchte man bestimmte Zeichen in Powershell benutzen, die nicht direkt per Tastatur verfügbar sind, kann man den Datentyp [char] benutzen.

So erhält man z. B. durch Eingabe von

[char]0x2122

das Trademark-Symbol ™. Soweit so gut. Schwieriger wird es aber mit Zeichen, welche nicht direkt als Unicode zur Verfügung stehen.

Da gibt es z. B. den Daumen nach oben. Laut dieser Seite http://www.iemoji.com/view/emoji/56/people/thumbs-up-sign wäre der Code 0xd83ddc4d als UTF-16 also Unicode. Allerdings erhält dabei:

[char]0xd83ddc4d
Der Wert "-667034547" kann nicht in den Typ "System.Char" konvertiert werden. Fehler: "Der Wert für ein Zeichen war zu groß oder
zu klein."
In Zeile:1 Zeichen:1
+ [char]0xd83ddc4d
+ ~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [], RuntimeException
    + FullyQualifiedErrorId : InvalidCastIConvertible

Was kann man tun? Nun die Tabelle bei der Webseite bietet noch UTF-32 an. Und UTF-32 kann man so benutzen:

[char]::ConvertFromUtf32(0x1f44d)

und erhält dafür!

Daraus kann man dann Konstrukte basteln wie dieses:

"Ich finde das gut $([char]::ConvertFromUtf32(0x1f44d))"

Was “Ich finde das gut ” ergibt.

Wenn es trotz allem nicht klappen sollte, hilft dieser Artikel noch weiter: https://mnaoumov.wordpress.com/2014/06/14/unicode-literals-in-powershell/


Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.