Powershell的新手,我猜这是存在的,但我找不到。我正在寻找一个powershell命令,该命令将向我显示用于运行Windows服务的帐户?我首先要检查它是否正在运行,然后确保使用正确的AD帐户来运行它。到目前为止,我有以下内容...
$serviceName = '<my service name>'
If (Get-Service $serviceName -ErrorAction SilentlyContinue) {
If ((Get-Service $serviceName).Status -eq 'Running') {
$status = "$serviceName found and is running."
} Else {
$status = "$serviceName found, but it is not running."
}
#Here is where I should check Log On As name
} Else {
$status = "$serviceName not found."
}
write-host "Status: $status`n"
pause
Run Code Online (Sandbox Code Playgroud)
我的大部分搜索都将我带到Get-WmiObject,但没有找到我想要的东西。在此先感谢您的帮助。
您还可以使用更新的 CIM cmdlet。这就是 MS 真正想要的地方,并且正在指导人们使用。
Get-CimInstance -ClassName CIM_Service | Select-Object Name, StartMode, StartName
Run Code Online (Sandbox Code Playgroud)
什么是 CIM,为什么要在 PowerShell 中使用它? https://blogs.technet.microsoft.com/heyscriptingguy/2014/01/27/what-is-cim-and-why-should-i-use-it-in-powershell
WMI 更新
在 Windows PowerShell 4.0 和 Windows PowerShell 3.0 中,Microsoft 提供了一种与 WMI 交互的更新方法:Windows PowerShell 的 CIMCmdlets 模块。随着这个新的 Windows PowerShell 模块的发布,微软还发布了一个全新的 Windows 应用程序编程接口 (API),称为管理基础设施 (MI)。
新的 MI API 更符合 DMTF 标准,正如 MSDN 为什么使用 MI?MI 允许软件开发商和硬件制造商公开信息,并允许 IT 专业人员使用基于标准的机制与硬件交互。随着这项技术的不断发展,我相信我们会看到 Microsoft Windows 与竞争平台之间更多的跨平台集成。
我应该在 Windows PowerShell 中使用 CIM 还是 WMI? https://blogs.technet.microsoft.com/heyscriptingguy/2016/02/08/should-i-use-cim-or-wmi-with-windows-powershell
Get-WmiObject 是原始的 PowerShell cmdlet 之一。(作为一个快速测验,您能说出 137 个原始 cmdlet 中的多少个?)。当引入其他 WMI cmdlet 时,它在 PowerShell 2.0 中得到了增强。在 PowerShell 1.0 中,Get-WmiObject 是唯一可以选择访问另一个系统的 cmdlet。
WMI cmdlet 的最大缺点是它们使用 DCOM 来访问远程机器。DCOM 不是防火墙友好的,可以被网络设备阻止,并且在出现问题时会出现一些神秘的错误。
CIM cmdlet 作为新 API 的一部分出现在 PowerShell 3.0 中,用于处理更基于标准的 CIM 类。CIM cmdlet 被 PowerShell 工作流所掩盖,但它们(在我看来)是该版本中最重要的东西。
另一个与 CIM 相关的主要进步是 CDXML 的引入,它使 CIM 类能够包装在一些简单的 XML 中并作为 PowerShell 模块发布。这是 Windows 8 及更高版本中超过 60% 的 cmdlet 的生成方式。
| 归档时间: |
|
| 查看次数: |
7399 次 |
| 最近记录: |