macewindu
Goto Top

PowerShell Vorlage lässt sich nicht importieren

Hallo,

Ich möchte an einem Windows 2016 Server in einer großen Ordnerstruktur alle Ordner auflisten bei denen die Vererbung deaktiviert ist. Bin hier: https://kohn.blog/powershell/berechtigungsverwaltung-mittels-powershell- ... auf eine mögliche Lösung per PowerShell gestossen.
Dazu muß man die PowerShell Vorlage "NTFSSecurity" importieren (übrigens DANKE an den Autor Raimund Andrée https://gallery.technet.microsoft.com/scriptcenter/1abd77a5-9c0b-4a2b-ac ..).

Das Problem: ich bekomme die Vorlage nicht importiert. Nachstehend habe ich meine Eingaben zusammen gefasst:

screenshot1

PS H:\> dir C:\Windows\System32\WindowsPowerShell\v1.0\Modules\NTFSSecurity-master

Verzeichnis: C:\Windows\System32\WindowsPowerShell\v1.0\Modules\NTFSSecurity-master

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       24.01.2019     13:42                Log
d-----       24.01.2019     13:42                NTFSSecurity
d-----       24.01.2019     13:42                NTFSSecurityTest
d-----       24.01.2019     13:42                PrivilegeControl
d-----       24.01.2019     13:42                ProcessPrivileges
d-----       24.01.2019     13:42                Security2
d-----       24.01.2019     13:42                TestClient
-a----       24.01.2019     13:42           2518 .gitattributes
-a----       24.01.2019     13:42           3833 .gitignore
-a----       24.01.2019     13:42           1079 LICENSE
-a----       24.01.2019     13:42           8049 NTFSSecurity.sln
-a----       24.01.2019     13:42           1512 README.md


PS H:\> dir C:\Windows\System32\WindowsPowerShell\v1.0\Modules\NTFSSecurity-master\NTFSSecurity\

    Verzeichnis: C:\Windows\System32\WindowsPowerShell\v1.0\Modules\NTFSSecurity-master\NTFSSecurity

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       24.01.2019     13:42                AccessCmdlets
d-----       24.01.2019     13:42                AuditCmdlets
d-----       24.01.2019     13:42                Help
d-----       24.01.2019     13:42                InheritanceCmdlets
d-----       24.01.2019     13:42                ItemCmdlets
d-----       24.01.2019     13:42                LinkCmdlets
d-----       24.01.2019     13:42                MiscCmdlets
d-----       24.01.2019     13:42                OwnerCmdlets
d-----       24.01.2019     13:42                PathCmdlets
d-----       24.01.2019     13:42                Properties
d-----       24.01.2019     13:42                Resources
d-----       24.01.2019     13:42                SecurityDescriptorCmdlets
d-----       24.01.2019     13:42                SimpleAccessCmdlets
-a----       24.01.2019     13:42          12090 BaseCmdlets.cs
-a----       24.01.2019     13:42           1720 CodeMembers.cs
-a----       24.01.2019     13:42           1604 Extensions.cs
-a----       24.01.2019     13:42          93877 NTFSSecurity-Help.xml
-a----       24.01.2019     13:42           8337 NTFSSecurity.csproj
-a----       24.01.2019     13:42          16549 NTFSSecurity.format.ps1xml
-a----       24.01.2019     13:42           2570 NTFSSecurity.Init.ps1
-a----       24.01.2019     13:42           3006 NTFSSecurity.psd1
-a----       24.01.2019     13:42            336 NTFSSecurity.psm1
-a----       24.01.2019     13:42           5145 NTFSSecurity.types.ps1xml
-a----       24.01.2019     13:42           4579 OtherCmdlets.cs
-a----       24.01.2019     13:42            232 packages.config
-a----       24.01.2019     13:42           9480 ShowSimpleAccess.cs
-a----       24.01.2019     13:42          17024 ShowSimpleAccess.Designer.cs
-a----       24.01.2019     13:42           9600 ShowSimpleAccess.resx
-a----       24.01.2019     13:42           7993 ShowSimpleEffectiveAccess.cs
-a----       24.01.2019     13:42          12381 ShowSimpleEffectiveAccess.Designer.cs
-a----       24.01.2019     13:42           9397 ShowSimpleEffectiveAccess.resx

PS H:\> Get-Module -ListAvailable *ntfs*

    Verzeichnis: C:\Windows\system32\WindowsPowerShell\v1.0\Modules\NTFSSecurity-master

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Script     4.2.4      NTFSSecurity                        {Add-NTFSAccess, Clear-NTFSAccess, Disable-NTFSAccessInher...


PS H:\>
PS H:\>
PS H:\> Import-Module NTFSSecurity
Import-Module : Das angegebene Modul "NTFSSecurity" wurde nicht geladen, da in keinem Modulverzeichnis eine gültige  
Moduldatei gefunden wurde.
In Zeile:1 Zeichen:1
+ Import-Module NTFSSecurity
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (NTFSSecurity:String) [Import-Module], FileNotFoundException
    + FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand

PS H:\>
PS H:\>
PS H:\> Import-Module C:\Windows\System32\WindowsPowerShell\v1.0\Modules\NTFSSecurity-master\NTFSSecurity\NTFSSecurity.p
sm1

Sicherheitswarnung
Führen Sie ausschließlich vertrauenswürdige Skripts aus. Skripts aus dem Internet können zwar nützlich sein, stellen
jedoch auch eine potenzielle Gefahr für Ihren Computer dar. Wenn Sie diesem Skript vertrauen, lassen Sie mit dem Cmdlet
 "Unblock-File" die Ausführung des Skripts ohne die Warnmeldung zu. Möchten Sie  
"C:\Windows\System32\WindowsPowerShell\v1.0\Modules\NTFSSecurity-master\NTFSSecurity\NTFSSecurity.psm1" ausführen?  
[N] Nicht ausführen  [M] Einmal ausführen  [H] Anhalten  [?] Hilfe (Standard ist "N"): M  
PS H:\>
PS H:\>
PS H:\> Get-Command -Module NTFSSecurity
PS H:\>
PS H:\>
PS H:\> Get-ChildItem2 -Directory -Force -Path h:\User -Recurse -SkipSymbolicLinks | Get-NTFSAccess -ExcludeInherited
Get-ChildItem2 : Die Benennung "Get-ChildItem2" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei  
oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist
(sofern enthalten), und wiederholen Sie den Vorgang.
In Zeile:1 Zeichen:1
+ Get-ChildItem2 -Directory -Force -Path h:\User -Recurse -SkipSymbolic ...
 ~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Get-ChildItem2:String) , CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

PS H:\>
PS H:\>
PS H:\>


Mit den angegeben Fehlermeldungen gibt es natürlich jede Menge Treffer bei Hrn. Google. Komm jedoch trotzdem nicht weiter.
Kann mir jemand sagen was ich da falsch mache?
Oder kennt jemand eine Alternativlösung?

Danke,
Mace Windu

Content-ID: 399285

Url: https://administrator.de/contentid/399285

Ausgedruckt am: 24.11.2024 um 18:11 Uhr

H41mSh1C0R
H41mSh1C0R 24.01.2019 aktualisiert um 14:51:52 Uhr
Goto Top
Hi,

Ist Get-ChildItem2 was eigenes? oder ist da die 2 zuviel?

VG
colinardo
Lösung colinardo 24.01.2019 aktualisiert um 15:40:10 Uhr
Goto Top
Servus.
Zitat von @MaceWindu:
Ich möchte an einem Windows 2016 Server in einer großen Ordnerstruktur alle Ordner auflisten bei denen die Vererbung deaktiviert ist.
Dafür brauchst du kein extra Modul da reicht ein PS-Einzeiler für das Auflisten der Ordner mit unterbrochener Vererbung:
gci 'D:\' -Recurse -Directory -Force | ?{(Get-Acl $_.Fullname).AreAccessRulesProtected} | select -Expand Fullname  
(mit entsprechenden Rechten ausgeführt natürlich. Bei Bedarf als System mit psexec ausführen)
Bin hier: https://kohn.blog/powershell/berechtigungsverwaltung-mittels-powershell- ... auf eine mögliche Lösung per PowerShell gestossen.
How to install
Siehe den wichtigen Hinweis in meinem nächsten Kommentar.

Grüße Uwe
erikro
erikro 24.01.2019 um 15:18:28 Uhr
Goto Top
Moin,

Install-Module -Name NTFSSecurity

und es löpt.

hth

Erik
colinardo
colinardo 24.01.2019 aktualisiert um 15:35:28 Uhr
Goto Top
Zitat von @erikro:
Install-Module -Name NTFSSecurity
Eben. Lesen des Links hätte vom TO gereicht.

Er hat wie man an seinem Screenshot sieht nur die Visual-Studio-Sources von Github ins Verzeichnis kopiert, und dort fehlen eben die benötigten DLLs, die hätte er dann erst kompilieren müssen.
Komplette releases mit fertig kompilierten Sourcen findet der TO hier
https://github.com/raandree/NTFSSecurity/releases
Dort das NTFSSecurity.zip laden nicht die Sourcen.
MaceWindu
MaceWindu 25.01.2019 um 09:28:55 Uhr
Goto Top
Danke für die Kommentare.

@H41mSh1C0R
Keine Ahnung. Habs so runter geladen.

@colinardo
Jep! Dein Befehl macht das was er soll. Den nehm ich face-smile Vielen Dank!
Nebenbei werden Pfadlängen länger als 255 Zeichen ausgeworfen.

Die NTFSSecurity.zip aus diesem Link hatte ich auch probiert mit import und install Befehle.

@erikro
Nein, leider eben nicht. Nachstehend die Eingaben mit der NTFSSecurity.zip von https://github.com/raandree/NTFSSecurity/releases/


PS C:\Windows\system32> Get-Module -ListAvailable *ntfs*


Verzeichnis: C:\Windows\system32\WindowsPowerShell\v1.0\Modules


ModuleType Version Name ExportedCommands

Script 4.2.4 NTFSSecurity {Add-NTFSAccess, Clear-NTFSAccess, Disable-NTFSAccessInher...


PS C:\Windows\system32>
PS C:\Windows\system32>
PS C:\Windows\system32> Find-Module -Name NTFSSecurity
PackageManagement\Find-Package : Für die angegebenen Suchkriterien und den Paketnamen "NTFSSecurity" wurde keine
Übereinstimmung gefunden. Verwenden Sie Get-PSRepository, um alle verfügbaren, registrierten Paketquellen anzuzeigen.
In C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:1360 Zeichen:3
+ PackageManagement\Find-Package @psboundparameters | Microsoft ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Microsoft.Power...ets.FindPackage:FindPackage) [Find-Package], Exceptio
n
+ FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.FindPackage

PS C:\Windows\system32>
PS C:\Windows\system32>
PS C:\Windows\system32> Install-Module -Name NTFSSecurity
PackageManagement\Install-Package : Für die angegebenen Suchkriterien und den Paketnamen "NTFSSecurity" wurde keine
Übereinstimmung gefunden. Verwenden Sie Get-PSRepository, um alle verfügbaren, registrierten Paketquellen anzuzeigen.
In C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:1772 Zeichen:21
+ ... $null = PackageManagement\Install-Package @psboundparameters
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Microsoft.Power....InstallPackage:InstallPackage) [Install-Package], Ex
ception
+ FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackage

