找不到 Microsoft.Powershell.LocalAccounts 模块(或运行 Get-LocalUser)

Sco*_*ker 6 powershell module windows-server-2008-r2

运行脚本时,我有一行代码来验证我们的应用程序是否存在“服务帐户”(也称为本地用户帐户):

$svcAccountName = "TheAccountName"
$svcAccount = Get-LocalUser -Name $svcAccountName
Run Code Online (Sandbox Code Playgroud)

服务器 (Windows Server 2008 R2) 对 cmdlet 犹豫不决Get-LocalUser,指出:

Get-LocalUser:术语“Get-LocalUser”未被识别为某个名称
cmdlet、函数、脚本文件或可操作程序。检查拼写
名称,或者如果包含路径,请验证路径是否正确,然后重试。
行:1 字符:1
+ 获取本地用户
+ ~~~~~~~~~~~~~
    + 类别信息:ObjectNotFound:(获取本地用户:字符串)[],CommandNotFoundException
    + FullQualifiedErrorId:CommandNotFoundException

所以我尝试导入该LocalAccounts模块:

Import-Module Microsoft.Powershell.LocalAccounts
Run Code Online (Sandbox Code Playgroud)

我得到了这个:

导入模块:未加载指定的模块“LocalAccounts”,因为没有
在任何模块目录中找到有效的模块文件。
行:1 字符:1
+ 导入模块
+ ~~~~~~~~~~~~~
    + 类别信息:资源不可用:(本地帐户:字符串)[导入模块],FileNotFoundException
    +FullyQualifiedErrorId:Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand

根据$PSVersionTable变量,服务器正在运行 PSVersion 4.0。

为什么模块没有LocalAccounts加载并且Get-LocalUser命令没有运行?我怎样才能解决这个问题?

def*_*nes 5

从 Windows 10(包括 Server 2016 和 2019)开始,Windows 管理框架(包括本地帐户管理 Powershell 模块)现已“内置”提供。有关适用于其他 Windows 版本的 WMF 的信息,请参阅https://learn.microsoft.com/en-us/powershell/wmf/overview#wmf-availability-across-windows-operating-systems 。

\n\n

这意味着无需安装或导入任何模块即可使用Get-LocalUser和等功能。New-LocalUser

\n\n

请注意,从 WMF 5.1 开始,其中许多函数的参数名称已发生更改。此外,现在必须以安全字符串的形式提供密码,该字符串可以使用该ConvertTo-SecureString函数生成。

\n\n

以下是检查现有用户并在用户不退出时创建该用户的示例:

\n\n
$UserName = "AdaLovelace"\n$SecurePassword = ConvertTo-SecureString "ThisIsAPassword!" \xe2\x80\x93asplaintext \xe2\x80\x93force\nif (Get-LocalUser($UserName))\n{\n    Echo "User exists"\n}\nelse\n{\n    New-LocalUser $UserName -Password $SecurePassword -UserMayNotChangePassword -AccountNeverExpires\n}\n
Run Code Online (Sandbox Code Playgroud)\n

  • 对于迟到的人来说,请务必注意,内置版本仅从 64 位 powershell 会话加载。 (6认同)

Ben*_*enH 1

此 cmdlet 在 Server 2016 和 Win10 1607+ 中可用。在早期操作系统上,您需要使用net.exeWMIADSI或使用这些方法之一的模块,或者安装 WMF 5.1。

编辑: MS PFE Sean Kearney 编写了一个名为localaccount的模块。它是根据GitHub 存储库的代码构建的,它通过ADSI. 它适用于旧版本的 PowerShell。请注意,这与内置模块不同。