Задать вопрос
@demon-slayer

Как убрать лишний вывод в консоль?

Добрый день, я работаю сис админом, и решил познать powershell, ну и для практики хочу сделать скрипт для автоматической настройки системы

Код который я использую
# PowerShell Script to set the size of pagefile.sys
$page_file_size = 1024 * 4;
Write-Output "Standart PageFile size $page_file_size Mb";

$computer_sys = Get-WmiObject Win32_ComputerSystem -EnableAllPrivileges;
$computer_sys.AutomaticManagedPagefile = $False;
$computer_sys.Put();
$page_file = Get-WmiObject -Query "Select * From Win32_PageFileSetting Where Name like '%pagefile.sys'";
$page_file.InitialSize = $page_file_size;
$page_file.MaximumSize = $page_file_size;
$page_file.Put();

Read-Host -Prompt "Press Enter to exit"


и я не понимаю от куда такой вывод берется и почему он вообще выводится, ну и как сделать чтобы лишнего ничего не выводилось
Standart PageFile size 4096 Mb

Path : \\localhost\root\cimv2:Win32_ComputerSystem.Name="OSM-SYS-ADMIN"
RelativePath : Win32_ComputerSystem.Name="OSM-SYS-ADMIN"
Server : localhost
NamespacePath : root\cimv2
ClassName : Win32_ComputerSystem
IsClass : False
IsInstance : True
IsSingleton : False

Path : \\localhost\root\cimv2:Win32_PageFileSetting.Name="C:\\pagefile.sys"
RelativePath : Win32_PageFileSetting.Name="C:\\pagefile.sys"
Server : localhost
NamespacePath : root\cimv2
ClassName : Win32_PageFileSetting
IsClass : False
IsInstance : True
IsSingleton : False

Press Enter to exit:
  • Вопрос задан
  • 56 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
@NortheR73
системный инженер
В выводе же видно какой WMI-класс его генерирует, соответственно, идете в нужный участок кода и вносите правки:
$computer_sys.Put() | Out-Null
...
$page_file.Put() | Out-Null

Можно вообще однострочником обойтись, например:
Set-WmiInstance -Class Win32_PageFileSetting -Arguments @{name="C:\pagefile.sys"; InitialSize = 4096; MaximumSize = 8192} -EnableAllPrivileges | Out-Null
Ответ написан
Комментировать
@MaxKozlov Куратор тега PowerShell
Альтернативный вариант

[void]$computer_sys.Put()
...
[void]$page_file.Put()


$null = $computer_sys.Put()
...
$null = $page_file.Put()
Ответ написан
Комментировать
@yellowmew
Cloud infrastructure, monitoring engineer. SRE
Регулировать вывод команд можно через коммандлеты Out-* , используя их через пайп
Например в вашем случае
$computer_sys.Put() | out-null

P.S. спасибо за исправление, ранее в ответе был пример с присвоением, для которого этот out-null не нужен, по причинам указанным в комментарии. Надо, блин, проверять что копипащу )
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы