List all windows share folder details in a single command
This might be a better answer if you can run PowerShell. It is for me. I found this at https://winception.wordpress.com/2021/02/19/exporting-share-info-and-permissions-with-powershell-and-csv-files/ and made some minor changes.
[cmdletbinding()]
Param()
Set-StrictMode -Version Latest
# ExportShareInfo.ps1
# This script will export type 0 shares with security info, and provide a hash table of shares
# in which security info could not be found.
#
#reference: http://mow001.blogspot.com/2006/05/powershell-export-shares-and-security.html
#SID was removed from the script. Instead, the username is used to find SID when the import is run
# CHANGE TO SERVER THAT HAS SHARES TO EXPORT
$fileServer = 'localhost'
# CHANGE TO FILENAME FOR EXPORTED CSV
$filename = 'shares.csv'
$date = get-date
$datefile = get-date -uformat '%m-%d-%Y-%H%M%S'
#Store shares where security cant be found in this hash table
$problemShares = @{}
Function Get-ShareInfo($shares) {
$arrShareInfo = @()
Foreach ($share in $shares) {
trap{continue;}
Write-Verbose $share.name
$strWMI = "\" $fileServer "rootcimv2:win32_LogicalShareSecuritySetting.Name='" $share.name "'"
$objWMI_ThisShareSec = $null
$objWMI_ThisShareSec = [wmi]$strWMI
#In case the WMI query or 'GetSecurityDescriptor' fails, we retry a few times before adding to 'problem shares'
For($i=0;($i -lt 5) -and ($objWMI_ThisShareSec -eq $null);$i ) {
sleep -milliseconds 200
$objWMI_ThisShareSec = [wmi]$strWMI
}
$objWMI_SD = $null
$objWMI_SD = $objWMI_ThisShareSec.invokeMethod('GetSecurityDescriptor',$null,$null)
For($j=0;($j -lt 5) -and ($objWMI_SD -eq $null);$j ) {
sleep -milliseconds 200
$objWMI_SD = $objWMI_ThisShareSec.invokeMethod('GetSecurityDescriptor',$null,$null)
}
If($objWMI_SD -ne $null) {
$arrShareInfo = $objWMI_SD.Descriptor.DACL | % {
$_ | select @{e={$share.name};n='Name'},
@{e={$share.Path};n='Path'},
@{e={$share.Description};n='Description'},
AccessMask,
AceFlags,
AceType,
@{e={$_.trustee.Name};n='User'},
@{e={$_.trustee.Domain};n='Domain'}
}
}
Else {
$ProblemShares.Add($share.name, "failed to find security info")
}
}
return $arrshareInfo
}
Write-Verbose "Finding Share Security Information"
# get Shares (Type 0 is "Normal" shares) # can filter on path, etc. with where
$shares = gwmi Win32_Share -computername $fileServer -filter ætype=0'
# get the security info from shares, add the objects to an array
Write-Verbose " Complete"
Write-Verbose "Preparing Security Info for Export"
$ShareInfo = Get-ShareInfo($shares)
Write-Verbose " Complete"
Write-Verbose "Exporting to CSV"
# Export them to CSV
$ShareInfo | select Name,Path,Description,User,Domain,
AccessMask,AceFlags,AceType | export-csv -noType $filename
Write-Verbose " Complete"
Write-Verbose "Your file has been saved to $filename"
If ($problemShares.count -ge 1) {
Write-Verbose "These Shares Failed to Export:"
}
$problemShares
List network shares from command prompt
Is it possible to browse a network for shares from the Windows command prompt?
I want to map a drive to a network share (pushd
), but I can’t remember the exact name of the machine or share. Is there a way to browse the network to find the shares via the command prompt?
Background: my Windows install was corrupted after an update and nothing’s working now. I haven’t backed up in a month, and I’m trying to do one final backup before I wipe it clean.
Как дать общий доступ к папке через командную строку cmd. | soft setup
Процеcс предоставления общего доступа к папке через графический интерфейс более длителен чем через командную строку и к тому же не всегда есть возможность выполнить его таким способом. Например, операционная система запущена от имени пользователя, а для предоставления общего доступа к папке необходимо обладать правами администратора. Поэтому необходимо будет сменить учетную запись и уже от имени администратора выполнять все процедуры.
В случае с командной строкой все гораздо проще. Под текущей учетной записью запускаем cmd от имени администратора и вводим команду:
net share sharename=c:sharefolder
где sharename – это имя общей папки в сети
sharefolder – это путь к папке на компьютере
Чтобы дать доступ к сетевой папке конкретному пользователю с определенными правами на чтение, изменение или полные, необходимо указать команду net share с параметром /GRANT.
net share sharename=d:foldername /GRANT:domainnameusername,FULL
Параметр /GRANT может принимать значения READ, CHANGE, FULL, что означает соответственно ЧТЕНИЕ, ИЗМЕНЕНИЕ, ПОЛНЫЙ.
Для удаление общего ресурса используется параметр /DELETE.
net share sharename /DELETE
Как удалённо получить доступ к информации в компьютерах корпоративной сети (net share и psexec) – cryptoworld
Сегодня будет интересно, потому мы будем «заглядывать» в компьютеры к сотрудникам на их рабочих местах. Чудненько правда? В этой статье мы легко и просто научимся получать доступ ко всем жестким и съёмным дискам любого рабочего ПК. Делать это будем мастерски и в удалённом режиме. Ну что, поехали.
Схема типичная, поэтому у вас не должно будет возникнуть особых отличий.
Вот наглядная картина корпоративной сети в каждой компании, где существует множество рабочих станций, а также принтеров и другой техники.
Если мы попробуем зайти на какой-нибудь ПК в такой сети, мы можем увидеть либо пустой экран, либо расшареные ресурсы, либо сообщение об ошибке, что нет доступа к этому ПК.
Но есть волшебная штука, которая называется net share, и в ней есть прописанные пути, а именно c$,admin$, ipc$, может быть print$, либо любой другой локальный диск. И тогда мы получим такую картину:
Просто прописав путь \SADSDc$ мы получили доступ к диску C на удаленном ПК, тоже самое можно сделать и с диском D. Да и с любым другим диском на удаленном ПК.
Вопрос с flash-дисками немного сложнее, но и тут есть специальная программа, от Microsoft, которая является упрощенным Telnet и называется psExec.
Такой простой командой мы получили доступ до шела удаленной машины. И теперь самое интересное, в Windows есть интересные команды, которыми мы и воспользуемся.
Мы видим всё на удаленном ПК. Может сохранить информацию. Теперь остается подождать, когда пользователь вставит Flash в свой компьютер и когда это произойдет, мы увидим это:
Да, именно эту флешку. Но так просто ее мы не просмотрим, она не прописана в net share, поэтому видна она только на локальной машине. Но и этот вопрос решается.
Надо лишь ввести в cmd net share fl=f:, либо если со своей машины, то psexec \имя машины net share fl=f:. В результате увидим надпись, что ресурс успешно назначен общим.
В итоге мы видим всё, что находится на флешке у пользователя:
После просмотра надо не забыть удалить расшареную флешку, а то будет фонить на всю сеть.
Вот и всё. Я написал эту статью, потому что многие думают, что если диск или папка на диске не расшарена в сети, то до неё ни у кого нет доступа. Как вы только что убедились, это не так.
Особенности
- В операционной системе Windows XP Share не применяется. Она допускается при работе в MS-DOS.
Расшифровка значений
[диск_компьютера:]путьПозволяет указать нахождение приложения SHARE.EXE.
/F:память
Задает некоторую область на диске компьютера. Требуется прописывать данный параметр в байтах. Пространство предназначается для выполнения записи сведений о совместном применении документов. Если ничего не задавать, то указывается значение 2048 байт. Требуется учитывать тот факт, что любой документ должен иметь возможность открываться, а также обладает маршрутом. Таким образом, следует задавать минимум 40 байт на файл.
/L:блок
Устанавливает количество одновременно блокируемых документов. Если не прописывать никаких значений, то искомое число будет составлять 20. Когда с одним документом работает одновременно несколько пользователей, то невозможно осуществить одновременную запись.
Синтаксис
share [/F:память] [/L:блок]
Можно осуществлять ввод не только в командной строке. Если прописывать информацию в документе CONFIG.SYS, предусматривается следующий вариант:
INSTALL=[[диск_компьютера:]путь]SHARE.EXE [/F:память] [/L:блок]