Я разработчик ServiceNow. Я имею дело со сценарием PowerShell, о котором я не знаю. Может ли кто-нибудь сказать мне, что происходит в строке ниже? Спасибо!
$currentuserid = Get-WmiObject -Class win32_computersystem -ComputerName $workstation | Select-Object -ExpandProperty Username
Google - довольно надежная поисковая система; вы обнаружите, что если вы читаете какие-либо страницы Microsoft, которые появляются, когда вы используете Get-WMIObject, Win32_ComputerSystem и Select-Object в качестве условий поиска, у вас легко будет достаточно информации, чтобы проанализировать это утверждение самостоятельно.
Спасибо за ответ @jrider. Вы тоже можете это подтвердить? -ComputerName $ workstation
-ComputerName $workstation - это переменная, которая предназначена для получения информации с удаленного компьютера.
@Backin, не могли бы вы отличить ч / б -ComputerName $ workstation
@Rakesh Я не на 100% уверен, что вы имеете в виду. -ComputerName - это свойство, которое можно определить в командлете Get-WMIObject, чтобы вы могли получать информацию с удаленного компьютера. $workstation будет представлять значение string для имени компьютера, с которого вы хотите получать данные. То, что вы предоставили, не дает полного контекста для дальнейшей разработки. $workstation не определен и действительно будет использоваться только тогда, когда его нужно динамически добавлять, например, в for loop.





Давайте разберем эту команду
$currentuserid = Get-WmiObject -Class win32_computersystem -ComputerName $workstation | Select-Object -ExpandProperty Username
В PowerShell $ - это идентификатор переменной. Это означает, что $ currentuserid будет равно результату последней команды в конвейере, в данном случае Выбрать объект.
Также в PowerShell -что бы ни после команды является параметром.
Символ | - труба.
Get-WmiObject - это команда, выполняющая WMI-вызов win32_computersystem через параметр -класс, который представляет собой лишь некоторую базовую информацию о компьютерной системе. Параметр -Имя компьютера с переменной $ рабочая станция означает выполнение удаленного вызова WMI на другой компьютер, который мне неизвестен, потому что я не знаю, что находится внутри переменной $ workstation. Выходные данные затем передаются | команде выбрать объект, которая позволяет вырезать данные из свойства. Параметр -ExpandProperty означает просто возвращать то, чему равно значение свойства. Значение свойства, которое он хотел, было Имя пользователя.
Проще говоря, это получение имени пользователя из класса Win32_computersystem в вызове WMI в неизвестную удаленную систему.
Это отличное объяснение. Спасибо!
Это получение текущего имени пользователя, которое вошло в систему, путем получения свойства
usernameобъектаwim32_computersystemWMIObect и присвоения его переменной$currentuserid.