我正在创建一个菜单,并有一个显示计算机名称和操作系统版本的选项以及一个显示磁盘空间的选项。我需要在本地或远程计算机上完成选项。它适用于本地计算机,但我不知道如何允许在远程计算机上完成选项
filesListFolderContinue
答案 0 :(得分:0)
既然你已经提到它在你当地工作,我并没有触及那部分。只需将整个代码包装为 Function ,并将 $ ComputerName 作为参数。
如果您在域管理员中或者您没有任何权限问题,那么使用相同的凭据可以远程获取信息。
像这样使用:
function Get-DiskInfo($drive,$computername)
{
##-- Local system Validation
if((gwmi win32_computersystem).Name -eq $computername)
{
$diskReport = Get-WmiObject Win32_logicaldisk
$drive = $diskReport | Where-Object { $_.DeviceID -eq $drive}
$result = @{
Size = $drive.Size
FreeSpace = $drive.Freespace
}
return $result
}
else
{
$diskReport = Get-WmiObject Win32_logicaldisk -ComputerName $ComputerName
$drive = $diskReport | Where-Object { $_.DeviceID -eq $drive}
$result = @{
Size = $drive.Size
FreeSpace = $drive.Freespace
}
return $result
}
}
调用该函数:
Get-DiskInfo C: localhost
由于您使用的是所有WMI调用,因此无需使用 Invoke-Command 。 您可以直接使用 get-wmiobject 中的 -ComputerName 开关远程获取所有详细信息,您也可以将特定凭据也作为 -credential
希望它能帮助您理解逻辑。