function Get-Diskinfo {
param(
[string[]] $Computername = 'XEUTS001',
[string[]] $drive = 'c:'
)
$a = "-join $Computername[1..3]"
Get-WmiObject Win32_LogicalDisk `
-Filter "DeviceID = '$drive'" `
-ComputerName $Computername `
-Credential (Get-Credential -Credential ayan-$a) |
Select-Object `
@{n='Size'; e={$_.size / 1gb -as [int]}},
@{n='free';e={$_.freespace / 1gb -as [int]}},
@{n='% free';e={$_.freespace / $_.size *100 -as [int]}} |
Format-Table -AutoSize
}
我编写了这个函数来获取有关特定磁盘的一些详细信息。但是,我必须在多域环境中远程运行它们。对于不同 OU 中的计算机,我们有不同的用户名。我希望脚本能够从计算机名本身中获取用户名。用户名采用这种格式---- "name"+ "first 3 letters of the computername"
,即 OU 名称。我能够使该-Join
方法正常工作。但是,如果变量是函数中的参数,则它不起作用。在这里,用户名显示为"ayan--join xeuts001[1..3]"
我希望它显示为"ayan-xeu"