PS C:\Windows\system32> Install-Module -Name C:\Windows\System32\WindowsPowerShell\v1.0\Modules\NTFSSecurity\NTFSSecurit
y.psm1
PackageManagement\Install-Package : Für die angegebenen Suchkriterien und den Paketnamen
"C:\Windows\System32\WindowsPowerShell\v1.0\Modules\NTFSSecurity\NTFSSecurity.psm1" wurde keine Übereinstimmung
gefunden. Verwenden Sie Get-PSRepository, um alle verfügbaren, registrierten Paketquellen anzuzeigen.
In C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:1772 Zeichen:21
+ ... $null = PackageManagement\Install-Package @psboundparameters
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Microsoft.Power....InstallPackage:InstallPackage) [Install-Package], Ex
ception
+ FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackage

PS C:\Windows\system32>



Whatever, mit dem Befehl von colinardo ist das Ziel erreicht. Ich schließe den Case.

LG,
colinardo
colinardo 25.01.2019 aktualisiert um 09:34:32 Uhr
Goto Top
Whatever
Muss in einer administrativen(elevated) Shell passieren und Internetzugang muss vorhanden sein, dann klappt auch das einwandfrei!!
erikro
erikro 25.01.2019 um 11:07:53 Uhr
Goto Top
Moin,

