Wenn Sie ein Skript ausführen, vergewissere ich mich, dass ein "Dienstkonto" (lokaler Benutzeraccount) für unsere App vorhanden ist:
$svcAccountName = "TheAccountName"
$svcAccount = Get-LocalUser -Name $svcAccountName
Der Server (Windows Server 2008 R2) wartet auf das Get-LocalUser
-Cmdlet und gibt Folgendes an:
Get-LocalUser: Der Begriff "Get-LocalUser" wird nicht als Name eines - Cmdlets, einer Funktion, einer Skriptdatei oder eines bedienbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens Oder, wenn ein Pfad angegeben wurde, überprüfen Sie, ob der Pfad korrekt ist, und versuchen Sie es erneut. In Zeile: 1 Zeichen: 1 + Get-LocalUser + ~~~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (Get-LocalUser: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException
Also habe ich versucht, das LocalAccounts
-Modul zu importieren:
Import-Module Microsoft.Powershell.LocalAccounts
und ich habe das bekommen:
Import-Modul: Das angegebene Modul 'LocalAccounts' wurde nicht geladen, da in keinem Modulverzeichnis eine gültige Moduldatei gefunden wurde. In Zeile: 1 Zeichen: 1 .] + Import-Modul + ~~~~~~~~~~~~~~ + KategorieInfo: Ressource nicht verfügbar: (LocalAccounts: String) [Import-Modul], FileNotFoundException + FullyQualifiedErrorId: Modules_ModuleNotFound, Microsoft.PowerShell.Commands.ImportModuleCommand
Der Server führt PSVersion 4.0 entsprechend der $PSVersionTable
-Variablen aus.
Warum wird das Modul LocalAccounts
nicht geladen und der Befehl Get-LocalUser
ausgeführt? Wie kann ich das beheben?
Dieses Cmdlet wurde mit Server 2016 und Win10 1607+ zur Verfügung gestellt. Bei früheren Betriebssystemen müssen Sie entweder net.exe
, WMI
, ADSI
oder ein Modul verwenden, das eine dieser Methoden verwendet, oder WMF 5.1 installieren.
Edit: Die MS PFE, die Sean Kearney geschrieben hat, hat ein Modul namens localaccount erstellt. Welches ist aus dem Code dieses GitHub Repostiory aufgebaut, der die Funktionalität der neuen Module über ADSI
repliziert. Das funktioniert mit älteren Versionen von PowerShell. Beachten Sie, dass dies nicht mit dem eingebauten Modul identisch ist.
Das Modul Microsoft.Powershell.LocalAccounts ist Teil des Windows Management Framework (WMF) v5.1, das von folgender Website heruntergeladen werden kann: https://www.Microsoft.com/de-de/download/ details.aspx? id = 54616
Nach der Installation können Sie diese Cmdlets in Ihrem Skript verwenden. Hier haben Sie auch einen Hinweis darauf, welche Module in jeder Powershell-Version enthalten sind: https://msdn.Microsoft.com/powershell/reference/readme
Viel Glück! :)
Sie müssen zunächst die .PSM1-Datei von einem anderen Computer herunterladen
#Install LocalAccount Module
Install-Module -Name localaccount
#Save Module to the PowerShell Modules folder
Save-Module -Name localaccount -Path "C:\Program Files (x86)\WindowsPowerShell\Modules"
Wenn Sie diesen Speicherort unter Windows 2008 R2 hinzufügen. Es sollte das Modul installieren, aber überprüfen Sie diesen Link nicht: https://msdn.Microsoft.com/en-us/library/dd878350(v=vs.85).aspx
Ich bin nicht sicher, warum es nicht unter Windows 2008 R2 ist, aber das LocalAccounts-Modul wurde am 21. März 2015 veröffentlicht. Dies ist älter als Windows 2016 und Windows 10.
Install-Module -Name localaccount -RequiredVersion 1.1
Sie können sich jederzeit an den Mann wenden, der ihn geschaffen hat "Sean P. Kearney"
Hoffe das hilft dir. So habe ich es gemacht.