我正在尝试调用一个不需要 Invoke-Command cmdlet 中的其他参数的功能块。
$hostList = (Read-Host "Enter IP addresses/hostnames of hosts you want to connect to (Comma seperated)").Split(',');
foreach($_ in $hostList){
Invoke-Command -ComputerName $_ -Credential Administrator -ScriptBlock{$Function:PCInfo}
}
我的功能块看起来像这样(测试目的):
Function PCInfo{
$winVersion = gwmi -class Win32_OperatingSystem | select Caption,Version,CSName,OSArchitecture
$processorInfo = gwmi -class Win32_Processor | select Name,Manufacturer,MaxClockSpeed
$diskInfo = gwmi -class Win32_LogicalDisk | select @{Label=’Drive Letter’;Expression={$_.DeviceId}}, @{Label=’Size (GB)’;Expression={"{0:N2}" -f ($_.Size/1GB)}}, @{Label=’Free Space (GB)’;Expression={"{0:N2}" -f($_.freespace/1GB)}}
$routingTable = gwmi win32_IP4RouteTable | select Destination,Mask,@{Label=’Next Hop’;Expression={$_.NextHop}} -uniq | format-table
$timeObject = gwmi -class Win32_OperatingSystem
}
使用此代码时出现两个问题:
这不会导致任何输出。我搜索了 SO 并发现了类似的问题,但我只能找到函数使用附加参数的类似场景。看到这是一种独立类型的功能,我无法弄清楚为什么它不起作用。
以普通用户身份运行此脚本时,会弹出凭据框。我填写了管理员凭据,但出现以下错误:
[127.0.0.1] 连接到远程服务器 127.0.0.1 失败,并显示以下错误消息:访问被拒绝。*
当我填写(本地)管理员凭据时,我想知道为什么会发生这种情况?