यह थोड़ा मुश्किल है कि आप क्या करने की कोशिश कर रहे हैं ...
संपादित करें; रयान द्वारा उल्लिखित की तरह, आप वर्तमान में इसे पहले से ही एक स्ट्रिंग के रूप में निर्दिष्ट कर रहे हैं ...
लेकिन कुछ कोड में, मैंने Read-Host और SecureStrings का उपयोग करते समय निम्नलिखित फ़ंक्शन का उपयोग किया है
function AskSecureQ ([String]$Question, [String]$Foreground="Yellow", [String]$Background="Blue") {
Write-Host $Question -ForegroundColor $Foreground -BackgroundColor $Background -NoNewLine
Return (Read-Host -AsSecureString)
}
आपके मामले में आप इसे निम्न करके कॉल करेंगे;
Param (
[Parameter(Mandatory=$True)]
[string]$FileLocation,
[Parameter(Mandatory=$True)]
[string]$password = AskSecureQ "Type the password you would like to set all the users to"
)
संपादित करें: टिप्पणियों को देखते हुए, और सिर्फ इसके नरक के लिए ... यहां एक वैकल्पिक विधि का उपयोग किया गया है जो उपरोक्त सुरक्षित स्ट्रिंग को सादे पाठ में सादे पाठ में परिवर्तित करता है;
# Taking a secure password and converting to plain text
Function ConvertTo-PlainText( [security.securestring]$secure ) {
$marshal = [Runtime.InteropServices.Marshal]
$marshal::PtrToStringAuto( $marshal::SecureStringToBSTR($secure) )
}
आप इसे इस तरह उपयोग करेंगे;
$PWPlain = ConvertTo-PlainText $password
बहुत संक्षेप में, आप पासवर्ड को नकाबपोश में लेते हैं, यह एक सुरक्षित स्ट्रिंग है, फिर आप इसे कहीं और उपयोग के लिए सादे पाठ में तोड़ सकते हैं, एक वास्तविक शब्द उदाहरण होगा यदि कुछ CLI प्रोग्राम केवल पासवर्ड को सादे पाठ के रूप में उन में पारित होने को स्वीकार करते हैं, यह स्वचालन के साथ मदद करता है जहाँ आप अपनी स्क्रिप्ट में एक पासवर्ड को हार्ड कोड नहीं करना चाहते हैं।