电源外壳确定远程计算机操作系统



>我编写了一个脚本来将文件复制到"所有用户"桌面或"公共桌面"

但是,我们有一个混合环境。有些人正在使用Windows XP,有些人正在使用Windows 7。

$SOURCE = "I:PathToFolder*"
$DESTINATION7 = "c$UsersPublicDesktop"
$DESTINATIONXP = "c$Documents and SettingsAll UsersDesktop"
$computerlist = Get-Content I:PathToFilecomputer-list.csv
$results = @()
$filenotthere = @()
$filesremoved = @()
foreach ($computer in $computerlist) {
    if((Test-Connection -Cn $computer -BufferSize 16 -Count 1 -ea 0 -quiet))
    {   
        Write-Host "\$computer$DESTINATION"      
        Copy-Item $SOURCE "\$computer$DESTINATION" -Recurse -force        
    } else {
        $details = @{            
            Date             = get-date              
            ComputerName     = $Computer                 
            Destination      = $Destination 
        }                           
        $results += New-Object PSObject -Property $details
        $results | export-csv -Path I:PathTologsoffline.txt -NoTypeInformation -Append
    }    
}

DESTINATION 为空。扩展基思的建议:

foreach ($computer in $computerlist) {
    if((Test-Connection -Cn $computer -BufferSize 16 -Count 1 -ea 0 -quiet))
    {
        $OS = Get-WmiObject -Computer $computer -Class Win32_OperatingSystem
        if($OS.caption -like '*Windows 7*'){
            $DESTINATION = $DESTINATION7
        }
        if($OS.caption -like '*Windows XP*'){
            $DESTINATION = $DESTINATIONXP
        }
    }
}

这也可以避免您遇到的错误。 empty $DESTINATION .

在 foreach $computerlist循环中,可以使用 WMI 获取每台计算机的操作系统标题:

$OS = Get-WmiObject -Computer $computer -Class Win32_OperatingSystem 

然后检查$OS

if($OS.caption -like '*Windows 7*'){
    #Code here for Windows 7
}
#....

我有一个稍微不同的目标...但是感谢您的基本知识。

 del C:scriptsOS.csv
$computerlist = Get-Content c:scriptscomputerlist.csv
foreach ($computer in $computerlist) {
    if((Test-Connection -Cn $computer -BufferSize 16 -Count 1 -ea 0 -quiet))
    {   
        Get-WMIObject Win32_OperatingSystem -ComputerName $computer |
        select-object CSName, Caption, CSDVersion, OSType, LastBootUpTime, ProductType| export-csv -Path C:ScriptsOS.csv -NoTypeInformation -Append
    }
}

最新更新