我有一个旧脚本,它是我第一次开始使用 Powershell 时编写的第一个脚本。它使用Get-CimInstance -ClassName Win32_ComputerSystem
和Get-CimInstance -ClassName Win32_OperatingSystem
。将其除尘以在某些用户系统上使用,然后发现某些用户对 WMI 有某种奇怪的权限问题,并且无法使用该脚本。就个人而言,我从来没有遇到过问题,也从未想过其他人会这样做。
因此,我希望摆脱 WMI/CIM 实例,并用 .NET 命令或其他东西替换它们以在 PowerShell 脚本中使用。除了 WMI/CIM 实例之外,脚本中还有其他用途吗?请参阅下面的脚本我要更改
$Comp = (Get-CimInstance -ClassName Win32_ComputerSystem);
$DRole = ($Comp).DomainRole;
switch ($DRole)
{
0 {$DominRole = 'Standalone Workstation'}
1 {$DominRole = 'Member Workstation'}
2 {$DominRole = 'Standalone Server'}
3 {$DominRole = 'Member Server'}
4 {$DominRole = 'Backup Domain Controller'}
5 {$DominRole = 'Primary Domain Controller'}
}
$PhyMem = [string][math]::Round(($Comp).TotalPhysicalMemory/1GB, 1);
$FreePhyMem = [string][math]::Round((Get-CimInstance -ClassName Win32_OperatingSystem).FreePhysicalMemory/1024/1024, 1);
$cpux = (Get-WmiObject Win32_Processor).Name;
$GBMem = $PhyMem + ' GB Physical Memory (' + $FreePhyMem + ' GB Free)';
Return $DominRole + ' - ' + $GBMem + '/' + $cpux