iT邦幫忙

0

Powershell 判斷網段所有電腦有沒有一個目錄

  • 分享至 

  • xImage

各位大大好
小弟公司最近被XX公司警告超裝軟體
想清查公司多少電腦有裝該軟體
目前打算建置Open-Audit

但是這件事有點急迫性
想盡快清查出數量
所以用AD去下這指令去查該軟體的安裝路徑

Test-Path "\\192.168.1.1\c$\Program Files\XXXXXXX\"

但是公司有很多網段
請問有辦法掃IP範圍嗎?

麻煩各位大大們解惑

runan5678 iT邦研究生 1 級 ‧ 2021-08-09 16:29:55 檢舉
笨方法:有AD就有電腦名稱,匯出電腦名稱當清單,然後跑完清單看結果
有IP也可以,Excel表格拉一下,網段的IP就可以當作清單處理了
c$ =>預設共用,沒關,心好大
基本上建議是本機跑SCRIPT,然後把測試不是 NULL 的DATA放到共用目錄上
這樣會以較快,GPO 就能去指定,不需要用 ICMP去輪詢跑SCRIPT
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
japhenchen
iT邦超人 1 級 ‧ 2021-08-09 16:47:49
最佳解答

寫個powershell ps1檔

2..254 | %{
    $IP = "192.168.1.$_"    
    $path = "\\$IP\C$\Program Files\XXXXXX\"
    If ([System.IO.Directory]::Exists($path) ) {
        echo $path installed
    }else{
        echo $path no installed
    }
}
看更多先前的回應...收起先前的回應...

如果有多個C網段,用foreach

$b = @('1','2','3','5')
foreach ($e in $b) {
  .........
}

J 大 把綁架病毒感染預設共用的方法寫出來了,這樣好嘛 @_@

沒辦法,還是大把大把的人不放棄smb v1

IT人不也跟病毒一樣,想殺殺不掉....

呵呵

powershell還真的很神通廣大,還好要執行還得經過同意,不然真的一行就能加密整個硬碟的檔案

0
通通
iT邦新手 4 級 ‧ 2021-08-10 09:55:31
$patch='網網路磁碟路徑'
$a="$env:COMPUTERNAME"
$Software='HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall'
$Software1='HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall'

Get-ItemProperty $Software\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize |Out-File "$patch\$a_32.txt"
Get-ItemProperty $Software1\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table –AutoSize|Out-File "$patch\$a_64.txt"

這個方法不錯,但是別忘記了 64 位元軟體在這個位置
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
這邊最好也要列一次

我要發表回答

立即登入回答