PowerShell을 사용하여 임의의 문자열 생성 방법

  1. PowerShell에서 무작위 문자열을 생성하는 Get-Random Cmdlet 사용하기
  2. PowerShell에서 무작위 비밀번호를 생성하는 GeneratePassword() 함수 사용하기
  3. PowerShell에서 무작위 문자열을 생성하는 New-Guid Cmdlet 사용하기
  4. PowerShell에서 문자 집합과 함께 Get-Random Cmdlet을 사용하여 무작위 문자열 생성하기
  5. 결론
PowerShell을 사용하여 임의의 문자열 생성 방법

Active Directory를 관리할 때, 고유한 임시 비밀번호로 대량 사용자를 가져오는 작업은 도전적일 수 있습니다. 다행히도 PowerShell은 이러한 작업을 간소화하기 위해 무작위 문자열을 생성하는 효과적인 솔루션을 제공합니다.

이 기사에서는 PowerShell에서 여러 방법을 사용하여 이를 달성하는 방법을 알아보겠습니다.

PowerShell에서 무작위 문자열을 생성하는 Get-Random Cmdlet 사용하기

PowerShell은 무작위 문자나 숫자를 선택하는 네이티브 명령인 Get-Random을 제공합니다. Get-Random 명령에 항목 배열을 제공하면, 해당 컬렉션에서 하나 이상의 객체를 무작위로 선택합니다.

비밀번호를 생성할 때, 서로 다른 input 매개변수(특수 문자, 숫자, 대문자 및 소문자)로 Get-Random cmdlet을 네 번 호출하고 결과 문자열을 연결한 다음, 다른 Get-Random 호출을 사용하여 이를 섞을 수 있습니다.

아래 예제에서는 대문자(U), 소문자(L), 숫자(N), 특수 문자(S)에 대한 문자 집합을 저장하기 위해 $TokenSet이라는 해시 테이블을 정의합니다. 이 코드 줄 $variablename = Get-Random -Count 5 -InputObject $TokenSet.U는 문자 집합(U, L, N, S)에서 5개의 문자를 무작위로 선택하고 이를 변수($Upper, $Lower, $Number, $Special)에 저장합니다.

그런 다음, 각 집합에서 무작위로 선택된 문자를 하나의 문자 집합인 $StringSet으로 결합합니다. 마지막으로, $StringSet에서 선택하여 15자의 무작위 문자열을 생성하고, 이를 결합하여 최종 비밀번호를 형성합니다.

예제 코드:

$TokenSet = @{
    U = [Char[]]'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    L = [Char[]]'abcdefghijklmnopqrstuvwxyz'
    N = [Char[]]'0123456789'
    S = [Char[]]'!"#$%&''()*+,-./:;<=>?@[\]^_`{|}~'
}
    
$Upper = Get-Random -Count 5 -InputObject $TokenSet.U
$Lower = Get-Random -Count 5 -InputObject $TokenSet.L
$Number = Get-Random -Count 5 -InputObject $TokenSet.N
$Special = Get-Random -Count 5 -InputObject $TokenSet.S

$StringSet = $Upper + $Lower + $Number + $Special

(Get-Random -Count 15 -InputObject $StringSet) -join ''

출력:

9ZimEXDW*@xo?12

위 코드는 매번 다른 문자열을 생성합니다. 그러나 Get-Random cmdlet에 여러 번 호출이 포함되어 있어, 스크립트가 길어지고 처리 시간이 느려질 수 있습니다.

다음 섹션에서는 몇 줄의 코드로 동일한 기능을 수행하는 방법에 대해 설명합니다.

PowerShell에서 무작위 비밀번호를 생성하는 GeneratePassword() 함수 사용하기

비밀번호 전용 문자열을 생성해야 하는 경우, [System.Web.Security] 네임스페이스에서 GeneratePassword() 함수를 사용할 수 있습니다. 이 함수를 사용하려면 먼저 System.Web 라이브러리를 로드해야 합니다.

[Reflection.Assembly]::LoadWithPartialName("System.Web")

로드한 후, GeneratePassword() 함수를 실행하여 무작위로 비밀번호를 생성할 수 있습니다.

