Unit 6 - Practice Quiz

CSC104

1 Which PowerShell cmdlet is primarily used to load a module into the current session?

A. Get-Module
B. Import-Module
C. Load-Module
D. Install-Module

2 Which environment variable stores the paths where PowerShell looks for modules?

A. $env:Path
B. $env:PSModulePath
C. $env:ModulePath
D. $env:PSHome

3 What is the file extension for a PowerShell Module Manifest file?

A. .psm1
B. .ps1
C. .psd1
D. .xml

4 Which cmdlet is used to import data from a Comma-Separated Value file and create objects from it?

A. Get-Content
B. Import-Csv
C. Read-Csv
D. ConvertFrom-Csv

5 When converting a PowerShell object to JSON format, which cmdlet is used?

A. Export-Json
B. ConvertTo-Json
C. Out-Json
D. Format-Json

6 Which cmdlet allows you to read an XML file and navigate its nodes as properties?

A. Import-Xml
B. Get-Content -AsXml
C. Select-Xml
D. [xml](Get-Content path)

7 Which cmdlet is most appropriate for prompting a user to input a password securely?

A. Read-Host -AsSecureString
B. Get-Credential
C. Read-Input -Secure
D. Read-Host -MaskInput

8 Which cmdlet creates a graphical window allowing users to select one or more items from a list?

A. Show-Menu
B. Out-GridView -PassThru
C. Select-Object -UI
D. Read-Choice

9 In a text-based menu script, which statement is most efficient for handling multiple specific user choices?

A. if...else
B. foreach
C. switch
D. while

10 Which cmdlet is used to stop a running Windows service?

A. Kill-Service
B. Stop-Service
C. End-Service
D. Disable-Service

11 To retrieve a list of all processes currently consuming more than 100MB of memory, which command structure is correct?

A. Get-Process | Where-Object { $_.WorkingSet -gt 100MB }
B. Get-Process | Filter-Object { $_.Memory -gt 100MB }
C. Select-Process -Memory > 100MB
D. Get-Process -Memory 100MB

12 Which PowerShell Drive (PSDrive) allows direct access to the Windows Registry Local Machine hive?

A. RegLM:
B. HKLM:
C. C:\Windows\System32\Config
D. Registry::LocalMachine

13 Which cmdlet is used to modify a specific value inside a registry key?

A. Set-RegistryKey
B. New-Item
C. Set-ItemProperty
D. Update-Item

14 Which cmdlet is required to enable PowerShell Remoting on a local computer?

A. Start-Remoting
B. Enable-PSRemoting
C. Set-ExecutionPolicy RemoteSigned
D. Allow-RemoteAccess

15 Which cmdlet starts an interactive 1-to-1 remote session with a single computer?

A. Invoke-Command
B. Enter-PSSession
C. New-PSSession
D. Connect-Server

16 What protocol does PowerShell Remoting primarily rely on?

A. FTP
B. Telnet
C. WS-Management (WinRM)
D. RDP

17 Which cmdlet allows you to run a script block on multiple remote computers simultaneously?

A. Enter-PSSession
B. Invoke-Command
C. Start-Job
D. Get-RemoteObject

18 When working with Active Directory in PowerShell, which cmdlet creates a new user account?

A. Add-ADUser
B. Create-User
C. New-ADUser
D. Set-ADUser

19 Which parameter of Get-ADUser allows you to find users based on specific criteria (e.g., Department)?

A. -Search
B. -Filter
C. -Query
D. -Where

20 Which command adds an existing user to an Active Directory security group?

A. Add-ADGroupMember
B. Set-ADGroup
C. Update-ADGroup
D. Join-ADGroup

21 What is the primary benefit of using Start-Job in PowerShell?

A. It runs the command with higher privileges.
B. It runs the command in the background without blocking the console.
C. It automatically schedules the command to run daily.
D. It speeds up the command execution.

22 Which cmdlet retrieves the output data from a completed background job?

A. Get-Job
B. Receive-Job
C. Read-Job
D. Show-Job

23 How do you define a Scheduled Task Action in PowerShell?

A. New-ScheduledTaskAction
B. Set-TaskAction
C. Start-Task
D. Register-ScheduledTask

24 In an Advanced Function, which attribute enables support for common parameters like -Verbose and -WhatIf?

A. [Parameter()]
B. [CmdletBinding()]
C. [Advanced()]
D. [Function()]

25 Which validation attribute ensures a parameter value is selected from a predefined list?

A. [ValidatePattern()]
B. [ValidateSet()]
C. [ValidateRange()]
D. [ValidateList()]