Zitat von @MaceWindu:
PS C:\Windows\system32> Find-Module -Name NTFSSecurity
PackageManagement\Find-Package : Für die angegebenen Suchkriterien und den Paketnamen "NTFSSecurity" wurde keine
Übereinstimmung gefunden. Verwenden Sie Get-PSRepository, um alle verfügbaren, registrierten Paketquellen anzuzeigen.
[...]
PS C:\Windows\system32> Install-Module -Name NTFSSecurity
PackageManagement\Install-Package : Für die angegebenen Suchkriterien und den Paketnamen "NTFSSecurity" wurde keine
Übereinstimmung gefunden. Verwenden Sie Get-PSRepository, um alle verfügbaren, registrierten Paketquellen anzuzeigen.

Und was sagt Get-PSRepository? Und was $PSVersionTable? Normalerweise sollte das Repo PSGallery vorhanden sein.

Liebe Grüße

Erik
MaceWindu
MaceWindu 25.01.2019 um 11:56:03 Uhr
Goto Top
Moin,

//PS C:\Windows\system32> Get-PSRepository
WARNUNG: Es wurden keine Paketquellen gefunden.
PS C:\Windows\system32>
PS C:\Windows\system32>
PS C:\Windows\system32> $PSVersionTable

Name Value
-----
PSVersion 5.1.14393.2636
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.14393.2636
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1

PS C:\Windows\system32>

Die PS ist natürlich administrativ ausgeführt.
colinardo
colinardo 25.01.2019 aktualisiert um 12:28:37 Uhr
Goto Top
5.1.14393.2636
Ach, noch auf W10 1607 ...
Bei der Version musste man IMHO das Repo noch selbst hinzufügen. In neueren ist das bereits per Default vorhanden.
https://docs.microsoft.com/en-us/powershell/module/powershellget/registe ...
Register-PSRepository -Name PSGallery -SourceLocation 'https://www.powershellgallery.com/api/v2/'