Quantcast
Channel: Windows PowerShell forum
Viewing all 21975 articles
Browse latest View live

Prompt for password without using Get-Credential or Read-Host -AsSecureString, but not display text entered on screen

$
0
0

I'm automating the creation of some scheduled tasks by calling schtasks. I need to supply a password for the /rp switch, but schtasks won't take System.Security.SecureString text. So Get-Credential is out, as is Read-Host -AsSecureString. I can use Read-Host, but I'm really looking for a way to obfuscate the display of the text entered.

Ideas?


Click button on web-page using power shell is not working

$
0
0

Hi Guys,

Whenever i am trying to ran the below script the new button is not working.

$url = "IE"
$ie = New-Object -com InternetExplorer.Application
$ie.visible=$True
$ie.navigate("IE")
while($ie.ReadyState -ne 4) {start-sleep -Seconds 5}
$ie.Document.getElementById('New').click()
start-sleep 5

Please help me.

Thanks in advance.

Convertto-CSV can't handle doubles lines in json file

$
0
0

I'm working on a script that pull info from VM's and places it in a json file.
In case of multiple VHD files or NIC's it will put it as {<value>,<value>}.

When converting the above to CSV (either directly from the output or after being output to json) it shows it can't handle multiple values per line.
It will shows as "System.Object[]".

Oddly enough, if I use https://json-csv.com/ to convert the json output it will nicely place each extra value on a separate line.

Below is the code that I use, if someone wants to test it:

Get-VM -ComputerName <node-name> -VMName <vm-name> | ForEach-Object {
    $vmHdd = $_ | Get-VMHardDiskDrive
    $vmNic = $_ | Get-VMNetworkAdapter
    $vmVlan = $_ | Get-VMNetworkAdapterVlan

    [PSCustomObject] @{
        'Node' = $node
        'VM Name' = $_.Name
        'Processor' = $_.ProcessorCount
        'Memory' = '{0:N0} MB' -f ($_.MemoryAssigned / 1MB)
        'HDD Path' = $vmHdd.Path
        'NIC' = $vmNic.Name
        'MAC Address' = $vmNic.MacAddress
        'Dynamic MAC' = $vmNic.DynamicMacAddressEnabled
        'MAC Spoofing' = $vmNic.MacAddressSpoofing
        'VLAN ID' = $vmVlan.AccessVlanId
        # 'Uptime' = $_.Uptime
        # 'Notes' = $_.Notes
    }
} | ConvertTo-Json | Out-File C:\temp\${env:COMPUTERNAME}_$(Get-Date -Format yyyy-MM-dd)_output.json -Append

$content = Get-Content -Path C:\temp\${env:COMPUTERNAME}_$(Get-Date -Format yyyy-MM-dd)_output.json | ConvertFrom-Json
$content | Export-Csv -NoTypeInformation -Path C:\temp\${env:COMPUTERNAME}_$(Get-Date -Format yyyy-MM-dd)_output.csv

I know the last two lines can be done as a single line, but I keep getting an error, so this works for now.
Apart from the "System.Object[]" obviously.

Following is the CSV file output how the website converts it, and what I would to see using PowerShell.

"Node","VM Name","Processor","Memory","HDD Path","NIC","MAC","Dyn MAC","VLAN ID"
"node-name","vm-name","1","10 GB","C:\ClusterStorage\Volume3\vm-name\vm-name_disk_1.vhd","VM vm-name VLAN 84","mac-address","False","84"
"","","","","C:\ClusterStorage\Volume10\vm-name\vm-name_2.vhdx","VPC5000-vm-name","mac-address","False","2000"

Hopefully someone has an idea how to deal with this.


Powershell Script Automation

$
0
0

I have a script that connects to an SFTP location and synchronises a remote and Local location.  This works like a dream when i run it manually 100%.

I need to run this script every 15 mins and as such I have created a Task Scheduler Job. 

When i run the task scheduler job once created it runs but nothing happens.  

I can seem to get this job to run,  the credentials i am using are the same i created the script in and when i run manually it works it is only when i try to run the script using task scheduler it does nothing.  I am running out of ideas. 

Any assistance would be greatly appreciated.   

How can I find ssd in registry?

