我將在本主題中回答我自己的問題,但請隨時給我建議對我可以使用此腳本做得更好的批評。我最近對質量跨越很多電腦上的域安裝VNC,需要對他們的PC的一些信息,例如:爲網絡管理員獲取重要的計算機信息
- 主機名
- 用戶名
- MAC地址
- IPv4地址
- 域名
一旦所有這些信息收集它被編譯成一個文本文件,並上傳到FTP服務器,以文件被保存的conf使用相同的名稱,我將每個文件設置爲用戶的名稱。
這是有史以來第一次使用powershell的腳本和第一次體驗,所以請告訴我是否有任何可以改進的地方。
我將在本主題中回答我自己的問題,但請隨時給我建議對我可以使用此腳本做得更好的批評。我最近對質量跨越很多電腦上的域安裝VNC,需要對他們的PC的一些信息,例如:爲網絡管理員獲取重要的計算機信息
一旦所有這些信息收集它被編譯成一個文本文件,並上傳到FTP服務器,以文件被保存的conf使用相同的名稱,我將每個文件設置爲用戶的名稱。
這是有史以來第一次使用powershell的腳本和第一次體驗,所以請告訴我是否有任何可以改進的地方。
function Get-MACAddress {
ipconfig /all | findstr "Physical" | Where-Object {$_.length -lt 58}
}
function Get-IPAddress {
ipconfig | findstr "IPv4 Address"
}
function Get-HostName {
get-content env:computername
}
function Get-UserName{
get-content env:UserName
}
function Get-DomainName{
get-content env:USERDOMAIN
}
function CreateCSVdocument {
Get-MACAddress | New-Item C:\Users\$($env:username)\Documents\$($env:username).txt -type file -force
Add-Content C:\Users\$($env:username)\Documents\$($env:username).txt " "
Get-IPAddress | Add-Content C:\Users\$($env:username)\Documents\$($env:username).txt
Add-Content C:\Users\$($env:username)\Documents\$($env:username).txt " "
Add-Content C:\Users\$($env:username)\Documents\$($env:username).txt "Hostname:"
Get-Hostname | Add-Content C:\Users\$($env:username)\Documents\$($env:username).txt
Add-Content C:\Users\$($env:username)\Documents\$($env:username).txt " "
Add-Content C:\Users\$($env:username)\Documents\$($env:username).txt "User:"
Get-UserName | Add-Content C:\Users\$($env:username)\Documents\$($env:username).txt
Add-Content C:\Users\$($env:username)\Documents\$($env:username).txt " "
Add-Content C:\Users\$($env:username)\Documents\$($env:username).txt "Domain:"
Get-DomainName | Add-Content C:\Users\$($env:username)\Documents\$($env:username).txt
}
function FTPUpload {
$Dir="C:\Users\$($env:username)\Documents\$($env:username).txt"
#ftp server
$ftp = "ftpserver"
$user = "username"
$pass = "password"
$webclient = New-Object System.Net.WebClient
$webclient.Credentials = New-Object System.Net.NetworkCredential($user,$pass)
#list every sql server trace file
foreach($item in (dir $Dir "$($env:username).txt")){
"Uploading $item..."
$uri = New-Object System.Uri($ftp+$item.Name)
$webclient.UploadFile($uri, $item.FullName)
}
}
Get-DomainName
Get-IPAddress
Get-MACAddress
Get-HostName
Get-UserName
CreateCSVdocument
FTPUpload
我建議你返工至少得到Mac/IP地址,因爲ipconfig的輸出是不同的取決於區域設置,更好的方法是使用wmi(win32_networkadapterconfiguration) – Paul 2014-11-21 16:29:32
如果你希望人們重溫你的代碼,你應該問過來的http://codereview.stackexchange.com/你也可以張貼問題,並通過點擊「接自己的同時回答問題「框中,如果你要發佈自己的問題,你應該使用它。 – 2014-11-21 16:05:55
好的,我也會在那裏上傳它,有沒有一個地方可以上傳,以幫助其他可能需要這樣做的用戶? – Phasmatis 2014-11-21 16:08:27
@Phasmatis如果你希望你的問題去Code Review;你應該把這些零件組合起來並在那裏問它;按照現狀,如果我將其遷移,因爲它不符合格式,它將被拒絕。 – 2014-11-21 16:09:23