共享文件夾的應用非常廣泛,客戶端對服務器端進行文件管理,局域網文件直傳等等,在linux下,可以簡單的安裝smaba協議,簡單的配置之後即可使用。在windows下,可以通過圖形化的操作開啟這項功能,當然帶著一點極客風格,我們通過powershell(少量出現cmd)來對其進行管理。
操作步驟查看共享列表在powershell內,我們可以通過執行以下cmdlet獲取共享信息:
λ Get-WmiObject -Class Win32_ShareName Path Description---- ---- -----------ADMIN$ C:\Windows 遠程管理C$ C:\ 默認共享D$ D:\ 默認共享E$ E:\ 默認共享IPC$ 遠程 IPCUsers C:\Users
同理,在cmd下,也可以
λ net share共享名 資源 注解-------------------------------------------------------------------------------C$ C:\ 默認共享D$ D:\ 默認共享E$ E:\ 默認共享IPC$ 遠程 IPCADMIN$ C:\Windows 遠程管理Users C:\Users命令成功完成。創建一個共享文件夾
瘋狂的Powershell
# 共享名$ShareName = 'TestShare'# 共享路徑$Path = 'D:\SHARE'If (!(Get-WmiObject -Class Win32_Share -Filter "name='$ShareName'")) { $Shares = [WMICLASS]"WIN32_Share" $Shares.Create($Path,$ShareName,0).ReturnValue}else{Write-Warning "$ShareName has been sharing!!"}
如果如果您有遠程機器的管理員權限的話,也利用WMI在遠程的機器上創建新的共享文件夾,下面是在遠程主機上創建共享文件夾的代碼:
# 共享名$ShareName = 'TestShare'# 共享路徑$Path = 'D:\SHARE'# 遠程主機名$Server = 'Server'If (!(Get-WmiObject -Class Win32_Share -Filter "name='$ShareName'")) { $Shares = [WMICLASS]"\\$Server\root\cimv2:WIN32_Share" $Shares.Create($Path,$ShareName,0).ReturnValue}else{Write-Warning "$ShareName has been sharing!!"}
低調的cmd
::建議先查看當前的共享文件夾再進行創建操作net share TestShare=D:\SHARE /users:25 /remark:"test share of the a folder"
我們很輕易地就能將一個文件夾的共享狀態開啟,我們可以通過UNC路徑對其進行訪問。創建完文件共享之後,我們來看看怎麼使用吧。
驅動器映射和共享訪問接下來,我們摒棄圖形化界面的操作(如果你非喜歡那麼做的話,可以通過網上鄰居【“網絡”】進行查看,或者在計算機圖標下右鍵選擇映射網絡驅動器),我們來通過命令去啟用吧。
強悍的Powershell
臨時創建一個網絡驅動器映射:
(New-Object -ComObject WScript.Network).MapNetworkDrive("Z:", "\\TEST-PC\USERS")
創建一個持久化的網絡驅動器映射:
# New-PSDrive 加上 -Persist 參數使得驅動器在 PowerShell 之外可見。# 要真正地創建一個永久的網絡驅動器,請確保加上 -Scope Global。/# 如果 New-PSDrive 在全局作用域范圍之外運行(例如,在一個腳本中運行),該驅動器只會在腳本運行時出現在文件管理器中。New-PSDrive -Name Z -PSProvider FileSystem -Root \\TEST-PC\USERS -Persist -Scope Global
小巧的cmd
::下面這條命令雖然可以在cmd使用此磁盤映射,但是不可利用資源管理器加載。net use Z: \\TEST-PC\USERS::這裡是將systemroot文件夾映射為z:驅動器,可利用"explorer.exe"加載,可惜不能使用網絡路徑。subst Z: $env:systemroot
完成如上的工作之後,不出意外,你的資源管理器會出現你想要訪問的網絡路徑的圖標。
刪除共享如果不需要再使用此共享文件夾了,可以卸載掉網絡驅動器,並在共享的主機上刪除該共享。
Powershell
$Shares = Get-WMIObject Win32_Share | Where {$_.Name -eq ""}Foreach ($Share in $Shares) { $Share.Delete()}
cmd
net share TestShare /delete小結
cmdkey /add:targetname /user:username /pass:password
Powershell管理共享的相關鏈接:https://msdn.microsoft.com/...
本文轉載地址:http://www.linuxprobe.com/powershell-win32-share.html
http://xxxxxx/Linuxjc/1134192.html TechArticle