$
0
0
Hi world.
I need to find a specific ssd in registry, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\(IDE/AHCI)\(ssd_name)\(serial_number)\Device Parameters\Disk" where I need to put some registry key like UserWriteCacheSetting properly.
The problem is the ssd is different for each computer. So I need to locate the Interface Guid and then change/add the keys afterwards within that interface.
Whole computers installed windows 10 should be able to be applied.
Please give me amazing ideas using batch file or powershell.
Thank you very much.
Regards
Chris

How can I find a specific interface / GUID?

$
0
0
Hi world.
I need to find a specific interface/GUID in registry, HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\interfaces\[GUID], where I need to put some registry key like TcpAckFrequency, and TcpNoDelay properly.
The problem is the Interface GUID is different for each computer. So I need to locate the Interface Guid and then change/add the keys afterwards within that interface.
Whole computers installed windows 10 should be able to be applied.
Virtual Machine like VMware, Azure, VirtualBox must be excluded.
Please give me amazing ideas using batch file or powershell.
Thank you very much.
Regards
Chris

IS there a way to reset or re-install PowerShell 5 on Windows 10 - 1903

$
0
0

BackGround ->  With  Win 10 1809,  powershell scripts were working very well and doing as expected.   

Then Windows 10 upgraded from 1809 to 1903.  This resulted in Lots of PowerShell ERRORS  and PROBLEMS with PowerShell after upgrade.  Resolved one error and five more occur.   When I am trying to resolve an error, the diagnostics then report other errors.  Kudo's to MS.

Is there an easy way to uninstall and reinstall PowerShell ?    Or to refresh it to basic, stable state?

TIA..

Remoting into a Centos VM - sudo user with no pwd not working from PowerShell script

$
0
0

I am connecting remotely to a Centos 7.5 VM in Azure - it works fine for commands not requiring sudo privileges

My user has been configured to accept sudo commands with no password (i.e. I can run ls -la /root with no password provided) but this does not work when connecting from my PowerShell script - which looks like this:

&($plinkpath + "plink.exe") $username@$servername $command  .. I also tried:

&($plinkpath + "plink.exe") -pw $password $username@$servername $command

The error I get is essentially asking for me to provide a password interactively via keyboard:

plink.exe : -- Keyboard-interactive authentication prompts from server

Any thoughts how to resolve this?  Thanks.


ChrisB


script to move disabled users to OU

$
0
0

Hello,

Does anyone have a powershell script that will move disabled users to a OU?

Thank you

Trouble Exporting PS1 to CSV that matches exporting txt file

$
0
0

I have this script from "https://gallery.technet.microsoft.com/scriptcenter/Export-WSUS-Approvals-per-59b89a53/view/Discussions" and when i run the script or output it to txt file (.\getapprovals.ps1 > c:\temp\approvals.txt) it returns the view i want. However, i want this view to export to CSV and i have not been successful in do so. It looks like the same question has been ask on the site but i do not see the correct response. Here is a partial example of the text file that i am trying to match in a CSV.

Title                                                                                               Classification    
-----                                                                                               --------------    
Update for Microsoft Office 2013 (KB3039766) 32-Bit Edition               Critical Updates  
Update for Microsoft Office 2013 (KB3039720) 32-Bit Edition               Critical Updates

Thank you!

Why Powershell opens a second PSSession when there is already one open

$
0
0

Hi there,

here is my situation:

My script gets mailboxes properties etc so I need to establish a remote session to our Exchange server.

I have: get-credential, then  New-Pssession...
and then
Import-Pssession...

As you would expect I am asked for credentials and then the script works fine.

If the PS window stays open overnight, and this happens frequently, the next day Get-PSSession tells me that the session is broken. To avoid closing the PS window and reopening (as I used to do before)  I added a check in my script - if the session is not open, to close it (actually close all sessions), 

$MySessions=Get-PSSession;
$NumSessions=$MySessions.count