아래 코드에서는 [System.Web.Security.Membership] 네임스페이스를 사용하여 GeneratePassword() 함수에 접근합니다.

예제 코드:

[System.Web.Security.Membership]::GeneratePassword(15, 2)

출력:

QQjj*LJ:e=YZ)Fo

위 예제 코드에서 볼 수 있듯이, GeneratePassword() 함수는 두 개의 인수를 받습니다:

  1. 첫 번째 인수는 비밀번호에 필요한 전체 문자 수를 나타내는 정수 값입니다.

  2. 두 번째 인수는 비밀번호에 대한 특수 문자 수를 나타내는 정수 값입니다.

그러나 이 코드는 비밀번호에 적어도 하나의 숫자가 포함된다는 것을 보장하지 않습니다. 숫자가 적어도 하나 포함되도록 하려면 다음 코드를 사용할 수 있습니다.

예제 코드:

do {
    $pwd = [System.Web.Security.Membership]::GeneratePassword(15, 2)
} until ($pwd -match '\d')

$pwd

먼저, do 키워드를 사용하여 비밀번호를 생성하고 적어도 하나의 숫자 문자가 포함되도록 하는 루프를 만듭니다. 그런 다음 이 코드 줄 [System.Web.Security.Membership]::GeneratePassword(15, 2)를 사용하여 2개의 특수 문자를 포함한 15자의 무작위 비밀번호를 생성하고 이를 $pwd 변수에 저장합니다.

루프는 생성된 비밀번호에 적어도 하나의 숫자 문자가 포함될 때까지 반복합니다.

출력:

Y4UkK4)G+lannRd

단 몇 줄의 코드로, 위의 출력은 매번 다른 문자열을 생성하고 생성된 문자열에 적어도 하나의 숫자 문자가 포함되도록 보장합니다.

PowerShell에서 무작위 문자열을 생성하는 New-Guid Cmdlet 사용하기

PowerShell은 무작위 GUID(Globally Unique Identifier)를 생성하기 위해 New-Guid cmdlet을 제공합니다. 이 GUID를 비밀번호를 포함한 다양한 용도의 무작위 문자열로 사용할 수 있습니다.

다음 예제에서는 [System.Guid]::NewGuid()를 사용하여 무작위 GUID(Globally Unique Identifier)를 생성한 다음, 생성된 GUID를 문자열 표현으로 변환하고 이를 $randomString 변수에 저장합니다.

예제 코드:

$randomString = [System.Guid]::NewGuid().ToString()

$randomString

출력:

de5881dc-a546-43da-9b89-0bae712406b1

출력은 무작위 문자열을 생성합니다.

PowerShell에서 문자 집합과 함께 Get-Random Cmdlet을 사용하여 무작위 문자열 생성하기

커스텀 문자 집합을 정의하고 Get-Random cmdlet을 사용하여 무작위 문자열을 생성할 수도 있습니다. 이 방법은 무작위 문자열에 사용되는 문자 집합에 대한 더 많은 제어를 제공합니다.

다음은 예제입니다.

예제 코드:

$length = 10

$characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'.ToCharArray()
$randomString = -join ($characters | Get-Random -Count $length)

$randomString

먼저, 원하는 무작위 문자열의 길이를 정의하고 이를 변수 $length에 저장합니다.

그런 다음, 무작위 문자열이 생성될 문자($characters)를 문자 배열로 정의합니다. .ToCharArray() 메서드는 문자열을 개별 문자의 배열로 변환합니다.

다음으로, 지정된 길이($randomString)의 문자열을 생성하기 위해 문자 배열에서 무작위로 문자를 선택하고, 선택된 문자는 결합되어 최종 무작위 문자열을 형성합니다. 마지막으로, 생성된 무작위 문자열을 출력합니다.

출력:

9lQSruF40i

출력은 $characters에서 문자를 선택하여 무작위 문자열을 생성합니다.

결론

이 기사는 PowerShell에서 무작위 문자열을 생성하는 방법의 배열을 제공하여, Active Directory에서 고유 비밀번호 및 기타 작업을 관리하기 위한 적절한 도구를 갖출 수 있도록 합니다.

튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

관련 문장 - PowerShell String