26 How do you make a function parameter mandatory?

A. [Parameter(Mandatory=$true)]
B. [Required]
C. param(mandatory)
D. [ValidateNotNull()]

27 Which .NET class is commonly loaded to create Windows Forms (WinForms) GUIs in PowerShell?

A. System.Windows.GUI
B. System.Windows.Forms
C. System.Drawing.UI
D. PowerShell.Forms

28 When creating a GUI, what method must be called on a Form object to display it to the user?

A. $form.Open()
B. $form.ShowDialog()
C. true
D. $form.Render()

29 In a deployment script, which variable represents the directory where the current script is located?

A. $HOME
B. $PSScriptRoot
C. $PSHome
D. $PWD

30 Which block allows you to handle errors gracefully in automation scripts?

A. if...else
B. try...catch...finally
C. do...while
D. error...resume

31 Which cmdlet is used to write entries to the Windows Event Log?

A. Write-Host
B. Write-EventLog
C. Add-LogEntry
D. Set-Event

32 If you need to verify if a file or folder exists before attempting to copy it, which cmdlet should be used?

A. Check-File
B. Test-Path
C. Get-Item
D. Find-Path

33 In a user management script, how do you generate a random password using a .NET class?

A. Get-Random
B. [System.Web.Security.Membership]::GeneratePassword()
C. New-Guid
D. Convert-SecureString

34 Which operator is used to check if a string matches a Regular Expression (Regex)?

A. -eq
B. -like
C. -match
D. -contains

35 In a monitoring script, if you want to calculate the percentage of free disk space, which formula is correct (conceptually)?

A.
B.
C.
D.

36 What is the purpose of Splatting in PowerShell scripts?

A. To delete variables from memory.
B. To split a string into an array.
C. To pass a collection of parameter values to a command using a hashtable.
D. To format output as a list.

37 When writing an automation script, which variable refers to the current object in the pipeline?

A. $THIS
B. PSItem
C. $CURRENT
D. $OBJ

38 Which XML method would you use to save changes made to an XML object back to a file?

A. $xml.Save("path")
B. Write-Xml
C. Export-Clixml
D. Set-Content

39 What is the difference between Write-Host and Write-Output?

A. Write-Host sends data to the pipeline; Write-Output sends to the console only.
B. Write-Host sends to the console only; Write-Output sends data to the pipeline.
C. They are identical.
D. Write-Output is deprecated.

40 Which cmdlet is used to safely request user credentials (username and password) for a script?

A. Read-Host
B. Get-Credential
C. Input-User
D. Select-User

41 Which parameter is used to dry-run a potentially dangerous command (like deleting users) without actually executing it?

A. -Test
B. -WhatIf
C. -Trial
D. -Confirm

42 To convert a CSV file directly into an HTML report, which pipeline chain is correct?

A. Import-Csv | ConvertTo-Html | Out-File report.html
B. Get-Content | Format-Html
C. Import-Csv | Export-Html
D. Read-Csv | Out-Html

43 Which command is used to reload the current user's profile script after making changes?

A. Reload-Profile
B. . $PROFILE
C. Start-Profile
D. Update-Session

44 In a foreach (users) loop, what does $user represent?

A. The entire collection of users.
B. The index of the loop.
C. The current item being processed in the iteration.
D. A system reserved variable.

45 Which cmdlet creates a new background job specifically for WMI/CIM queries?

A. Get-WmiJob
B. Invoke-CimMethod
C. Register-WmiEvent
D. Get-CimInstance (does not create job by default)

46 Wait, let's refine the previous thought. Which cmdlet allows running a WMI command as a job?

A. Get-WmiObject -AsJob
B. Start-Wmi
C. Run-WmiJob
D. New-WmiJob

47 Which validation attribute is best used to ensure an integer parameter falls between 1 and 100?

A. [ValidateSet(1,100)]
B. [ValidateRange(1,100)]
C. [ValidateCount(1,100)]
D. [ValidateLength(1,100)]

48 How do you create a multiline comment in PowerShell?

A. // comment //
B. /* comment */
C. <# comment #>
D. -- comment --

49 Which Logical Operator represents 'Not Equal' in PowerShell?

A. !=
B. <>
C. -ne
D. -not

50 When deploying a script, how do you bypass the default execution policy restriction for a specific process only?

A. Set-ExecutionPolicy Unrestricted
B. powershell.exe -ExecutionPolicy Bypass -File script.ps1
C. Unblock-File script.ps1
D. Remove-Item Cert:\LocalMachine