if (($NumSessions -eq 0) -or ($MySessions[$NumSessions-1].state -ne "Opened") ) {
          foreach ($BrokenSession in $MySessions){Remove-PSSession $BrokenSession}

Then the usual get-credential,  new-pssession and import-pssession follow.

This works almost fine. When the script is run subsequent times in the same PS window, the same day - it does not ask for credentials and does not open new PS sessions.  When ran the next day, when the PS session is in broken state it removes the broken one, asks for credentials, creates and imports a new session. So far so good.

The problem is - the moment the script comes to the first Exchange commandlet e.g. get-mailbox it automatically asks for credentials again and opens a second session which has a weird name:
"Session for implicit remoting module at C:\Users\mario\AppData\Local\Temp\13\tmp_22mavgt1.ttj\tmp_22mavgt1.ttj.psm1"
That session will get created and the script will work fine even if I do not enter credentials (click "cancel")

so now I have two opened sessions:

PS C:\Scripts\> Get-PSSession

 Id Name            ComputerName            State         ConfigurationName     Availability
 -- ----            ------------            -----         -----------------     ------------
  1 Session1        exchange.contoso.com    Opened        Microsoft.Exchange       Available
  2 Session for ... exchange.contoso.com    Opened        Microsoft.Exchange       Available

I would like to understand why is this happening and how to avoid it i.e. to prevent opening a second PS session and being asked for credentials for the second time just seconds after I already entered credentials and created a new PS session.

Just to clarify - this happens only the first time the script is run (in the same console) on the second day. All is good in a fresh window and all is good after the first run on the second day.

Thank you very much!

How to add STEP in the Batch file.

$
0
0

I have the following batch file I want to add STEP 1 STEP 2 if STEP 1 FAILED then goto next step

powershell.exe -executionpolicy bypass -file J:\Backup\EnableTCP-IP_Named_Pipes.ps1
powershell.exe -executionpolicy bypass -file J:\Backup\Restart-SQL_Server.ps1
if errorlevel 1 echo Unsuccessful > J:\Backup\result.txt
if errorlevel 0 echo command executed successfully > J:\Backup\result.txt

Thanks

new-cluster static address was not found on any cluster network

$
0
0

Hi guys,

Recently my 2 node cluster got into some issue one of my node was not able to start up. I tried running start-custernode -forcequorum

but i got error Start-clusternode: the system cannot find the file specified.

No solution found. So i went to the other node which still with the cluster and remove the cluster.

Removing of cluster is fine no issue. However i face another problem the moment i wanted to recreate the cluster.

The error shown was -

New-Cluster: Static address 'x.x.x.x' was not found on any cluster network.

If anyone know what going on please let me know. Thanks.

How to modify group policy using powershell?

$
0
0

Hi,

I am trying to configure hash publication for branchcache and below are the steps.

Click Start, click Run, type mmc, and then press ENTER. The Microsoft Management Console (MMC) opens.

2.    In the MMC, on the File menu, click Add/Remove Snap-in. TheAdd or Remove Snap-ins dialog box opens.

3.    In Add or Remove Snap-ins, in Available snap-ins, double-clickGroup Policy Object Editor. The Group Policy Wizard opens with the Local Computer object selected. ClickFinish, and then click OK.

4.    In the Local Group Policy Editor MMC, expand the following path:Computer Configuration, Administrative Templates, Network, Lanman Server. Click Lanman Server.

5.    In the details pane, double-click Hash Publication for BranchCache. TheHash Publication for BranchCache dialog box opens.

6.    In the Hash Publication for BranchCache dialog box, clickEnabled.

7.    In Options, click Allow hash publication for all shared folder, and then clickAllow hash publication for all shared folder.

8. Click OK.

I think, group policy cmdlet can do this. But I am unabale to find the GUID and Key for the same. Can anyone help in doing above steps using powershell?

Also, please guide me on using powershell for managing/modifying the group policies.

Need PowerShell command to fetch "Disabled users" from my csv file

$
0
0

Hi All,

I hope you will help me.

I have to fetch Disabled users from my csv file that has all users account of my AD. The output should be piped to csv file. Due to the beginner for PowerShell, I don't know this. Please help me for this issue. Thanks. 


Powershell to Compare Directory File names to CSV

$
0
0

I'm no PS expert but trying to learn more to make my life easier. I will present the problem and then provide details if your interested in why this is such a pain for me right now.

Problem

I need to be able to take a list of file names (sometimes hundreds of thousands) and compare against a directory, also containing hundreds of thousands of file names, to move the matches to a seperate UPLOAD directory to isolate only the files that we want to put onto our file server.

Background

I work for a company that is in acquisition mode, we have bought so far this year 5 very large companies to incorporate into our own. We have an in house software division and an in house built CRM where we take the data from these CRM's that these companies used before and put it into our own. This includes the attachments that are the root of the problem above. The acquisitions are not slowing down and this will continue to be a painful process (takes 20 + hours as of right now to separate out the files we need from the massive file dumps we get fro these companies). I will paste the PS we have created below..feel free to criticize and tell us how terribly wrong it is. We are here to learn and get a resolution for this headache. The step that seems to be the major pain point is the COMPARE step...

#This script identifies and prepares the attachments needed to upload to our file servers
#Contents
###########################################################
#Extract - Takes a folder containing zipped folders and unzips them all to one location
#Split   - Splits out the folder of files to multiple smaller folders to improve runtime of compare step
#Compare - Compares files to CSV of files in the database and returns the files that match

#Extract
###########################################################
$ExtractRunTime = Measure-Command {
    $FolderPath = "E:\File Download\7-1-19 Download"
    $DestinationPath = "F:\DealerAttachments"

    $Files = Get-ChildItem -Path $FolderPath -Recurse -Force

    ForEach ($F in $Files.FullName) {
        Expand-Archive -Path $F -DestinationPath $DestinationPath
    }
}

$ExtractTime = "It took $([math]::Round($ExtractRunTime.Hours,2) ) hours, $([math]::Round($ExtractRunTime.Minutes,2) ) minutes, and $([math]::Round($ExtractRunTime.Seconds,2) ) seconds to unzip $($Files.Count) folders of attachments."
$ExtractTime

#Split
###########################################################
$SplitRunTime = Measure-Command {
    $FilesPerFolder = 25000 #Change this based on the number of files per folder desired
    $SourcePath = "F:\Dealer Attachments\AttachmentsSplit\1" 
    $DestPath = "F:\Dealer Attachments\AttachmentsSplit\1"
    $i = 0 #Instantiate the counting variable for the loop below. Do not change.
    $FolderNum = 1 #Instantiate the folder number variable for the loop below. Do not change.

    $GetFilesRunTime = Measure-Command {
        $Files = Get-ChildItem -Path $SourcePath -Recurse -Force
    }

    $MoveFilesRunTime = Measure-Command {
        ForEach ($F in $Files.FullName) {
            if (!(Test-Path "$DestPath\$FolderNum")) {
                    New-Item -Path "$DestPath\$FolderNum" -Type Directory -Force
                }
            Copy-Item -Path $F -Destination "$DestPath\$FolderNum"
            $i++
            if ($i -eq $FilesPerFolder){
                $FolderNum++
                $i = 0 
            }
        }
    }
}


$SplitTime = "It took $([math]::Round($SplitRunTime.Hours,2) ) hours, $([math]::Round($SplitRunTime.Minutes,2) ) minutes, and $([math]::Round($SplitRunTime.Seconds,2) ) seconds to divide the attachments into $FolderNum folders."

#Compare
###########################################################
$CSV = Import-Csv 'F:\Dealer Attachments\AttachmentsSplit\Dealer Attachments To Upload.csv'
$Destination = "F:\Dealer Attachments\AttachmentsSplit\Dealer Attachments To Upload"

$FilePath = 'F:\Dealer Attachments\AttachmentsSplit\1\1'
$Files = Get-ChildItem $FilePath

$FolderTime = Measure-Command {
    
    $CompareTime = Measure-Command {
        $Compare = Compare-Object $Files.Name $CSV.Id -IncludeEqual -ExcludeDifferent
    }

    $MoveTime = Measure-Command {
        ForEach ( $File in $Compare.InputObject ) { 
            ForEach ( $C in $CSV ) {
                If ( $File -eq $C.Id ) {
                    If ( $C.Destination -eq "OBA" ) {
                        Copy-Item ( $FilePath + '\' + $File ) $Destination
                    }
                }
            }
        }
    }
}

$OutputCompareTime = "Folder 1 took $([math]::Round($CompareTime.Hours,2) ) hours, $([math]::Round($CompareTime.Minutes,2) ) minutes, and $([math]::Round($CompareTime.Seconds,2) ) seconds to compare the files, resulting in $($Compare.Count) matches."
$OutputMoveTime = "Folder 1 took $([math]::Round($MoveTime.Hours,2) ) hours, $([math]::Round($MoveTime.Minutes,2) ) minutes, and $([math]::Round($MoveTime.Seconds,2) ) seconds to move the matching files."
$OutputFolderTime = "Folder 1 took $([math]::Round($FolderTime.Hours,2) ) hours, $([math]::Round($FolderTime.Minutes,2) ) minutes, and $([math]::Round($FolderTime.Seconds,2) ) seconds in total."

$OutputCompareTime
$OutputMoveTime
$OutputFolderTime



Not given enough time to run batch

$
0
0

Hello all,

    I am trying to run:

pause
FOR /F "delims=" %i IN ('systeminfo ^| findstr /B /C:"OS Name"') DO set test=%i
pause
SET test=%test:~27%

echo|set/p=%test%%ComputerName%|clip

but it seems like the for loop is not given enough time to run.  The first pause works fine for my testing purposes, but then I get nothing in the clipboard.  I am running a .bat file and not powershell file.  Any ideas in how to make this thing run correctly?

Using Powersell to remove apps and reinstall newer versions of the same app

$
0
0

Forgive the way my mind wanders I am trying to automate removed a variable number of apps and reinstall the newer version of the same apps from a lot of Windows 7/10 computers I am not even sure it is possible.

 

I have only used PowerShell this week so my skills are below newbie level in it

I have to visit about 300 workstations each of them will have between 1 and 20 programs named RED XXXX

I am trying to write/modify a script to do the following

Make a list of all application named “RED”

Uninstall all applications whose name starts with RED

Reinstall the new version of the Red Application

I found and slightly edited this script which gets a list of most of the application and saves it

# back up list of currently installed RED and save to C:\IT\Red.txt

$app= Get-WmiObjectWin32_Product| where { $_.name-like"*Red*" } | Out-Filec:\it\Red.txt

 But it is not 100% correct it misses a few so I found this script

If(!([Diagnostics.Process]::GetCurrentProcess(). Path -match ‘\\syswow64\\’)) {

$unistallPath = “\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\”

$unistallWow6432Path = “\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\”

@( if (Test-Path “HKLM:$unistallWow6432Path” ) { Get-ChildItem “HKLM:$unistallWow6432Path”} if (Test-Path “HKLM:$unistallPath” ) { Get-ChildItem “HKLM:$unistallPath” } if (Test-Path “HKCU:$unistallWow6432Path”) { Get-ChildItem “HKCU:$unistallWow6432Path”} if (Test-Path “HKCU:$unistallPath” ) { Get-ChildItem “HKCU:$unistallPath” } ) | ForEach-Object { Get-ItemProperty $_.PSPath } | Where-Object { $_.DisplayName -and !$_.SystemComponent -and !$_.ReleaseType -and !$_.ParentKeyName -and ($_.UninstallString -or $_.NoRemove) } | Sort-Object DisplayName | Select-Object DisplayName

}

else { -foregroundColor red

}  | Out-File C:\IT\red.txt

 

This one is accurate and complete but when I try to pipe the output I get an empty Pipe is not allowed error and it gives me all application not just the ones from Red

 

I need to combine the two, then I need to have the created file be the variable for the install part of the script

 

I found a new Script that also works

Get-Package -Provider Programs -IncludeWindowsInstaller -Name "Red*" | Out-File C:\it\Red.txt

This is the output

Red Apple           12.7.1501.2                                      Programs                                                                                                    

Red Sky                  12.4.20000.53                                    Programs                                                                                                    

Red Sand                 12.7.3031.3                                      Programs                                                                                                    

Red Planet               12.7.3030.2                                      Programs                                                                                                    

Red Carpet               12.7.1501.4                                      Programs

 

So I need to uninstall $red (pull list from c:\it\red.txt

Then I want to reinstall the newer version of the same programs

Like Install-Package –$red "K:\$red\red.exe" –force

But instead of using red I want powershell to use a variable and just reinstall the new versions of the same program it just deleted otherwise its 1hr per machine times about 300 machines.

The issue is each machine could have a different number or "Red" programs and or a different set of the 22 possible red programs. ie machine a1111 could have red moon but not red sky, A1112 could have red moon, red, sky, red sand, and a1113 could have all 22 Red programs installed.

 

Using Add-Member and Export-CSV with a foreach statement will not update a CSV file properly

$
0
0

Hi all,

I'm working on a part of a script that collects the Monitors and their respective Serial Numbers attached to a computer and export it to a CSV file. Since I won't know the number of monitors attached to every system, I am using a foreach statement to collect all the monitors.

The problem is the CSV file won't update correctly. If I run the script on a computer with one monitor, the CSV file will show "Monitor 1" and "Monitor 1 Serial Number". If I run the script on a computer with two monitors and have it output to the same CSV file, it will only show "Monitor 1" and "Monitor 1 Serial Number", however I am expecting it to add "Monitor 2" and "Monitor 2 Serial Number". Can anyone offer some suggestions? Here's my script so far:

# Get monitor info
$MonitorNumber = 0
$MonitorCounter1 = -3
$MonitorCounter2 = -2
$MonitorCounter3 = -1
$Monitors = Get-WmiObject -Namespace "root\WMI" -Class "WMIMonitorID"

function GetMonitorInfo {
  foreach ($Monitor in $Monitors) {
    ([System.Text.Encoding]::ASCII.GetString($Monitor.ManufacturerName)).Replace("$([char]0x0000)","")
    ([System.Text.Encoding]::ASCII.GetString($Monitor.UserFriendlyName)).Replace("$([char]0x0000)","")
    ([System.Text.Encoding]::ASCII.GetString($Monitor.SerialNumberID)).Replace("$([char]0x0000)","")

  }
}

# CSV properties
$infoObject = New-Object PSObject

foreach ($Monitor in $Monitors) {
  $MonitorNumber++
  $MonitorCounter1 = $MonitorCounter1 + 3
  $MonitorCounter2 = $MonitorCounter2 + 3
  $MonitorCounter3 = $MonitorCounter3 + 3
  $Monitor = GetMonitorInfo | Select-Object -Index $MonitorCounter1,$MonitorCounter2
  $MonitorSN = GetMonitorInfo | Select-Object -Index $MonitorCounter3
  $Monitor = $Monitor -join ' '
  Add-Member -InputObject $infoObject -MemberType NoteProperty -Name "Monitor $MonitorNumber" -Value $Monitor -Force
  Add-Member -InputObject $infoObject -MemberType NoteProperty -Name "Monitor $MonitorNumber Serial Number" -Value $MonitorSN -Force
}

$infoObject
$infoColl += $infoObject

# Export info to CSV file
try {
  $infoColl | Export-Csv -Path "$pwd\Monitors.csv" -NoTypeInformation -Append -Force
  Write-Host -ForegroundColor Green "Inventory was successfully updated!"
  exit 0
}
catch {
}
throw "Unable to export to the CSV file. Please check the permissions on the file."

Thank you!!!

Find Users in specific AD Groups

$
0
0

Hello,

I think i gave up, i was trying to make this script work, but i just dont know why i am getting the error message (at the end of the page).

I just want to plug the userID of 1 user or users, and filter them to specific AD GROUP.

I want to know if those users are part specific AD GROUPs

Result:

User1              Group 1

User1              Group 2

User2              Group 2

User3              Group 1


Import-Module ActiveDirectory
$username = "User1"
$Groups = (Get-AdGroup -filter * | Where {$_.name -like "Group*"} | select name -ExpandProperty name)
$Table = @()
$Record = @{"Group Name" = """Name" = """Username" = ""
}
Foreach ($Group in $Groups) {
Get-ADUser $username -Identity $Group.name | select name,samaccountname
    $Record."Group Name" = $Group
    $Record."Name" = $username.name
    $Record."UserName" = $username.samaccountname
    $objRecord = New-Object PSObject -property $Record
    $Table += $objrecord
}
$Table | export-csv "C:\Users\User1\Desktop\Scripts\Users.csv"

ERROR:

Get-ADUser : A positional parameter cannot be found that accepts argument 'User1'.
At line:1 char:1+ Get-ADUser $username -Identity $Group.name | select name,samaccountna ...+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ CategoryInfo          : InvalidArgument: (:) [Get-ADUser], ParameterBindingException+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.GetADUser

Viewing all 21975 articles
Browse latest View live