Powershell : New-SmbShare "no mapping between account and sid"

Ich musste heute in einem größeren Skript mehrere Folder anlegen und diese auf AD Gruppen berechtigen.
Die NTFS Rechte waren kein Problem jedoch die Rechte auf die Freigabe haben leider nicht geklappt.
Ich hab immer nur diese Fehlermeldung erhalten.

no mapping between account names and security IDs was done

Wenn ich jedoch den Befehl direkt in der Powershell eingegeben hat alles geklappt.
New-SmbShare -Path D:\DEMO_PFAD -Name Demo -ChangeAccess Group1,Group2,Group3,Group4 -FullAccess AdminGroup
also kann ja hier nur ein Problem mit der Bulk Verarbeitung vorliegen. Nach etwas basteln bin ich dann auf diese Lösung gekommen.
# create Share
$smbpath = 'D:\DEMO_PFAD'
$smbname = 'DEMO'
New-SmbShare -Path $smbpath -Name $smbname -FullAccess AdminGroup
$Groups = @()
$Groups += 'Group1'
$Groups += 'Group2'
$Groups += 'Group3'
$Groups += 'Group4'
# grant change permission on share
foreach ($Group in $Groups)
{
    Grant-SmbShareAccess -Name $smbname -AccountName $Group -AccessRight Change -Force
}


Quelle :
https://docs.microsoft.com/en-us/powershell/module/smbshare/new-smbshare?view=windowsserver2019-ps
https://docs.microsoft.com/en-us/powershell/module/smbshare/grant-smbshareaccess?view=windowsserver2019-ps

AWS : Windows Remote Desktop - Zugriff nicht möglich

Wir hatten hier das Problem das die RDP Session nicht mehr zu starten ist.

Es ist immer dieser Fehler aufgetreten.

RDP internal error

Die Maschinen laufen in der AWS und leider war der Session Manager auch noch nicht am Start. z.G. war auf der Maschine der SSM-Agent bereits installiert, wenn nicht kann man das so erledigen, natürlich bevor RDP kaputt ist ;-) (Install SSM Agent on Windows)

Die Maschine muss natürlich in SSM aufgeführt sein. Sollte das nicht der Fall sein einfach mal überprüfen ob die richtigen IAM Rollen auf den Maschinen angewendet werden. Für eine schnelle Fehlerbehebung hatte ich kurzfristig SSMFullAccess verwendet.

IAM Policy
Jetzt startet man den AWS System Manager und führt dort das Dokument "AWS-RunPowerShellScript" gegen die kaputte Maschine aus.


Unter Run a command kann man im Feld Command parameters kann man ein Powershell Script rein werfen das gegen die Maschine läuft.


hier das skript
$AllCertificates = (Get-ChildItem -Path 'Cert:\LocalMachine\My' |
Where-Object -FilterScript {
$_.Subject -Match $env:Computername } |
Select-Object Thumbprint, Subject, NotBefore, NotAfter, Issuer |
Sort-Object -Property NotAfter -Descending)
foreach ($Cert in $AllCertificates)
{
Write-Output $Cert
}


Alle folgenden Skript werden nach dem selben Muster ausgeführt.

1.) Auslesen des Zertifikates
Get-WmiObject -Class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'"
unter SSLCertificateSHA1Hash steht der Thumbprint

2.) Setzen des Zertifikates
$RDPGeneralSettings = (Get-WmiObject -Class "Win32_TSGeneralSetting" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'")
Set-WmiInstance -path $RDPGeneralSettings.__path -argument @{SSLCertificateSHA1Hash = "NEUER THUMBPRINT"}

3.) Restart des RDP Dienstes
Restart-Service -Name TermService -force

Kurz noch zur Erklärung , mit diesem Powershell hab ich mir die Events angeschaut die mich auf die richtige Fährte gebracht haben.
Get-EventLog -LogName System -After 6/9/2021 -Before 9/9/2021 -EntryType Error | Format-List
“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”
Gene Spafford (Sicherheitsexperte)