У меня есть старый скрипт, один из первых, который я написал, когда впервые начал работать с 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