我发誓我在这里错过了一些简单的东西......
这是一个获取磁盘信息的简单脚本:
function get-disks {
try { $disks = gwmi win32_logicaldisk -co $server}
catch { write "$server : Can't connect"}
}
get-disks
$disk.deviceid
Run Code Online (Sandbox Code Playgroud)
仅gwmi命令就完美无缺.单独的"$ disks = gwmi ..."命令完美无缺.try {...} catch {...}行单独运行完美.
但是只要我加载函数并调用'get-disks',我就不会收到任何错误,但是$ disks是空的.
的$server参数,并且$disks变量是该函数的外部本地到内部功能和不可见的(未定义).
您需要提供服务器名称作为函数参数(从外部),您需要$disks从函数返回变量值(从里到外)并捕获它的值.
function Get-Disks {
param(
[Parameter(Mandatory = $true)]
[string] $Server
)
try {
$result = gwmi win32_logicaldisk -co $Server;
return $result # <--
}
catch { write "$Server : Can't connect"}
}
$disks = Get-Disks -Server "localhost"
Run Code Online (Sandbox Code Playgroud)
请注意,
$result函数内部的变量是函数$disks外部变量的另一个变量.
为简单起见,您可以按如下方式编写函数:
function Get-Disks {
param(
[Parameter(Mandatory = $true)]
[string] $Server
)
# just return the output of gwmi directly
gwmi win32_logicaldisk -co $Server;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |